CUDAプログラミング (1) - C/C++/GPU並列コンピューティング - CUDAカーネル kernel

✅ 全(1)〜(6)のシリーズのうち、(1) CUDAカーネル(kernel)を実際に作成する ✅ NVIDIA GPU + CUDAプログラミングを基礎から一歩ずつ解説します。 ✅ C++/C言語で配列・行列・画像処理・統計処理・ソートなどを並列コンピューティングによって非常に高速に処理します。

難易度 中級以上

受講期間 36か月

CUDA
CUDA
GPU
GPU
Parallel Processing
Parallel Processing
C
C
C++
C++
CUDA
CUDA
GPU
GPU
Parallel Processing
Parallel Processing
C
C
C++
C++

学習した受講者のレビュー

学習した受講者のレビュー

4.9

5.0

몽크in도시

6% 受講後に作成

ソフトウェアのインストールがよく説明されており、ソースコードも提供されており、練習が簡単でした。良い講義に感謝し、次の講義も期待されます。

5.0

georover

96% 受講後に作成

講義の概念 最初からじっくり説明してくださるその展開がとても頭にすっぽり入ってきますね ありがとう

5.0

장민우

60% 受講後に作成

cudaを理解しやすく、Linux OSに関連する部分も一緒にいてよかったです。 コンピュータのハードウェア部分的なものとコードの動作まで一度は理解することをお勧めします。

受講後に得られること

  • シリーズ全体 - GPUを利用したCUDAの大規模並列コンピューティング

  • この講義は - パート (1) - CUDAカーネル(kernel)の概念と実際のコーディング

  • アップデート - 2023年7月、"リマスタリング"🍀(一部音源/映像)

  • ロードマップ「CUDAプログラミング」で✅セット割引クーポン✳️を提供

プログラムは速度が命!
大規模並列処理技術で高速化しましょう 🚀

大規模並列コンピューティングが重要だそうですが 🧐

GPU/グラフィックボードベースの大規模並列コンピューティングは、AI、ディープラーニング、ビッグデータ処理、画像/映像/音声処理などで非常に活発に使用されています。そして現在、GPU並列コンピューティングにおいて最も広範囲に適用されている技術が、NVIDIA社のCUDAアーキテクチャです。

並列コンピューティングの中でも大規模並列コンピューティングやCUDA(クーダ)などの技術が重要だと言われていますが、いざこの分野を体系的に教えてくれる講義を見つけるのが難しく、学習を始めることさえ困難ですよね。この講義を通じて、CUDAプログラミングを一つずつ学んでみてください。CUDAや並列コンピューティングは理論的な背景が必要で難易度も高いですが、この講義の豊富な例題と背景知識の解説とともに基礎から進めていけば、十分に習得可能です!この講義はシリーズ講義として制作される予定で、十分な講義時間を確保して提供します。

本講義では、C++/CプログラマーがCUDAライブラリとC++/C関数を組み合わせて、さまざまな分野の問題を大規模並列処理手法で加速する方法について説明します。この方法を通じて、すでに開発されたC++/Cプログラムを加速させたり、新しいアルゴリズムやプログラムを完全に並列コンピューティングで開発することで、画期的に高速化させることができます。

📢 受講前にご確認ください!

  • 実習のために、NVIDIA CUDAが動作するハードウェア環境をあらかじめ確保してください。NVIDIAのGeForceグラフィックカードが搭載されたPC/ノートパソコンが必ず必要です。
  • 一部のクラウド環境でもNVIDIA GeForceグラフィックカードを使用できますが、クラウド環境の設定は頻繁に変更され、有料である場合が多いです。クラウド環境を利用される場合、グラフィックカードの使用方法は受講生ご自身で確保していただく必要があります。
  • 講義の実習環境は、カリキュラムの<00. 講義前の準備事項>の講義で詳しくご確認いただけます。

講義の特徴 ✨

#1.
豊富な
例題と解説

CUDAと大規模並列コンピューティングは、豊富な例題と説明が必要です。このシリーズ講義では、計24時間以上の実際の講義時間を提供します。

#2.
実習は必須!

コンピュータープログラミングの科目であるため、豊富な実習を強調し、実際に動作するsource codeを提供することで、一つずつ順を追って進められるようになっています。

#3.
重要な部分を
集中的に!

講義時間には、すでに説明したsource codeの部分については重複した説明を最大限排除し、変更された部分や強調すべき部分だけに集中して学習することができます。


このような方におすすめです 🙋‍♀️

就職前に新技術に関するポートフォリオを追加したい大学生

