背景
最近、GPU(Graphics Processing Unit)やHPC(High Performance Computing)といったキーワードをよく耳にしませんか?
実はこのGPUやHPCを支えている1つのキーテクノロジーがCUDA(Compute Unified Device Architecture)です。
CUDAとはNVIDIAが提供しているGPGPUのプログラミング開発環境です。
CUDAを使う事で、通常の計算にGPU並列処理を行う事が可能になり、CPU1コアで行う逐次処理に比べて10~100倍程度の高速化を見込めます。つまり、一昔前のスーパーコンピューターのような環境をGPUを使えば誰でも手軽に用意することが出来ます。
CUDAはC言語を拡張したCUDA Cを使うのが一般的ですが、CUDA CではC言語でのメモリ管理をする必要があるため、プログラミングの手間がかかります。
そこで、CUDA CのラッパーライブラリであるPyCUDAを使う事でPythonからCUDAを取り扱うことが出来ます。
PythonからCUDAを使えるとCUDA Cで面倒なメモリ管理が楽になるだけでなく、ファイル入出力や可視化もPythonのライブラリが利用できるので非常に多くのメリットを持ちます。
本コースとは
背景
最近、GPU(Graphics Processing Unit)やHPC(High Performance Computing)といったキーワードをよく耳にしませんか?
実はこのGPUやHPCを支えている1つのキーテクノロジーがCUDA(Compute Unified Device Architecture)です。
CUDAとはNVIDIAが提供しているGPGPUのプログラミング開発環境です。
CUDAを使う事で、通常の計算にGPU並列処理を行う事が可能になり、CPU1コアで行う逐次処理に比べて10~100倍程度の高速化を見込めます。つまり、一昔前のスーパーコンピューターのような環境をGPUを使えば誰でも手軽に用意することが出来ます。
CUDAはC言語を拡張したCUDA Cを使うのが一般的ですが、CUDA CではC言語でのメモリ管理をする必要があるため、プログラミングの手間がかかります。
そこで、CUDA CのラッパーライブラリであるPyCUDAを使う事でPythonからCUDAを取り扱うことが出来ます。
PythonからCUDAを使えるとCUDA Cで面倒なメモリ管理が楽になるだけでなく、ファイル入出力や可視化もPythonのライブラリが利用できるので非常に多くのメリットを持ちます。
本コースとは
本コースは、PyCUDAを使ったGPU並列計算の入門講座です。
CUDAを取り扱うには、CUDAだけの知識ではなく、ハードウェアやソフトウェアの両方の知識を持っていた方が望ましいです。
この為、本コースではまずGPUとは何か?から始め、GPU周辺のハードウェアの知識(マザーボード/メモリ/GPUの性能指標)やCUDAの基礎的な用語(thread / block / grid / warpなど)で基礎を固めます。
そして、Google Colabを使った開発環境で実際のPyCUDAでのGPUプログラミングの基礎を学習していきます。
Google ColabはGoogleの提供する無料のPythonインタラクティブ環境ですが、実はGPUでの計算も対応しています。
この為、本コースはGPUをお持ちでない受講生の方も受講する事が可能になっています。
受講要件
本コースの受講要件は
・Pythonのプログラミングスキル
・数値計算の知識(*こちらは必須ではありません)
の2つです。このうち、最低限必要なのはPythonのプログラミングスキルのみです。
PyCUDAプログラミングを身に付けて、皆さんの計算を劇的に高速化しませんか?
まずはコースの概要だけでも見ていっていただければ幸いです。
講義で使用したスライドをpdfとして纏めました。講義の復習にご活用ください。
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.