inflearn logo
知識共有
inflearn logo

FPGA実装のための機械学習Python実習

機械学習を学ぶと、精度を上げる方法を身につけます。ところが、そのモデルを実際のチップに載せようとした瞬間、誰も教えてくれなかった疑問が残ります。このモデルは何回乗算を行うのでしょうか?何をどれだけ記憶しておく必要があるのでしょうか?現在目標としているチップの仕様で、その要求に対応できるのでしょうか? 機械学習の教科書は精度について語り、半導体の教科書は回路について語りますが、その間をつなぐ資料はほとんどありません。私はRISC-V CPUとNPUをFPGAで実装しながら、この隔たりに何度も直面しました。精度が最も高いモデルが、実際にはボードに収まらないという状況です。 本講座では、6つのアルゴリズムをPythonで実際に作りながら、作るたびに乗算、比較、メモリ、精度を測定します。そして、その値を実際のFPGAボードのリソースに換算します。乗算が何回という言い方だけでは規模を推し量れませんが、ボードの何パーセントかと言われれば判断できるからです。 9つのLabを経て6つのモデルを1つの表にまとめると、予想とは異なる全体像が見えてきます。乗算を数えるために9つのLabを費やしたのに、実際に足を引っ張っていたのは乗算ではありませんでした。その後、実数を整数に落とし込み、桁数を管理し、回路を評価する基準まで作ります。 FPGAボードは必要ありません。Pythonだけで進め、ボードは測定値を換算する基準としてのみ使用します。

8名 が受講中です。

難易度 中級以上

受講期間 無制限

Python
Python
Machine Learning(ML)
Machine Learning(ML)
Artificial Neural Network
Artificial Neural Network
Numpy
Numpy
Scikit-Learn
Scikit-Learn
Python
Python
Machine Learning(ML)
Machine Learning(ML)
Artificial Neural Network
Artificial Neural Network
Numpy
Numpy
Scikit-Learn
Scikit-Learn

受講後に得られること

  • 機械学習モデルを見て、それがチップ上で必要とするリソースを計算できます。

  • 浮動小数点の重みを整数に量子化し、アキュムレーターのビット幅を計算して決定できます。

  • 回路を検証するPythonゴールデンモデルを作成し、値単位で照合する手順を策定できます。

  • 乗算器の個数とサイクル数を交換する面積・時間トレードオフを、設計の観点から説明できます。

  • 実行して値を変更してみることができるPythonスクリプト15個と検証ツールを手に入れられます

  • 演算回数とメモリ要件を実際のボードリソースに対する割合に換算し、実装可能かどうかを判断できます

  • 6つのアルゴリズムのコストを同じ基準で比較した表を、自分で完成させることになります。

■ 講義紹介

コンピューターはどのように画像を見て、それが何かを判断するのでしょうか?

コンピューターが見る画像は、数字で構成されたデータです。その数字から特徴や規則を見つけ、新しい入力を判断できるようにするのが機械学習です。このプロセスは、ここからさらに一歩進みます。

機械学習アルゴリズムを実際のハードウェアで実行するには、何が必要でしょうか?

乗算が何回必要なのか、どれだけ多くの値を記憶する必要があるのか、どの計算を同時に処理できるのかによって、必要なハードウェアは異なります。このコースでは、機械学習をゼロから学びながら6つのアルゴリズムを実際に実行し、それぞれを乗算・比較・メモリ・精度という4つの基準で測定します。

精度の高いモデルが必ずしも優れたハードウェアモデルとは限りません。

アルゴリズムによっては乗算が多く、比較が多いものもあります。乗算を一度も使わない分類器もあれば、精度は高くてもメモリのためにFPGAに実装するのが難しいモデルもあります。

この違いを実際に実行し、数値で確認することがこのコースの核心です。


■ 何を学びますか?

15個のLabが一つの流れとしてつながっています。

Part 1 · 機械学習の基本演算
画像が数値配列として保存される仕組みから始め、乗算と累算、学習、マルチクラス分類まで理解します。

Part 2 · アルゴリズムとハードウェアコスト
異なる機械学習アルゴリズムを実行しながら、乗算、比較、メモリ、精度を同じ基準で比較します。