既存のプログラムを画期的に改善したいプログラマー

様々なアプリケーションがどのように高速化されたかを知りたい専攻研究者

AI、ディープラーニング、行列計算などの並列処理の理論と実際を知りたい方

一足先にチェックする講義レビュー 🏃

*以下のレビューは、知識共有者が同じテーマで行った外部講演に対するレビューです。

"私は並列アルゴリズムや並列コンピューティングについて何も知りませんでしたが、
講義を受けた後には並列コンピューティングに自信を持てるようになりました。"

"従来のC++プログラムでは解決できなかったアルゴリズムが多かったのですが、
この講義を通じてリアルタイム処理が可能になるよう改善することができました!"

"講義を受けた後、面接で並列コンピューティングの経験があると言ったら、面接官の方々がとても驚いていました。
大学生レベルではCUDAや並列コンピューティングの講義を見つけるのは簡単ではないとのことでした。"


CUDAプログラミング完全攻略ロードマップ 🛩️

  • CUDAプログラミング講座は、トピックへの集中度を高めるため、7つのシリーズ、計24時間以上の講義として企画されました。
  • ロードマップ講義「CUDAプログラミング」も提供されています。ぜひチェックしてみてください。
  • 各講義はさらに6つ以上のセクションで構成されており、セクションごとに独立したテーマを扱っています。(現在の講義であるパート0は2つのセクションで構成され、イントロダクションのみを提供しています。)
  • 講義で使用したスライドがPDFファイルで提供され、実習例題が説明されているセクションでは、使用したプログラムのsource codeが提供されます。

パート0 (1時間無料講義)

  • MPC、CUDAの紹介 - MPCとCUDAについての全体的な紹介を行うイントロダクション部分です。

パート 1 (3時間 40分)現在の講義

  • CUDAカーネルの概念 - CUDAプログラミングの始まりであるCUDAカーネルの概念を学習し、並列コンピューティングが動作することを確認できます。

パート 2 (4時間 15分)

  • vector addition - 1次元配列形式であるvector(ベクトル)同士の演算を多様な例題で提示し、AXPYルーチンを実際にCUDAで実装します。

パート 3 (4時間 5分)

  • memory hierarchy - CUDAプログラミングの核心であるメモリ構造を学習します。例題としてmatrix addition、adjacent differenceなどを実装します。

パート 4 (3時間 45分)

  • matrix transpose & multiply - 2次元配列形式であるmatrix(マトリックス、行列)同士の演算を多様な例題で提示し、GEMMルーチンをCUDAで実装します。

パート 5 (3時間 55分)

  • atomic operation & reduction - CUDAのコントロールフローに対する理解とともに、atomic operation、reductionなどの問題定義から解決策まで学習します。GEMVルーチンもCUDAで実装します。

パート 6 (3時間 45分)

  • search & sort - CUDAアーキテクチャを利用して、search-all問題やeven-odd sort、bitonic sort、counting merge sortなどを効果的に実装する例題を学習します。

CUDAプログラミングと
大規模並列コンピューティングを完全攻略!


Q&A 💬

Q. 有料講義の受講評はどうですか?

有料講義が(1)〜(6)まで順次公開されているため、受講レビューが分散しており、現在はまだ非公開です。有料講義には現在、以下のようなレビューが寄せられています。

  • 一つの例題で様々なテクニックを適用しながら、性能を最大限に引き出す過程を詳しく説明してくださり、とても役に立ちました。
  • メモリ構造やロジックを視覚化して説明してくださったので、理解もずっとスムーズでした。
  • 漠然とAIを勉強している中で、デバイスに関する深い内容を補うことができて良かったです。
  • ソフトウェアのインストールが丁寧に説明されており、ソースコードも提供されているので、実習しやすかったです。

Q. 非専門家でも受講できる講義ですか?

  • C++プログラミングはある程度の経験が必要です。少なくとも、Cプログラミングの経験は必要です。すべての例題はできるだけ平易に作成されていますが、すべてC++/Cコードで提供されており、mallocやmemcpyなどの関数が提供する機能については別途説明しません。
  • ただし、コンピュータ構成(レジスタ、キャッシュメモリなど)、オペレーティングシステム(タイムシェアリングなど)、コンパイラ(コード生成、コード最適化)などについての理解があれば、講義の内容をより深く理解することができます。
  • この講義の当初の設計は、4年制大学のコンピュータ専攻の最上級生を対象とした深化学習用でした。

