CUDAプログラミング (2) - C/C++/GPU並列コンピューティング - ベクトル vector 加算

✅ 全 (1) ~ (6) のシリーズのうち、(2) ベクトル(1D配列)を並列で同時に加算 ✅ 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

hooha1207

100% 受講後に作成

講義目次が feature を cuda で計算する方法を基準に分かれており、学習速度が非常に速い 目的のフィーチャ計算を目次で見つけた後 オープニング映像を視聴して適切であることを確認した後 当てはまると次の映像を視聴してcudaの実装方法とアイデアを獲得 オープニング映像が私にとって本当に必要な機能かどうかを判断するのに本当に大きな助けになったと思います。 featureの内容だけを扱うので、私が望む内容かどうかを正確かつ迅速に判断できました 本当に良いです ...だから受講期限制限... ㅠ

5.0

하지

100% 受講後に作成

実習面ではちょっと残念な面がありますが、説明が詳しく分かりやすいです

5.0

몽크in도시

6% 受講後に作成

プログラムの時間測定を扱う部分は、CUDAの他に他のプログラムでもすぐに適用することができ、多くの役に立ちました。後にAXPYの問題はBLASで実際に提供するルーチンです。 BLASで書いたコードを加速させることもできると思いました。 楽しい講義でした!

受講後に得られること

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

  • この講義は - パート (2) - ベクトル(1D配列)を並列で同時に加算する

  • アップデート - 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ファイルをダウンロードしてインストール, download as a ZIP file via "download family" and then install.

こんな方に
おすすめです

学習対象は
誰でしょう?

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

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

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

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

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

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

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

こんにちは
onemoresipofcoffeeです。

9,716

受講生

311

受講レビュー

65

回答

4.9

講座評価

30

講座

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

カリキュラム

全体

50件 ∙ (4時間 19分)

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

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

受講レビュー

全体

13件

4.9

13件の受講レビュー

  • wayfarecru0581님의 프로필 이미지
    wayfarecru0581

    受講レビュー 25

    平均評価 5.0

    5

    6% 受講後に作成

    プログラムの時間測定を扱う部分は、CUDAの他に他のプログラムでもすぐに適用することができ、多くの役に立ちました。後にAXPYの問題はBLASで実際に提供するルーチンです。 BLASで書いたコードを加速させることもできると思いました。 楽しい講義でした!

    • onemoresipofcoffee
      知識共有者

      こんにちは。🌞良い評価をいただきありがとうございます。役に立ったのは幸いです。ありがとうございます。 🍀

  • hooha1207님의 프로필 이미지
    hooha1207

    受講レビュー 8

    平均評価 5.0

    5

    100% 受講後に作成

    講義目次が feature を cuda で計算する方法を基準に分かれており、学習速度が非常に速い 目的のフィーチャ計算を目次で見つけた後 オープニング映像を視聴して適切であることを確認した後 当てはまると次の映像を視聴してcudaの実装方法とアイデアを獲得 オープニング映像が私にとって本当に必要な機能かどうかを判断するのに本当に大きな助けになったと思います。 featureの内容だけを扱うので、私が望む内容かどうかを正確かつ迅速に判断できました 本当に良いです ...だから受講期限制限... ㅠ

    • sanhahwangtech1511님의 프로필 이미지
      sanhahwangtech1511

      受講レビュー 4

      平均評価 5.0

      5

      100% 受講後に作成

      良い講義ありがとうございます。

      • onemoresipofcoffee
        知識共有者

        ありがとうございます。 良い一日になってください。

    • kissureng4871님의 프로필 이미지
      kissureng4871

      受講レビュー 5

      平均評価 5.0

      5

      100% 受講後に作成

      実習面ではちょっと残念な面がありますが、説明が詳しく分かりやすいです

      • pyounghwayoon7340님의 프로필 이미지
        pyounghwayoon7340

        受講レビュー 8

        平均評価 5.0

        5

        30% 受講後に作成

        onemoresipofcoffeeの他の講座

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

        似ている講座

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