Part 3 · PythonからFPGAへ
浮動小数点モデルを整数に変換し、シフトとビット幅を決定し、実際の回路を検証するための基準を作ります。

Pythonから始めて、実際のハードウェア実装を見据えるところまで進むプロセスです。


■ この講義の特徴

  • 機械学習の予備知識がなくても始められます。

  • アルゴリズムをブラックボックスとして使用せず、どのような演算が必要なのかを自分で確認します。

  • 精度だけでなく、乗算・比較・メモリまで併せて測定します。

  • 測定結果を実際のFPGAリソース基準に換算します。

  • 浮動小数点から整数演算とビット幅まで掘り下げます。

  • 15個のLabの実行結果を正解ログと一括照合できます。


■ このような方におすすめです

  • 機械学習をゼロから原理中心に学びたい方

  • 機械学習とFPGA・AI半導体の関係に興味がある方

  • AI半導体やNPU設計を学びたい方

  • モデルを精度だけでなく、ハードウェア資源の観点からも評価したい方


■ 前提知識および実習環境

Pythonの基本文法が分かる程度で始められます。機械学習とFPGAの事前知識は必要ありません。

実習ではAnaconda・Jupyter Notebook・NumPy・scikit-learn・matplotlibを使用します。

FPGAボードは必要ありません。
Arty S7-25は、アルゴリズムのコストを実際のハードウェアリソースに換算するための基準として使用します。


■ 提供資料

  • Python実習スクリプト15本

  • 固定された学習・テストデータセット

  • 正解ログおよび一括検証スクリプト

  • Lab別応用実習


■ カリキュラム

セクション1 始める前に · 9分 · 無料
セクション2 データと演算 · 29分 · 無料
セクション3 学習と多クラス分類 · 31分
セクション4 乗算なしのアルゴリズム · 48分
セクション5 削減と6つのモデル · 44分
セクション6 整数への変換 · 45分
セクション7 ボードへの移行 · 31分

全体で約4時間

最初の2セクションを無料で公開します。単なるお試し動画ではなく 実際の講義形式と最初の演習を直接確認したうえで、受講を決めていただけます。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • 機械学習モデルを作ることはできるものの、そのモデルをFPGAやASICに実装できるかどうかを判断する基準がなく、毎回勘で決めてきた方

  • 半導体やFPGAを扱いながらAIアクセラレータを担当することになったものの、アルゴリズム関連のドキュメントを読んでも、何を回路化すればよいのか見当がつかない方

  • AI半導体設計職を目指す中で、精度重視の機械学習の知識と、リソース重視のハードウェア知識をどのようにつなげればよいか悩んでいる方

  • モデルを完成させてから、メモリ不足で最初からやり直した経験がある方

  • 論文のMAC数値は読めるものの、それが私たちのチップで何サイクル、何パーセントに相当するのか換算したことがない方

前提知識、
必要でしょうか?

  • Pythonの基本文法

  • NumPy配列を扱った経験(なくても受講可能)

  • 機械学習の予備知識は必要ありません。アルゴリズムはプロセスの中で自ら作り上げます。

  • ハードウェアに関する事前知識も必要ありません。必要な概念はその都度説明します。

こんにちは
EdgeChipLabです。

キャリア認証

AI半導体をFPGAで直接設計・実装します

現職の大学教授として、システム半導体業界で30年培った経験と、AI半導体の研究・教育ノウハウを盛り込みました。

サムスン電子DS部門のシステム半導体研究員を皮切りに、英国およびドイツ法人のDirector、システムLSIマーケティング・営業グループ長を歴任し、現在は半導体工学を教える教授が自ら設計し、FPGA上で検証した実践型カリキュラムです。

単にFPGAの使い方を学ぶ教育ではありません。
AIアルゴリズムを理解し、→ NPUとCPUをRTLで直接設計し、→ FPGAに実装し、→ 実際のハードウェアで検証し、→ 最終的にAI SoCまで拡張するプロセスを目指します。

AI Algorithm → RTL Design → FPGA Implementation → Bit-True Verification → AI SoC

 