Q. 講義を受ける前に準備すべきことはありますか?受講に関する参考事項(必要な環境、その他の注意事項など)はありますか?

  • 実習のためのNVIDIA CUDAが動作するハードウェア環境は、あらかじめ確保しておく必要があります。 NVIDIAのGeForceグラフィックカードが搭載されたPC/ノートパソコンが必ず必要です。
  • 一部のクラウド環境でもNVIDIA GeForceグラフィックカードを使用できますが、クラウド環境の設定は頻繁に変更され、有料である場合が多いため、クラウド環境であれば、グラフィックカードの使用方法は受講生ご自身で解決していただく必要があります。

Q. 授業内容はどのレベルまで扱いますか?

  • パート0から出発して、パート1からパート6へと進むにつれて、より深い理論とより高い理解度が要求されます。
  • 必ずパート0からパート6の順序で、最初から最後まで順番に受講されることを強くお勧めします。
  • パート6の最後で扱うcounting merge sortは、専門の研究者でもすぐについていくのが難しいレベルの問題です。ただ、一歩ずつ進んできたオフラインの受講生たちは、前半部分の学習を土台にして、問題なく理解できたというケースが多かったです。

Q. 受講期限を設定している理由はありますか?

  • 受講期限を設定したのは、コンピュータ分野の特性上、それくらいの時間が経過すると、この講義の内容がすでに古い話になってしまう可能性が高いからです。
  • その頃には、新しい講義でまたお会いしましょう。 😄

Q. 動画に字幕は入っていますか?

  • はい。現在はすべての動画に字幕が入っています。
  • ただし、今後追加される動画の一部には、字幕が含まれない場合があります。

講義資料に使用したフォントに関する事項 ✔️

  • 動画とPDFファイルでは、Google / Adobeの無料フォントのみを使用しています。
  • 日本語フォントは"源ノ角ゴシック" Noto Sans KR、英語フォントはSource Sans ProSource Serif Proを使用しており、
  • 次のリンクからすべて無料でダウンロードできます。ダウンロード後は、解凍してからマウスの右クリックでPCやノートパソコンなどにインストールが可能です。
  • https://fonts.google.com/noto/specimen/Noto+Sans+KRにて、"download family"からZIPファイルをダウンロードしてインストール, download as a ZIP file by clicking "download family" and then install.
  • https://fonts.google.com/specimen/Source+Sans+Proから、"download family"でZIPファイルをダウンロードしてインストール, download as a ZIP file via "download family" and then install.
  • https://fonts.google.com/specimen/Source+Serif+Proから、"download family"でZIPファイルをダウンロードしてインストール, tải xuống dưới dạng tệp ZIP bằng cách chọn "download family" rồi cài đặt., download as a ZIP file via "download family" and install.

こんな方に
おすすめです

学習対象は
誰でしょう?

  • 配列・行列・画像処理・統計処理・ソートなどをC++ベースの並列コンピューティング・並列処理で加速させたい方

  • 自作のプログラムを並列コンピューティング/CUDA/クーダで加速させたい方

  • NVIDIA CUDA プログラミング/CUDA コンピューティングを基礎から学ぼうとしている方

  • GPU並列処理・並列コンピューティングの理論と実践をバランスよく学びたい方

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

  • C++またはCプログラミングの経験

  • コンピュータ構成、レジスタ、キャッシュ、タイムシェアリングなどに関する知識があれば、より好ましいです。

こんにちは
onemoresipofcoffeeです。

9,641

受講生

298

受講レビュー

65

回答

4.9

講座評価

30

講座

出発前にもう一杯のドリップコーヒーを

カリキュラム

全体

48件 ∙ (3時間 42分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

23件

4.9

23件の受講レビュー

  • dlghdwn0084660님의 프로필 이미지
    dlghdwn0084660

    受講レビュー 2

    平均評価 5.0

    5

    33% 受講後に作成

    • liberty3266님의 프로필 이미지
      liberty3266

      受講レビュー 6

      平均評価 5.0

      5

      31% 受講後に作成

      • gyuwonjo3973님의 프로필 이미지
        gyuwonjo3973

        受講レビュー 3

        平均評価 4.7

        5

        31% 受講後に作成

        • isolisk263540님의 프로필 이미지
          isolisk263540

          受講レビュー 1

          平均評価 5.0

          5

          35% 受講後に作成

          • dexaboud39693님의 프로필 이미지
            dexaboud39693

            受講レビュー 1

            平均評価 5.0

            5

            31% 受講後に作成

            onemoresipofcoffeeの他の講座

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

            似ている講座

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

            ¥6,325