CUDAプログラミング (4) - C/C++/GPU並列コンピューティング - 行列 matrix 乗算

✅ 全 (1) ~ (6) のシリーズのうち、(4) 行列(2D配列)を並列で同時に掛け算 ✅ 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

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

5.0

5.0

하지

100% 受講後に作成

最適化部分が特に多くの場合役に立ちます。

5.0

몽크in도시

10% 受講後に作成

行列乗算が多様に実装できるという点が珍しく、CPU実装でもループ構造を変えればより速くなるということは知らなかったことでした。普通のランゲージ本に出てくるレベルではなく、本番コーディングを学んだ感じです。

5.0

hooha1207

55% 受講後に作成

本格的に数学演算をcudaにする方法について教えてくれてよかったです。 そして、ドリップコーヒー+ハンモグンダーさんの目次整理のおかげで、とても早く欲しい内容を確認しました

受講後に得られること

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

  • この講義は - パート (4) - 行列(2D配列)を並列で同時に掛ける

  • ロードマップ「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時間以上の講義として企画されました。
  • 各講義はさらに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ファイルをダウンロードしてインストール
  • https://fonts.google.com/specimen/Source+Sans+Proから、"download family"でZIPファイルをダウンロードしてインストール
  • https://fonts.google.com/specimen/Source+Serif+Proで、"download family"からZIPファイルをダウンロードしてインストール

こんな方に
おすすめです

学習対象は
誰でしょう?

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

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

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

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

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

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

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

こんにちは
onemoresipofcoffeeです。

9,742

受講生

312

受講レビュー

65

回答

4.9

講座評価

30

講座

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

カリキュラム

全体

40件 ∙ (3時間 40分)

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

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

受講レビュー

全体

5件

5.0

5件の受講レビュー

  • hooha1207님의 프로필 이미지
    hooha1207

    受講レビュー 8

    平均評価 5.0

    5

    55% 受講後に作成

    本格的に数学演算をcudaにする方法について教えてくれてよかったです。 そして、ドリップコーヒー+ハンモグンダーさんの目次整理のおかげで、とても早く欲しい内容を確認しました

    • wayfarecru0581님의 프로필 이미지
      wayfarecru0581

      受講レビュー 25

      平均評価 5.0

      5

      10% 受講後に作成

      行列乗算が多様に実装できるという点が珍しく、CPU実装でもループ構造を変えればより速くなるということは知らなかったことでした。普通のランゲージ本に出てくるレベルではなく、本番コーディングを学んだ感じです。

      • onemoresipofcoffee
        知識共有者

        こんにちは。🌞良い評価をいただきありがとうございます。 🍀いつも幸せな時間になってください。

    • kissureng4871님의 프로필 이미지
      kissureng4871

      受講レビュー 5

      平均評価 5.0

      5

      100% 受講後に作成

      最適化部分が特に多くの場合役に立ちます。

      • onemoresipofcoffee
        知識共有者

        こんにちは。🌞良い評価をいただきありがとうございます。 🍀いつも幸せな時間になってください。

    • dlghdwn0084660님의 프로필 이미지
      dlghdwn0084660

      受講レビュー 4

      平均評価 5.0

      5

      30% 受講後に作成

      • min4849님의 프로필 이미지
        min4849

        受講レビュー 5

        平均評価 5.0

        5

        30% 受講後に作成

        • onemoresipofcoffee
          知識共有者

          こんにちは。🌞良い評価をいただきありがとうございます。 🍀いつも幸せな時間になってください。

      onemoresipofcoffeeの他の講座

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

      似ている講座

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