理論を超えて実際のAIハードウェア実装へ

断片的で散在した知識だけでは、システムレベルのAI半導体設計能力に到達するのは困難です。

受講生は完成されたブラックボックスIPを使うだけにとどまりません。AI NPUとRISC-V CPUを自ら設計し、メモリや周辺装置を統合し、最終的に自分だけのAI SoCを構築できるシステム設計能力を段階的に身につけることを目指します。

トランジスタとデジタル回路の基礎から始め、FPGA、CPU、NPUを経てTransformerとLLMアクセラレーションハードウェアまでつなげます。

 

研究成果を実際のFPGAハードウェアで検証します。

目で見るだけの講義ではありません。理論や単純なシミュレーションで終わらせず、自ら設計したAI半導体回路を実際のFPGA上で動作させ、PythonモデルとRTLの結果が1ビット単位まで一致するBit-True検証を行います。

講師のAI半導体・FPGA・RISC-V関連のKCI掲載論文4本を含む研究成果も教育コンテンツと結び付け、研究で検証した技術を実際の設計とFPGA実装へとつなげます。

独自開発したRISC-V CPUをはじめ、画像学習用のPythonコードやVerilog RTLなど、実習に必要なソースコードを公開します。

エントリー向けのArty S7-25 FPGAボードと無償のVivado設計ツールを中心に構成し、学習者が自ら設計・実装・検証する全工程を再現できるようにしました。

また、Zybo Z7を含むDigilent社のFPGAボードでも使用可能です。XDCピンマッピング(ボード)とクロック分周パラメータ(RTL)をボードに合わせて修正してください。

'FPGAで作るMNIST NPU'講義は、XDCピンマッピングのみ修正すればよく、OLEDとカメラを使用する講義ではクロック分周パラメータ(RTL)を修正する必要があります。

→講義の実習はArty S7の100 MHz入力クロックを基準に分周パラメータが設定されています。ほかのボードは入力クロックが異なるため(例:Zybo Z7は125 MHz)、目標周波数が同じになるように分周値を再計算してください。この部分を見落とすと画面や映像が正常に出力されませんが、コードのエラーと誤解しやすいため、ご確認ください。

 

途切れのないフルスタックロードマップ:基礎からmini LLMアクセラレーターまで

すべての講義は独立した断片ではなく、ひとつの巨大なシステムを完成させていく旅です。

  • Step 1: AI理論および画像処理の基礎(Machine Learningを含む)

  • Step 2: AIアクセラレータ(NPU)設計および検証(Machine Learningを含む)

  • Step 3: RISC-V CPU設計およびシステム統合

  • Step 4: 高度なAI SoC実装およびmini LLMアクセラレーションプラットフォームへの拡張(継続的なコンテンツ更新)

     

 

客観的な検証指標

本コースのすべての設計成果物は、グローバルスタンダードと学術界による厳格な検証を経ています。

  • RISC-Vアーキテクチャの検証:自社開発RISC-V CPU、国際財団公式コンプライアンステスト(ACT)合格およびソースコード公開(GitHub)

  • 学術的権威:単独著者による学術論文4編(KCI Aランクの著名学術誌IJIBC掲載)

  • グローバルな評価:世界的なAmazon技術書を2冊出版(ベストセラー3位を達成)

  • 実動作の検証完了:RV32I CPU、NPU、ビジョンシステム、GPS、Transformer、AURA-Edge SoCなど主要IPのArty S7環境での完全動作

挑戦してください。自分でコードをボードに書き込み、結果を確認するこのプロセスを終える頃には、皆さんは以前とはまったく異なる視野を持つハードウェアエンジニアへとレベルアップしていることでしょう。

もっと見る

カリキュラム

全体

7件 ∙ (3時間 23分)

講座掲載日: 
最終更新日: 

受講レビュー

まだ十分な評価を受けていない講座です。
みんなの役に立つ受講レビューを書いてください!

EdgeChipLabの他の講座

知識共有者の他の講座を見てみましょう!

似ている講座

同じ分野の他の講座を見てみましょう!

新規会員登録で25%OFF

¥7,962

25%

¥10,622