Inflearn brand logo image
Inflearn brand logo image
Programming

/

Programming Language

CUDA プログラミング (6) - C/C++/GPU パラレルコンピューティング - サーチ&ソート

✅ 全体(1)~(6)のシリーズのうち、(6) parallel search, parallel sort 実装 ✅ NVIDIA GPU+CUDA プログラミングを基礎から次々と説明します。 ✅C++/C言語で配列/行列/画像処理/統計処理/並べ替えなどを並列コンピューティングで非常に迅速に処理します。

CUDA
GPU
C++
C

こんなことが学べます

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

  • この講義は - パート (6) - parallel search, parallel sort 実装

  • ロードマップ"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.
実習は必須!

コンピュータプログラミング科目なので、豊富な実習を強調し、実際に動作するソースコードを提供し、一つ一つ従いながら試してみることができます。

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

講義時間にはすでに説明したソースコード部分については重複説明を最大限排除し、変更した部分や、強調すべき部分にのみ集中して学習できます。


こんな方にオススメです🙋‍♀️

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

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

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

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

プレビューする講義のレビュー 🏃

*以下の後期は、知識共有者が同じテーマで行った外部講演の後期です。

「私は並列アルゴリズムや並列コンピューティングについて何も知らなかったが、
講義を聞いた後は、並列コンピューティングに自信を持つようになりました。」

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

「講義を聞いた後、面接を見ると並列コンピューティングに経験があると言ったら、面接官たちはとても驚きました。
大学生レベルでは、CUDAや並列コンピューティング講義が見つけやすくないと言いました。」


CUDAプログラミング征服ロードマップ🛩️

  • CUDAプログラミング講義は、トピックへの集中度を高めるために7つのシリーズ、合計24時間以上の講義で企画されました。
  • 各レッスンは6つ以上のセクションで構成され、セクションごとに独立したトピックをカバーしています。 (現在の講義者パート0は、2つのセクションでIntroductionのみを提供します。)
  • 講義で使用したスライドはPDFファイルとして提供され、実践例が説明されているセクションでは、使用したプログラムソースコードが提供されます。

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

  • MPC、CUDAの紹介 - MPCとCUDAの全体的な紹介をするintrodution部分です。

パート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)で順次オープンしており、受講評が散在しており、まだ非公開です。有料講義は現在、以下の受講評価を受けています。

  • 1つの例では、さまざまなテクニックを適用しながら、パフォーマンスを最大限に引き上げるプロセスを詳しく説明してくれて有益です。
  • メモリ構造やロジックを視覚化して説明してくれたので、理解もはるかに簡単です。
  • 漠然としたAIの勉強の中で、デバイスの深化内容を加えることができます。
  • ソフトウェアのインストールがよく説明されており、ソースコードも提供されており、練習しやすくなりました。

Q.非専攻者も聞ける講義ですか?

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

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

  • 練習のためにNVIDIA CUDAが動作するハードウェア環境は事前に確保する必要があります。 NVIDIAのGeForceグラフィックカードを搭載したPC/ノートブックが必須です。
  • 一部のクラウド環境でもNVIDIA GeForceグラフィックカードを使用できますが、クラウド環境の設定は頻繁に変わり、有料の場合が多く、クラウド環境であれば、グラフィックカードの使い方は受講生本人が解決しなければなりません。

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

  • パート0から出発して、パート1からパート6に上がるにつれて、より深い理論とより多くの理解が必要です。
  • 必ずパート0からパート6の順に、定走して受講することを強くお勧めします。
  • パート6の最後の部分でカバーされているカウントマージソートは、プロの研究者がすぐに追いつくのは難しい程度の問題です。ただし、じっくりとついて行ったoff-line受講生たちは、前半の学習をもとに、無難に理解したという場合が多くありました。

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

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

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

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

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

  • 動画とPDFファイルでは、Google / Adob​​eの無料フォントのみを使用しました。
  • ハングルフォントは「ボンゴシック」Noto Sans JP 、英語フォントはSource Sans ProSource Serif Proを使用し、
  • 次のリンクからすべて無料でダウンロードできます。ダウンロード後は解凍後、右クリックでPC/ノートブックなどにインストールできます。
  • https://fonts.google.com/noto/specimen/Noto+Sans+JPから、「ダウンロードファミリー」としてZIPファイルにダウンロードしてインストール
  • https://fonts.google.com/specimen/Source+Sans+Proから、「ダウンロードファミリー」としてZIPファイルにダウンロードしてインストールする
  • https://fonts.google.com/specimen/Source+Serif+Proから、「ダウンロードファミリー」としてZIPファイルにダウンロードしてインストールする

こんな方に
おすすめです!

学習対象は
誰でしょう?

  • 配列/行列/画像処理/統計処理/並べ替えなどをC ++ Cベースの並列計算/並列処理に加速したい方

  • 直接開発したプログラムを並列コンピューティング/CUDA/クーダで加速させたい方

  • NVIDIA CUDAプログラミング/CUDAコンピューティングを基礎から勉強したい方

  • GPU並列処理/並列計算の理論と実際を均等に勉強したい方

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

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

  • コンピュータ構造、レジスタ、キャッシュ、タイムシェアリングなどの知識があれば、より良い

こんにちは
です。

8,829

受講生

196

受講レビュー

61

回答

4.9

講座評価

30

講座

One more cup of drip coffee for the road

カリキュラム

全体

39件 ∙ (3時間 42分)

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

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

受講レビュー

全体

5件

5.0

5件の受講レビュー

  • 김동규님의 프로필 이미지
    김동규

    受講レビュー 2

    平均評価 5.0

    5

    31% 受講後に作成

    • 민영님의 프로필 이미지
      민영

      受講レビュー 5

      平均評価 5.0

      5

      31% 受講後に作成

      • 드립커피+한모금더
        知識共有者

        안녕하세요.🌞 좋은 평가를 해주셔서 감사합니다. 🍀 늘 행복한 시간 되세요.

    • 8909k님의 프로필 이미지
      8909k

      受講レビュー 1

      平均評価 5.0

      5

      100% 受講後に作成

      강의가 잘 정리되어 있습니다.

      • 안녕하세요.🌞 좋은 평가를 해주셔서 감사합니다. 🍀 늘 행복한 시간 되세요.

    • 몽크in도시님의 프로필 이미지
      몽크in도시

      受講レビュー 25

      平均評価 5.0

      5

      5% 受講後に作成

      sort 가 CUDA 에서는 의외로 어려울 수 있다는 것과, 그럼에도 CPU 보다 훨씬 빠른 방법을 잘 배웠습니다. 좋은 강의 감사합니다. CUDA를 제대로 배운 느낌입니다.

      • 안녕하세요.🌞 좋은 평가를 해주셔서 감사합니다. 🍀 늘 행복한 시간 되세요.

    • 박 신석님의 프로필 이미지
      박 신석

      受講レビュー 2

      平均評価 5.0

      5

      100% 受講後に作成

      정렬에 대한 다양한 기법과 알고리즘들을 심도 있게 배울 수 있어서 좋았습니다.!

      • 안녕하세요. 좋은 평가를 해 주셔서 감사합니다. 더 다양한 강의로 뵙도록 하겠습니다. 감사합니다.

    onemoresipofcoffeeの他の講座

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

    似ている講座

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