CUDAを使用したGPUプログラミングのトレーニングコース
CUDAは、NVIDIA GPU(高パフォーマンス計算、人工知能(AI)、ゲーム、およびグラフィックスに広く使用されている)上でコードを実行するためのオープン標準のGPUプログラミング技術です。CUDAはプログラマに対してハードウェアの詳細を公開し、並列化プロセスの完全な制御を提供します。ただし、これにはデバイスアーキテクチャ、メモリモデル、実行モデル、および最適化手法に関する十分な理解が必要です。
このインストラクター主導のライブトレーニング(オンラインまたはオンサイト)は、CUDAを使用してNVIDIA GPUをプログラミングし、その並列性を活用したいベーシックレベルから中級レベルの開発者向けです。
このトレーニング終了時には、参加者は以下のことが Able to:
- CUDA Toolkit、NVIDIA GPU、およびVisual Studio Codeを含む開発環境を設定する。
- GPU上でベクトル加算を行う基本的なCUDAプログラムを作成し、GPUメモリから結果を取得する。
- CUDA APIを使用してデバイス情報を照会し、デバイスマネージャの割り当てと解放、ホストとデバイス間でのデータコピー、カーネルの起動、およびスレッドの同期を行う。
- CUDA C/C++言語を使用してGPU上で実行され、データを操作するカーネルを記述する。
- CUDA組み込み関数、変数、およびライブラリを使用して一般的なタスクと操作を行う。
- CUDAメモリスペース(グローバル、共有、定数、およびローカル)を使用してデータ転送とメモリアクセスを最適化する。
- CUDA実行モデルを使用してスレッド、ブロック、およびグリッドを制御し、並列性を定義する。
- CUDA-GDB、CUDA-MEMCHECK、NVIDIA Nsightなどのツールを使用してCUDAプログラムをデバッグおよびテストする。
- コールエシング、キャッシュ、プリフェッチ、プロファイリングなどのテクニックを使用してCUDAプログラムを最適化する。
コースの形式
- インタラクティブな講義とディスカッション。
- 多くの演習と実践。
- ライブラボ環境での手動実装。
コースのカスタマイズオプション
- このコースのカスタマイズされたトレーニングを依頼するには、お問い合わせください。
- 96% de clients satisfaits
コース概要
紹介
- CUDAとは何か?
- CUDA vs OpenCL vs SYCL
- CUDAの機能とアーキテクチャの概要
- 開発環境の設定
開始方法
- Visual Studio Codeを使用して新しいCUDAプロジェクトを作成する。
- プロジェクト構造とファイルを探索する。
- プログラムのコンパイルと実行。
- printfとfprintfを使用して出力を表示する。
CUDA API
- CUDA APIがホストプログラムで果たす役割の理解。
- CUDA APIを使用してデバイス情報と機能を照会する。
- CUDA APIを使用してデバイスマネージャの割り当てと解放を行う。
- CUDA APIを使用してホストとデバイス間でデータをコピーする。
- CUDA APIを使用してカーネルを起動し、スレッドを同期する。
- CUDA APIを使用してエラーと例外を処理する。
CUDA C/C++
- CUDA C/C++がデバイスプログラムで果たす役割の理解。
- CUDA C/C++を使用してGPU上で実行され、データを操作するカーネルを記述する。
- CUDA C/C++データ型、修飾子、演算子、および式の使用。
- math、atomic、warpなどのCUDA C/C++組み込み関数の使用。
- threadIdx、blockIdx、blockDimなどのCUDA C/C++組み込み変数の使用。
- cuBLAS、cuFFT、cuRANDなどのCUDA C/C++ライブラリの使用。
CUDAメモリモデル
- ホストとデバイスのメモリモデルの違いを理解する。
- グローバル、共有、定数、およびローカルなどのCUDAメモリスペースを使用する。
- ポインタ、配列、テクスチャ、サルフェースなどのCUDAメモリオブジェクトを使用する。
- 読み取り専用、書き込み専用、読み書き両方などのCUDAメモリアクセスマードを使用する。
- CUDAのメモリ一貫性モデルと同期機構の使用。
CUDA実行モデル
- ホストとデバイスの実行モデルの違いを理解する。
- CUDAスレッド、ブロック、グリッドを使用して並列性を定義する。
- threadIdx、blockIdx、blockDimなどのCUDAスレッド関数の使用。
- __syncthreads、__threadfence_blockなどのCUDAブロック関数の使用。
- gridDim、gridSync、協調グループなど、CUDAグリッド関数の使用。
デバッグ
- CUDAプログラムで一般的なエラーとバグを理解する。
- 変数、ブレークポイント、コールスタックなどを検査するためにVisual Studio Codeデバッガを使用する。
- CUDA-GDBを使用してLinux上のCUDAプログラムをデバッグする。
- CUDA-MEMCHECKを使用してメモリエラーとリークを検出する。
- NVIDIA Nsightを使用してWindows上のCUDAプログラムをデバッグおよび分析する。
最適化
- CUDAプログラムのパフォーマンスに影響を与える要因を理解する。
- メモリスループットを向上させるためのCUDAコールエシング技術の使用。
- メモリレイテンシを低下させるためのCUDAキャッシュとプリフェッチ技術の使用。
- CUDA共有メモリとローカルメモリ技術を使用してメモリアクセスと帯域幅を最適化する。
- CUDAプロファイリングとプロファイリングツールを使用して実行時間とリソース利用量を測定し、改善する。
まとめと次回のステップ
要求
- C/C++言語と並列プログラミング概念に関する理解。
- コンピュータアーキテクチャとメモリ階層の基本的な知識。
- コマンドラインツールとコードエディタの使用経験。
対象者
- CUDAを使用してNVIDIA GPUをプログラミングし、その並列性を活用したい開発者。
- 異なるCUDAデバイスで実行できる高性能で拡張可能なコードを記述したい開発者。
- GPUプログラミングの低レベル側面を探索し、コードのパフォーマンスを最適化したいプログラマ。
オープントレーニングコースには5人以上が必要です。
CUDAを使用したGPUプログラミングのトレーニングコース - 予約
CUDAを使用したGPUプログラミングのトレーニングコース - お問い合わせ
CUDAを使用したGPUプログラミング - コンサルティングお問い合わせ
コンサルティングお問い合わせ
今後のコース
関連コース
Huawei AscendとCANNを使用したAIアプリケーションの開発
21 時間Huawei Ascendは、高性能な推論と学習を目的としたAIプロセッサファミリーです。
このインストラクター主導のライブトレーニング(オンラインまたはオンサイト)は、中級レベルのAIエンジニアやデータサイエンティスト向けで、HuaweiのAscendプラットフォームとCANNツールキットを使用してニューラルネットワークモデルを開発および最適化することを目指しています。
このトレーニング終了時には、参加者は以下のことが Able to できます:
- CANN開発環境のセットアップと設定。
- MindSporeとCloudMatrixワークフローを使用してAIアプリケーションを開発する。
- カスタム演算子とタイリングを使用してAscend NPUのパフォーマンスを最適化する。
- モデルをエッジまたはクラウド環境に展開する。
コースの形式
- インタラクティブな講義とディスカッション。
- サンプルアプリケーションでHuawei AscendとCANNツールキットを使用するハンズオン練習。
- モデルの構築、学習、展開に焦点を当てたガイド付き演習。
コースカスタマイズオプション
- インフラストラクチャやデータセットに基づいたこのコースのカスタマイズトレーニングを希望する場合は、ご連絡ください。
CANNとAscend AIプロセッサを使用したAIモデルのデプロイ
14 時間CANN (Compute Architecture for Neural Networks) は、Huaweiが提供するAI計算スタックで、Ascend AIプロセッサ上でAIモデルを展開および最適化するために使用されます。
このインストラクター主導の実践的なトレーニング(オンラインまたはオンサイト)は、中級レベルのAIデベロッパーやエンジニア向けで、CANNツールキットやMindSpore、TensorFlow、PyTorchなどのツールを使用して、学習済みのAIモデルを効率的にHuawei Ascendハードウェアに展開することを目指しています。
このトレーニングの終了時には、参加者は以下のことができるようになります:
- CANNアーキテクチャとAIデプロイパイプラインにおける役割を理解する。
- 一般的なフレームワークのモデルをAscend互換フォーマットに変換および適応させる。
- ATC、OMモデル変換、MindSporeなどのツールを使用してエッジとクラウド推論を行う。
- 展開に関する問題を診断し、Ascendハードウェア上のパフォーマンスを最適化する。
コースの形式
- 交互的な講義とデモンストレーション。
- CANNツールやAscendシミュレーターやデバイスを使用した実践的なラボワーク。
- 実際のAIモデルに基づく展開シナリオ。
コースカスタマイズオプション
- このコースのカスタマイズトレーニングを希望される場合は、お問い合わせください。
Biren AI アクセレレーターでの GPU プログラミング
21 時間Biren AI アクセレレーターは、AI と HPC タスク向けに設計された高性能 GPU であり、大規模なトレーニングと推論をサポートしています。
このインストラクター主導のライブトレーニング(オンラインまたはオンサイト)は、中級から上級レベルの開発者向けに設計されており、Biren の独自 GPU スタックを使用してアプリケーションをプログラミングおよび最適化する方法を学びます。CUDA ベースの環境との実践的な比較も行われます。
このトレーニング終了後、参加者は以下を行うことができます:
- Biren GPU アーキテクチャとメモリアイアラキーを理解します。
- 開発環境のセットアップと Biren のプログラミングモデルの使用方法を学びます。
- CUDA スタイルのコードを Biren プラットフォーム向けに翻訳および最適化します。
- パフォーマンス調整とデバッグテクニックを適用します。
コースの形式
- インタラクティブな講義とディスカッション。
- Biren SDK を使用したサンプル GPU ワークロードの手動操作。
- ポーティングとパフォーマンス調整に焦点を当てたガイド付き演習。
コースのカスタマイズオプション
- アプリケーションスタックや統合要件に基づいてこのコースをカスタマイズしたい場合は、お問い合わせください。
Cambricon MLU開発とBANGPy、Neuwareを使用した開発
21 時間Cambricon MLUs(Machine Learning Units)は、エッジおよびデータセンターのシナリオで推論と学習に最適化された専用AIチップです。
このインストラクター主導の実践的なトレーニング(オンラインまたはオンサイト)では、中級レベルの開発者がBANGPyフレームワークとNeuware SDKを使用してCambricon MLUハードウェア上でAIモデルを構築およびデプロイする方法を学びます。
このトレーニング終了時には、参加者は以下のことが Able になります:
- BANGPyとNeuwareの開発環境を設定および構成します。
- PythonおよびC++ベースのモデルをCambricon MLUs向けに開発および最適化します。
- Neuwareランタイムを使用してエッジデバイスやデータセンターデバイスにモデルをデプロイします。
- MLU固有のアクセラレーション機能を統合したMLワークフローを作成します。
コース形式
- 対話型講義とディスカッション。
- BANGPyとNeuwareを使用した開発とデプロイの実践。
- 最適化、統合、テストに焦点を当てた指導付き演習。
コースカスタマイゼーションオプション
- Cambriconデバイスモデルやユースケースに基づいたカスタマイズされたトレーニングをご希望の場合は、お問い合わせください。
CANNを用いたAIフレームワーク開発者の入門
7 時間CANN (Compute Architecture for Neural Networks)は、HuaweiのAIコンピューティングツールキットで、Ascend AIプロセッサ上でAIモデルをコンパイル、最適化、および展開するために使用されます。
このインストラクター主導のライブトレーニング(オンラインまたはオンサイト)は、初心者のAI開発者向けに設計されており、CANNがモデルライフサイクルの訓練から展開までの位置づけや、MindSpore、TensorFlow、PyTorchなどのフレームワークとの連携について理解することを目指しています。
このトレーニング終了時には、参加者は以下のことをできるようになります:
- CANNツールキットの目的とアーキテクチャを理解する。
- CANNとMindSporeを使用した開発環境のセットアップ。
- 単純なAIモデルをAscendハードウェアに変換および展開する。
- 今後のCANN最適化や統合プロジェクトのための基礎知識を得る。
コース形式
- 対話型の講義とディスカッション。
- 単純なモデル展開を伴うハンズオンラボ。
- CANNツールチェーンと統合ポイントのステップバイステップガイド。
コースカスタマイゼーションオプション
- このコースのカスタマイズされたトレーニングを希望する場合は、お問い合わせください。
エッジAIデプロイメントのCANN
14 時間HuaweiのAscend CANNツールキットは、Ascend 310などのエッジデバイス上で強力なAI推論を可能にします。CANNは、コンピュートとメモリが制約される環境でのモデルのコンパイル、最適化、およびデプロイメントに必要なツールを提供します。
このインストラクター主導の実践的なトレーニング(オンラインまたはオンサイト)は、中級レベルのAI開発者や統合者がCANNツールチェーンを使用してAscendエッジデバイスにモデルをデプロイおよび最適化することを目指しています。
このトレーニング終了時には、参加者は以下ができます:
- CANNツールを使用してAscend 310向けにAIモデルを準備し、変換します。
- MindSpore LiteとAscendCLを使用して軽量な推論パイプラインを構築します。
- 限られたコンピュートとメモリ環境でのモデル性能を最適化します。
- 実際のエッジユースケースでAIアプリケーションをデプロイおよび監視します。
コース形式
- 双方向の講義と実演。
- エッジ固有のモデルやシナリオを使用したハンズオンラボ作業。
- 仮想または物理的なエッジハードウェアでの実際のデプロイメント例。
コースカスタマイゼーションオプション
- このコースのカスタマイズトレーニングを希望する場合は、ご連絡ください。
HuaweiのAIコンピュートスタックを理解する: CANNからMindSporeまで
14 時間HuaweiのAIスタック — 下位レベルのCANN SDKから上位レベルのMindSporeフレームワークまで — Ascendハードウェア向けに最適化された、緊密に統合されたAI開発および展開環境を提供します。
この講師主導のライブトレーニング(オンラインまたはオンサイト)は、初心者から中級レベルの技術専門家向けで、CANNとMindSporeの各コンポーネントがどのように協調してAIライフサイクル管理とインフラストラクチャ決定をサポートするかを理解することを目指しています。
このトレーニングの終了時には、参加者は以下のことが Able to できるようになります:
- HuaweiのAIコンピュートスタックの階層構造を理解します。
- CANNがモデル最適化とハードウェアレベルでの展開をどのようにサポートするかを特定します。
- MindSporeフレームワークとツールチェーンを業界の代替品と比較評価します。
- HuaweiのAIスタックをエンタープライズやクラウド/オンプレミス環境に位置付けます。
コース形式
- 交互的な講義と議論。
- ライブシステムデモとケーススタディの解説。
- MindSporeからCANNへのモデルフローに関するオプションのガイドルーム。
コースカスタマイズオプション
- このコースのカスタマイズされたトレーニングを依頼するには、お問い合わせください。
CANN SDKを活用したニューラルネットワークの性能最適化
14 時間CANN SDK (Compute Architecture for Neural Networks) は、Huawei の AI 計算基盤で、開発者が Ascend AI プロセッサ上で展開されたニューラルネットワークの性能を微調整および最適化することができます。
このインストラクター主導のライブトレーニング(オンラインまたはオンサイト)は、CANN の高度なツールセット、Graph Engine、TIK、カスタムオペレータ開発を使用して推論性能を最適化したい上級レベルの AI 開発者とシステムエンジニア向けです。
このトレーニング終了時には、参加者は以下のことができます:
- CANN のランタイムアーキテクチャとパフォーマンスライフサイクルを理解する。
- プロファイリングツールと Graph Engine を使用して性能分析と最適化を行う。
- TIK と TVM を使用してカスタムオペレータを作成および最適化する。
- メモリボトルネックを解決し、モデルのスループットを向上させる。
コース形式
- 対話型レクチャーとディスカッション。
- リアルタイムプロファイリングとオペレータチューニングのハンズオンラボ。
- エッジケース展開例を使用した最適化練習。
コースカスタマイゼーションオプション
- このコースのカスタマイズされたトレーニングを依頼する場合は、ご連絡ください。
CANN SDK for Computer Vision and NLP Pipelines
14 時間CANN SDK(Compute Architecture for Neural Networks)は、コンピュータビジョンとNLPのリアルタイムAIアプリケーションにおける強力な展開と最適化ツールを提供します。特にHuawei Ascendハードウェア上で活用されます。
この講師主導のライブトレーニング(オンラインまたはオンサイト)は、中級レベルのAI実践者向けです。CANN SDKを使用して視覚や言語モデルを構築、展開、最適化したい方々に適しています。
このトレーニング終了時には、参加者は以下のことができるようになります:
- CANNとAscendCLを使用してCVおよびNLPモデルを展開し最適化する。
- CANNツールを使用してモデルを変換し、ライブパイプラインに統合する。
- 検出、分類、感情分析などのタスクにおける推論パフォーマンスを最適化する。
- エッジまたはクラウドベースの展開シナリオ向けにリアルタイムCV/NLPパイプラインを構築する。
コース形式
- インタラクティブな講義とデモンストレーション。
- モデル展開とパフォーマンスプロファイリングのハンズオンラボ。
- 実際のCVおよびNLPユースケースを使用したライブパイプライン設計。
コースカスタマイゼーションオプション
- このコースのカスタマイズトレーニングを希望される場合は、ご連絡ください。
CANN TIKとTVMを使用したカスタムAIオペレータの構築
14 時間CANN TIK (Tensor Instruction Kernel) と Apache TVM は、Huawei Ascend ハードウェア向けに AI モデルのオペレータを高度に最適化し、カスタマイズすることを可能にします。
このインストラクター主導のライブトレーニング(オンラインまたはオンサイト)は、CANN の TIK プログラミングモデルと TVM コンパイラ統合を使用して、カスタムオペレータを構築、展開、調整する高度なシステム開発者向けです。
本トレーニングの終了時には、参加者は以下のことができるようになります:
- Ascend プロセッサ用に TIK DSL を使用してカスタム AI オペレータを記述し、テストする。
- CANN ランタイムと実行グラフにカスタムオプスを統合する。
- TVM を使用してオペレータのスケジューリング、自動調整、ベンチマークを行う。
- カスタム計算パターンの命令レベルのパフォーマンスをデバッグし、最適化する。
コース形式
- 交互的な講義とデモンストレーション。
- TIK および TVM パイプラインを使用したオペレータの手動コーディング。
- Ascend ハードウェアまたはシミュレーターでのテストと調整。
コースカスタマイズオプション
- このコースのカスタムトレーニングを依頼する場合は、お問い合わせください。
CUDA アプリケーションの中国 GPU アーキテクチャへの移行
21 時間華為アセンディ、百綿、およびカムブリコン MLU などの中国の GPU アーキテクチャは、地元の AI と HPC 市場向けに特化した CUDA の代替品を提供しています。
この講師主導のライブトレーニング(オンラインまたはオンサイト)は、既存の CUDA アプリケーションを中国のハードウェアプラットフォームに移行および最適化したい高度な GPU プログラマーやインフラストラクチャ専門家向けです。
このトレーニング終了時には、参加者は以下を行うことができます:
- 既存の CUDA 負荷が中国製チップの代替品とどの程度互換性があるかを評価します。
- CUDA コードベースを華為 CANN、百綿 SDK、およびカムブリコン BANGPy 環境に移植します。
- プラットフォーム間でパフォーマンスを比較し、最適化ポイントを特定します。
- クロスアーキテクチャのサポートと展開における実用的な課題に対処します。
コースの形式
- 対話型の講義とディスカッション。
- コード翻訳とパフォーマンス比較の手順実習。
- 複数 GPU への適応戦略に焦点を当てたガイダンス付き演習。
コースのカスタマイズオプション
- プラットフォームや CUDA プロジェクトに基づいてこのコースのカスタマイズ版をお求めの場合、ご連絡ください。
Ascend、Biren、Cambricon 上のパフォーマンス最適化
21 時間Ascend、Biren、Cambricon は中国で主要な AI ハードウェアプラットフォームであり、それぞれが大規模な AI タスク向けに独自のアクセラレーションとプロファイリングツールを提供しています。
この講師主導のライブトレーニング(オンラインまたはオンサイト)は、中国の複数の AI チッププラットフォーム上でモデル推論と学習ワークフローを最適化したい上級レベルの AI インフラストラクチャおよびパフォーマンスエンジニア向けです。
このトレーニング終了時には、参加者は以下のことが Able to になります:
- Ascend、Biren、Cambricon プラットフォーム上でモデルをベンチマークする。
- システムのボトルネックとメモリ/計算の非効率性を特定する。
- グラフレベル、カーネルレベル、およびオペレータレベルでの最適化を適用する。
- デプロイメントパイプラインを調整して、スループットとラティエンシーを向上させる。
コース形式
- 対話型の講義とディスカッション。
- 各プラットフォーム上でプロファイリングおよび最適化ツールを使用する実践的な操作。
- 実用的なチューニングシナリオに焦点を当てたガイド付き演習。
コースのカスタマイズオプション
- パフォーマンス環境やモデルタイプに基づいたこのコースのカスタマイズトレーニングをご希望の場合、ご連絡ください。