RISC-Vコースでは、RISC-V CPUの開発フローにおける種々のプロセスを身につけます。
事前トレーニング
メインプログラムへの参加に必要な技術的スキルを身につけること、及びTenstorrentにおけるコミュニケーションや仕事の進め方、ツールの使い方を身につけることを目指します。また、トレーニング全体を通じた評価によって、メインプログラムへの参加可否を判断することも目的としています。
事前トレーニングでは実際の設計や開発を行なう課題と、調査を通じてレポートやプレゼンテーションを行なう課題という、次の2種類の異なる性質の課題に取り組んでいただきます。これらを通じて、技術面はもちろん、コミュニケーション等も含めた総合的な実力を短期間で身につけることを目指します。
1. Advanced Platform-Level Interrupt Controller (APLIC)の設計 | 2.パフォーマンス感度分析 | ||
研修内容 | RISC-Vの割り込みコントローラ(APLIC)の設計を行い、ハードウェア設計の基本スキルを習得する。 このプログラムでは、組み込み用途などで広く用いられる割り込み信号を用いた割り込みから現代的な計算機で利用されるMessage Signaling Interrupt (MSI)を生成するプラットフォームレベルの割り込みコントローラを題材とし、設計仕様の作成からRTLコードの記述、テストベンチの作成までを実施する。この課題を通じて計算機がどのようにMSIを処理するか、業界標準のメモリインタフェースであるAMBA AXIの利用方法などが学習できる。 | Tenstorrentの実際の業務で用いられる性能モデルを利用して、プロセッサ内の各種パラメータと性能の相関についての評価を行い、レポートの作成、及びプレゼンテーションを行なう。 キャッシュ容量、メモリアクセス待機時間、分岐予測のミスレイテンシ、実行ユニットの数など、システムのパラメータがアプリケーションの性能に与える影響を評価する。性能の評価結果に基づき分析レポートを作成し、システムの最適化に役立つ知見を得ることを目標とする。 | |
到達目標 | シンプルなロジックについて仕様設計からRTLコードの記述、検証までのプロセスを実施できるようになる。APLICについてこれらを具体的に実施し、テストベンチを作成や、ランダムテストによる動作検証も行なうことで、ハードウェア設計について知識だけではない具体的な経験を得る。 | 各種シミュレーションパラメータが性能に与える影響の分析を行い、キャッシュサイズやパイプライン深度などの要因がシステムのパフォーマンスに与える影響を理解する。 社内コミュニケーション用のレポート作成の仕方、プレゼンテーションの仕方を身につける。 | |
スケジュール | Week1 | オンボーディング ラップトップやアカウントのセットアップ、社内システムの導入、情報管理及びセキュリティ教育を行う。 | |
Week2 | オンボーディング ツールやワークフローの導入を完了させ、作業環境を確認する。 | ||
Week3 | アーキテクチャの理解 仕様書を読み、既存のオープンソースコードを確認する。システム全体のアーキテクチャを理解し、設計の流れを把握する。 | セットアップ リポジトリをダウンロードし、既存のワークロードをビルド・実行する。 | |
Week4 | パラメータスイープ パラメータスイープを評価し、結果を分析する。 | ||
Week5 | RTL & MAS RTLコードの記述を開始し、マイクロアーキテクチャ仕様書を作成する。 | レポート作成① キャッシュ容量などが性能に与える影響などを議論する基本的なレポートを作成する。 | |
Week6 | テストベンチ テストベンチの環境を構築し、テストの準備する。 | ||
Week7 | 検証 ランダムテストを実行し、不具合の修正を行なう。 | 追加作業 新機能を実装するか、新しいワークロードを立ち上げる。 | |
Week8 | |||
Week9 | 品質保証 テストベンチとRTLの品質確認を行う。 | レポート作成② 新機能やワークロードの挙動から得られた知見に関して性能レポートをまとめる。 | |
Week10 | |||
Week11 | 総括 プロジェクトをまとめ、成果物を整理する。 | 総括 プロジェクトをまとめ、成果物の整理。レポートの提出とプレゼンテーションの実施する。 | |
Week12 | |||
評価方法 | 課題ごと | 1. マイクロアーキテクチャ仕様書の完成度 2. RTLコードの品質 3. テストベンチの機能 4. 動作検証のためのランダムテスト結果 | 1. 性能評価レポートの完成度 2. 分析結果の妥当性 3. プレゼンテーションの内容 |
共通 | 1. 英語でのテキスト・口頭によるコミュニケーション能力 (仕様書などの成果物は全て英語、EmailやSlackのコミュニケーションも全て英語を用いる) 2. 一般的な問題解決能力 |
メインプログラム
メインプログラムでは、実際にプロジェクトチームに入り、次の課題テーマを経験します。
アーキテクチャ
性能シミュレータに対する新規機能の追加等の課題を通じて、アーキテクチャに関する理解を深める。最初に既存の性能シミュレータのコードを理解することからはじめ、性能評価の手法について段階的に理解を進める。具体的な課題例として、設計検証に利用するシミュレータを性能シミュレータと組み合わせ動的に実行する命令を選択できる環境の構築などが挙げられる。
RTL設計
実際の製品で要求される機能仕様を調査して、RTLでの実装を行う。仕様に記載されている要件をマイクロアーキテクチャに翻訳し、検証や物理的に実現可能なRTLへと実装する方法を学ぶ。具体的な課題例としては Advanced Interrupt Architectureの調査とその機能を実現するRTLの設計などが挙げられる。
設計検証
既存のRTLに対する検証方法を様々な面から検討し、実装する。そのうえで不具合の修正までを行う。具体的な課題例としてはLLMを使ったフォーマル検証環境の構築などが挙げられる。
物理設計
検証済みのRTLに対して物理的に動作可能なレイアウトを設計し、製造可能な状態にする。単に動作するのみではなく、物理検証ツールを用いて設計データを解析し、物理的な製造に最適な設計を目指す。課題例としては、パワー消費の最適化や信号遅延の改善などが挙げられる。
評価環境、評価
単に動作検証だけでなく、実際の様々なアプリケーションを想定した性能評価動作評価や目標に対する性能評価を行う。
到達目標 | プログラム全体を通じて、下記を身につけることを目標とする。 1. CPUハードウェアの設計プロセスの習得 2. RISC-Vアーキテクチャの理解 3. プロフェッショナルなビジネスマナーとチームワークの習得 4. 高性能CPUシステムの設計・検証における自主的な作業遂行経験 | ||
課題プロセス | オンボーディング | 技術メンターから課題として取り組む内容について研修を受ける。実際の開発チームに参加し、システム部門のサポートを受けつつ、開発環境の整備を進める。トレーニング資料を活用しながらプロジェクトへの理解を深める。同様の課題テーマに以前取り組んでいたインターンからの引き継ぎを受ける。 | |
課題取組み(前半) | メンターやチームのサポートを受けながら課題に取り組む。必要に応じて社員の業務のシャドーイング等を行い、実際の開発業務フローに対する実践的な理解を深める。 また、同様の課題テーマに以前取り組んでいたインターンからもサポートを受ける。中間レビューに向けて成果をまとめる。 | ||
中間技術レビュー | 課題の取り組みについて技術的な発表をマネージャーやメンター、チームメンバーに向けて実施し、進捗の評価が行われる。 メンターやマネージャーからフィードバックと技術指導を受け、以降どのように課題を進めるか、活動内容や目標の方針を立てる。 また、技術発表を通じてレポーティングやコミュニケーションについてのアドバイスも受ける。 | ||
課題取組み(後半) | 中間レビューのフィードバックを受けて、課題の最終発表に向けた取り組みを行う。 | ||
総括 | 成果物の整理をし、最終レポートを作成する。そのうえでプレゼンテーションを行い、課題を総括する。また、課題を通じて得られたインサイト等もチームと共有する。 課題を次のメンバーに引き継ぐためのドキュメントの整理や成果物のクリーンアップ(コードの整理等)を行なう。 インターンプログラムの残り期間に応じて、次の課題の選択をする。 | ||
評価方法 | 週次のマネージャーチェックインにより、課題進捗を継続的に評価・管理する。月単位、期単位の評価を行いフィードバックを行う。 また、課題ごとの包括的な評価と、インターンの最終プレゼンテーションによる総合評価を行なう。インターンの最終プレゼンテーションではインターン期間を通じておこなった課題に対する報告に加えて、インターンを通じて感じた課題感や将来の展望をチームに共有する。主な評価項目としては、下記の2点となる。 1. CPU設計・検証タスクの80%以上を独立して遂行できるか 2. プロフェッショナルなコミュニケーション能力を身に着けているか 以上の評価と最終プレゼンテーションの結果を踏まえ本トレーニング修了の認証を授与する。 |