Submit Search
Upload
Lisp Meet Up #19, cl-cuda: a library to use NVIDIA CUDA in Common Lisp
•
3 likes
•
2,042 views
M
masayukitakagi
Follow
introduce cl-cuda which is a library to use NVIDIA CUDA in Common Lisp
Read less
Read more
Software
Report
Share
Report
Share
1 of 19
Download now
Download to read offline
Recommended
1075: .NETからCUDAを使うひとつの方法
1075: .NETからCUDAを使うひとつの方法
NVIDIA Japan
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング -GPGPUも-
Yusaku Watanabe
C#, C/CLI と CUDAによる画像処理ことはじめ
C#, C/CLI と CUDAによる画像処理ことはじめ
NVIDIA Japan
GPGPUによるパーソナルスーパーコンピュータの可能性
GPGPUによるパーソナルスーパーコンピュータの可能性
Yusaku Watanabe
GPUをJavaで使う話(Java Casual Talks #1)
GPUをJavaで使う話(Java Casual Talks #1)
なおき きしだ
[20170922 Sapporo Tech Bar] 地図用データを高速処理!オープンソースGPUデータベースMapDってどんなもの?? by 株式会社...
[20170922 Sapporo Tech Bar] 地図用データを高速処理!オープンソースGPUデータベースMapDってどんなもの?? by 株式会社...
Insight Technology, Inc.
NetBSD on Google Compute Engine
NetBSD on Google Compute Engine
Ryo ONODERA
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
Recommended
1075: .NETからCUDAを使うひとつの方法
1075: .NETからCUDAを使うひとつの方法
NVIDIA Japan
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング -GPGPUも-
Yusaku Watanabe
C#, C/CLI と CUDAによる画像処理ことはじめ
C#, C/CLI と CUDAによる画像処理ことはじめ
NVIDIA Japan
GPGPUによるパーソナルスーパーコンピュータの可能性
GPGPUによるパーソナルスーパーコンピュータの可能性
Yusaku Watanabe
GPUをJavaで使う話(Java Casual Talks #1)
GPUをJavaで使う話(Java Casual Talks #1)
なおき きしだ
[20170922 Sapporo Tech Bar] 地図用データを高速処理!オープンソースGPUデータベースMapDってどんなもの?? by 株式会社...
[20170922 Sapporo Tech Bar] 地図用データを高速処理!オープンソースGPUデータベースMapDってどんなもの?? by 株式会社...
Insight Technology, Inc.
NetBSD on Google Compute Engine
NetBSD on Google Compute Engine
Ryo ONODERA
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
㉞cocos2d-xの開発環境をインストールしてみよう
㉞cocos2d-xの開発環境をインストールしてみよう
Nishida Kansuke
1072: アプリケーション開発を加速するCUDAライブラリ
1072: アプリケーション開発を加速するCUDAライブラリ
NVIDIA Japan
もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったら
Takuma Nakajima
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
京大 マイコンクラブ
Linux KVM環境におけるGPGPU活用最新動向
Linux KVM環境におけるGPGPU活用最新動向
Taira Hajime
V6read#4
V6read#4
magoroku Yamamoto
Fight Against Citadel in Japan by 中津留 勇
Fight Against Citadel in Japan by 中津留 勇
CODE BLUE
[Azure Antenna] クラウドで HPC ~ HPC on Azure ~
[Azure Antenna] クラウドで HPC ~ HPC on Azure ~
Shuichi Gojuki
[Cyber HPC Symposium 2019] Microsoft Azureによる、クラウド時代のハイパフォーマンスコンピューティング High...
[Cyber HPC Symposium 2019] Microsoft Azureによる、クラウド時代のハイパフォーマンスコンピューティング High...
Shuichi Gojuki
KVM+cgroup
KVM+cgroup
(^-^) togakushi
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
Nobuto Murata
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
株式会社サードウェア
RHEL on Azure、初めの一歩
RHEL on Azure、初めの一歩
Ryo Fujita
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
Shuichi Gojuki
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Nobuto Murata
PEZY-SC2上における倍々精度Rgemmの実装と評価
PEZY-SC2上における倍々精度Rgemmの実装と評価
Toshiaki Hishinuma
仮想記憶入門 BSD-4.3を例題に
仮想記憶入門 BSD-4.3を例題に
magoroku Yamamoto
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
Computational Materials Science Initiative
20170726 py data.tokyo
20170726 py data.tokyo
ManaMurakami1
20150630_MySQL勉強会
20150630_MySQL勉強会
masayoshi shiraishi
NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012
Takuro Iizuka
Maxwell と Java CUDAプログラミング
Maxwell と Java CUDAプログラミング
NVIDIA Japan
More Related Content
What's hot
㉞cocos2d-xの開発環境をインストールしてみよう
㉞cocos2d-xの開発環境をインストールしてみよう
Nishida Kansuke
1072: アプリケーション開発を加速するCUDAライブラリ
1072: アプリケーション開発を加速するCUDAライブラリ
NVIDIA Japan
もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったら
Takuma Nakajima
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
京大 マイコンクラブ
Linux KVM環境におけるGPGPU活用最新動向
Linux KVM環境におけるGPGPU活用最新動向
Taira Hajime
V6read#4
V6read#4
magoroku Yamamoto
Fight Against Citadel in Japan by 中津留 勇
Fight Against Citadel in Japan by 中津留 勇
CODE BLUE
[Azure Antenna] クラウドで HPC ~ HPC on Azure ~
[Azure Antenna] クラウドで HPC ~ HPC on Azure ~
Shuichi Gojuki
[Cyber HPC Symposium 2019] Microsoft Azureによる、クラウド時代のハイパフォーマンスコンピューティング High...
[Cyber HPC Symposium 2019] Microsoft Azureによる、クラウド時代のハイパフォーマンスコンピューティング High...
Shuichi Gojuki
KVM+cgroup
KVM+cgroup
(^-^) togakushi
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
Nobuto Murata
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
株式会社サードウェア
RHEL on Azure、初めの一歩
RHEL on Azure、初めの一歩
Ryo Fujita
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
Shuichi Gojuki
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Nobuto Murata
PEZY-SC2上における倍々精度Rgemmの実装と評価
PEZY-SC2上における倍々精度Rgemmの実装と評価
Toshiaki Hishinuma
仮想記憶入門 BSD-4.3を例題に
仮想記憶入門 BSD-4.3を例題に
magoroku Yamamoto
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
Computational Materials Science Initiative
20170726 py data.tokyo
20170726 py data.tokyo
ManaMurakami1
20150630_MySQL勉強会
20150630_MySQL勉強会
masayoshi shiraishi
What's hot
(20)
㉞cocos2d-xの開発環境をインストールしてみよう
㉞cocos2d-xの開発環境をインストールしてみよう
1072: アプリケーション開発を加速するCUDAライブラリ
1072: アプリケーション開発を加速するCUDAライブラリ
もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったら
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
Linux KVM環境におけるGPGPU活用最新動向
Linux KVM環境におけるGPGPU活用最新動向
V6read#4
V6read#4
Fight Against Citadel in Japan by 中津留 勇
Fight Against Citadel in Japan by 中津留 勇
[Azure Antenna] クラウドで HPC ~ HPC on Azure ~
[Azure Antenna] クラウドで HPC ~ HPC on Azure ~
[Cyber HPC Symposium 2019] Microsoft Azureによる、クラウド時代のハイパフォーマンスコンピューティング High...
[Cyber HPC Symposium 2019] Microsoft Azureによる、クラウド時代のハイパフォーマンスコンピューティング High...
KVM+cgroup
KVM+cgroup
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
RHEL on Azure、初めの一歩
RHEL on Azure、初めの一歩
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
PEZY-SC2上における倍々精度Rgemmの実装と評価
PEZY-SC2上における倍々精度Rgemmの実装と評価
仮想記憶入門 BSD-4.3を例題に
仮想記憶入門 BSD-4.3を例題に
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
20170726 py data.tokyo
20170726 py data.tokyo
20150630_MySQL勉強会
20150630_MySQL勉強会
Similar to Lisp Meet Up #19, cl-cuda: a library to use NVIDIA CUDA in Common Lisp
NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012
Takuro Iizuka
Maxwell と Java CUDAプログラミング
Maxwell と Java CUDAプログラミング
NVIDIA Japan
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
Yosuke Onoue
Apache cloudstack4.0インストール
Apache cloudstack4.0インストール
Yasuhiro Arai
Cuda
Cuda
Shumpei Hozumi
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)
Yasuhiro Arai
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
Mr. Vengineer
TripleOの光と闇
TripleOの光と闇
Manabu Ori
OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)
Satoshi Shimazaki
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
Hopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないこと
NVIDIA Japan
CloudStackユーザ会 OSC.cloud
CloudStackユーザ会 OSC.cloud
samemoon
Cmc cmd slim
Cmc cmd slim
Shinji Shimojo
20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会
samemoon
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
Toru Makabe
CUDAプログラミング入門
CUDAプログラミング入門
NVIDIA Japan
OpenStack Summit November 2014 Paris出張報告
OpenStack Summit November 2014 Paris出張報告
Mitsuhiro SHIGEMATSU
もっとわかる Microsoft Azure最新技術アップデート編 - 20150123
もっとわかる Microsoft Azure最新技術アップデート編 - 20150123
Kuninobu SaSaki
Hello, DirectCompute
Hello, DirectCompute
dasyprocta
JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)
l_b__
Similar to Lisp Meet Up #19, cl-cuda: a library to use NVIDIA CUDA in Common Lisp
(20)
NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012
Maxwell と Java CUDAプログラミング
Maxwell と Java CUDAプログラミング
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
Apache cloudstack4.0インストール
Apache cloudstack4.0インストール
Cuda
Cuda
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
TripleOの光と闇
TripleOの光と闇
OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Hopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないこと
CloudStackユーザ会 OSC.cloud
CloudStackユーザ会 OSC.cloud
Cmc cmd slim
Cmc cmd slim
20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
CUDAプログラミング入門
CUDAプログラミング入門
OpenStack Summit November 2014 Paris出張報告
OpenStack Summit November 2014 Paris出張報告
もっとわかる Microsoft Azure最新技術アップデート編 - 20150123
もっとわかる Microsoft Azure最新技術アップデート編 - 20150123
Hello, DirectCompute
Hello, DirectCompute
JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)
Lisp Meet Up #19, cl-cuda: a library to use NVIDIA CUDA in Common Lisp
1.
cl-cuda : a
library to use NVIDIA CUDA in Common Lisp 2014.7.29 Masayuki Takagi Lisp Meet Up presented by Shibuya.lisp #19 1.GPGPU 1.1.GPGPU(General Purpose GPU) とは? 1.2.GPU の歴史 1.3.スパコンへの浸透 3.cl-cuda ライブラリ 3.1.cl-cuda の特徴 3.2.使い方 3.3.内部設計 3.4.カーネル関数を起動するまでの流れ 3.5.デモ 3.6.パフォーマンス比較 3.7.レポジトリ 2.NVIDIA CUDA 2.1.CUDA とは? 2.2.プロセッサ・アーキテクチャ 2.3.メモリ・アーキテクチャ 2.4.プログラミング・モデル 目次:
2.
1.GPGPU
3.
© 2014 Masayuki
Takagi-2- 1.1.GPGPU(General Purpose GPU) とは? GPU の計算資源を、画像処理以外の目的に応用する技術
4.
© 2014 Masayuki
Takagi-3- 1.2.GPUの歴史 3次元グラフィックスレンダリング 仮想空間に配置したモデルから、画面のピクセルの色をそれぞれ計算 VGA(640x480)の場合、独立した30万ピクセルの色を、60Hz(10-20msec)で処理する必要 グラフィックアクセラレータ(GPU)の登場 GPGPU に至るまでのGPUの歴史的背景を、簡単になぞります。 固定パイプライン - 1990's 物体表面での光や色の計算を、 ハードウェアで実装 グローシェーディング、フォン シェーディング プログラマブル・シェーダ - 2000's 物体表面での光や色の計算を、 ソフトウェア的にプログラム可能に バーテックスシェーダ、フラグメン トシェーダ General Purpose GPU - 2010's 汎用的に使えるんじゃね??
5.
© 2014 Masayuki
Takagi-4- 1.3.スパコンへの浸透 GPGPU は、スパコン分野にも広く浸透しています。 TOP 500, June 2014, Poster
6.
2.NVIDIA CUDA
7.
© 2014 Masayuki
Takagi-6- 2.1.CUDA とは? NVIDIA が提供する、並列計算アーキテクチャ。NVIDIA 製 GPU にて動作 GPUを利用したコプロセッシングによって、データ並列の計算処理能力を大幅に向上 C ベースの言語(CUDA C)、コンパイラ、デバッガ、プロファイラといった、ソフトウェア開 発環境も包括的に提供 Kepler GK110 のチップ写真
8.
© 2014 Masayuki
Takagi-7- 2.2.プロセッサ・アーキテクチャ CUDAでは、大量のプロセッサ・コアを、以下のような階層構造をとることで管理しています。 1つの GPU チップは、複数のストリーミング・マルチプロセッサ(SMX)からなる 1つのストリーミング・マルチプロセッサは、192 個の CUDA コアと1組のフロー・コント ローラ、 L1 キャッシュからなる 複数のスレッドをまとめたスレッドブロックごとに、ストリーミング・マルチプロセッサで処 理する GTX 680 ブロック図(一部省略)
9.
© 2014 Masayuki
Takagi-8- 2.3.メモリ・アーキテクチャ CUDAにおけるメモリは、プロセッサ・コアの階層構造に対応して、以下のような階層構造をとってい ます。 レジスタは、1つの CUDA コアからのみアクセス可能 シェアードメモリおよび L1 キャッシュは、同一の SMX に属する CUDA コア間で共有 L2 キャッシュは、SMX 間で共有される。小容量だが、オンチップにあり高速 グローバルメモリは、SMX 間で共有される。大容量だが、オフチップにあり低速 グローバルメモリ L2 キャッシュ シェアードメモリ / L1 キャッシュ レジスタ CUDA コア ストリーミング・マルチプロセッサ(SMX) GPU チップ
10.
© 2014 Masayuki
Takagi-9- 2.4.プログラミング・モデル CUDA のプログラミング・モデルは、ハードウェアのアーキテクチャに対応した階層構造となっていま す。 C を拡張した CUDA C によって、カーネル関数を定義。CUDA スレッドを構成し、1つ のCUDA コアで実行される。 スレッド数の指定とともに、カーネル関数を起動。スレッドブロックを構成し、1つのスト リーミング・マルチプロセッサ(SMX)で実行される。 並列度が高く1つのスレッドブロックに収まらない場合、複数のスレッドブロックをまとめ たグリッドを使い、複数の SMX で実行する。
11.
3.cl-cuda ライブラリ
12.
© 2014 Masayuki
Takagi-11- 3.1.cl-cuda の特徴的な機能 cl-cuda は、Common Lisp から NVIDIA CUDA を使用するためのライブラリです。以下の機能を提 供します。 カーネル関数の定義 カーネル記述言語 カーネルマクロの定義 カーネルモジュールの遅延コンパイル及び遅延ロード CUDA コンテキストの管理 ホストメモリ及びデバイスメモリの管理 ホスト=デバイス間のメモリ転送 OpenGL 相互運用
13.
© 2014 Masayuki
Takagi-12- 3.2.使い方(1) ここでは、cl-cuda の使い方を簡単に示します。 配列加算(vectorAdd)サンプル 2つの配列の各要素を足し合わせ、3つ目の配列に格納 各 CUDA コアが、配列の各要素を担当し、並列に処理 配列A 配列B 配列C 1 2 3 3 2 1 4 4 4+
14.
© 2014 Masayuki
Takagi-13- 3.2.使い方(2) 以下のようなコードで、Common Lisp から CUDA を使用できます。 (defkernel vec-‐add-‐kernel (void ((a float*) (b float*) (c float*) (n int))) (let ((i (+ (* block-‐dim-‐x block-‐idx-‐x) thread-‐idx-‐x))) (if (< i n) (set (aref c i) (+ (aref a i) (aref b i)))))) (defun main () (let* ((dev-‐id 0) (n 1024) (threads-‐per-‐block 256) (blocks-‐per-‐grid (/ n threads-‐per-‐block))) (with-‐cuda (dev-‐id) (with-‐memory-‐blocks ((a 'float n) (b 'float n) (c 'float n)) (random-‐init a n) (random-‐init b n) (sync-‐memory-‐block a :host-‐to-‐device) (sync-‐memory-‐block b :host-‐to-‐device) (vec-‐add-‐kernel a b c n :grid-‐dim (list blocks-‐per-‐grid 1 1) :block-‐dim (list threads-‐per-‐block 1 1)) (sync-‐memory-‐block c :device-‐to-‐host) (verify-‐result a b c n))))) カーネル関数を定義 CUDA コンテキストを生成 ホストとデバイスに、メモリ領域を確保 ホストメモリからデバイスメモリへデータ を転送 定義したカーネル関数を起動 デバイスメモリからホストメモリへデータ を転送
15.
© 2014 Masayuki
Takagi-14- 3.3.内部設計 cl-cuda は、以下の3つのコンポーネントから構成されます。 cl-cuda.api 実際にユーザが利用するインターフェ イスを提供。defkernel マクロ、カーネ ルマネージャ、CUDA コンテキスト、メ モリブロック、タイマ。 cl-cuda.lang カーネル記述言語と、そのコンパイラ を提供。コンパイラは、カーネル記述 言語を CUDA C へ変換する。CUDA C から PTX ファイルへの変換は、cl- cuda.api のカーネルマネージャが管 理する。 cl-cuda.driver-api CUDA ドライバ API への FFI(Foreign Function Interface)を提供。
16.
© 2014 Masayuki
Takagi-15- 3.4.カーネル関数を起動するまでの流れ 定義したカーネル関数を起動するまでの処理の流れは、以下のようになります。これらの処理は、 カーネルマネージャによって管理され、コンパイルやロードは、必要なタイミングまで遅延して実行さ れます。 1. カーネル関数を定義 defkenrel マクロを使用して、カーネル関数を定義しま す。 2. カーネル記述言語をコンパイル cl-cuda.lang のコンパイラを用いて、カーネル記述言語 を CUDA C へコンパイルします。 3. CUDA C をコンパイル NVIDIA の提供する NVCC (NVIDIA CUDA Compiler) を呼び出し、CUDA C のコードをカーネルモジュール (PTX ファイル)へコンパイルします。 4. カーネルモジュールをロード CUDA ドライバ API を使用して、カーネルモジュールを ロードします。 5. カーネル関数をロード CUDA ドライバ API を使用して、起動したいカーネル 関数をロードします。 6. 引数として渡す値を配列に格納 引数として GPU に渡す値を格納した配列を用意しま す。 7. カーネル関数を起動 CUDA ドライバ API を使用して、カーネル関数を起動 します。
17.
© 2014 Masayuki
Takagi-16- 3.5.デモ Nbody シミュレーション (:ql :cl-‐cuda-‐interop-‐examples) (cl-‐cuda-‐interop-‐examples.nbody:main :gpu t :interop t)
18.
© 2014 Masayuki
Takagi-17- 3.6.パフォーマンス比較 GPU を利用して並列計算することで、CPU での逐次処理に対し、40倍近い性能向上が得られまし た。 x37.5 Amazon EC2 インスタンス プロセッサ コア数 g2.2xlarge g2.2xlarge Xeon E5-2670 2.6GHz NVIDIA GRID K520 1 コア (シングルスレッド、SIMD命令使用せず、gcc -O3相当) 1,536 コア 4.86[sec] 182.2[sec] SPH(Smoothed Particle Hydrodynamics) による流体シミュレーション 11,774粒子
19.
© 2014 Masayuki
Takagi-18- 3.7.レポジトリ cl-cuda は、GitHub から入手できます。Quicklispは、そのテストポリシーの都合上、登録不可でした。 https://github.com/takagi/cl-cuda/
Download now