回答編集履歴
2
追記
test
CHANGED
@@ -25,3 +25,5 @@
|
|
25
25
|
ことが望まれますが、メモリ転送をPythonでどこまで制御できるかは僕はわからんですごめんなさい。
|
26
26
|
|
27
27
|
※ 僕はC++でベタ書きするのでメモリ転送のタイミングは僕次第
|
28
|
+
|
29
|
+
※ とはいえこのテのことを考慮してると(さくさく書けるってゆー)Pythonのウマミがなくなりますよねー
|
1
追記
test
CHANGED
@@ -7,3 +7,21 @@
|
|
7
7
|
が示すとおり、blockあたりのthread数は最大1024です。
|
8
8
|
|
9
9
|
また、threadの実行効率考慮するとblockあたりのthread数は2のベキ(1024, 512, 256...)が望まれます。
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
CUDAを使った時パフォーマンスを落とす大きな要因はデバイス(GPU)とホスト(CPU)間のメモリ転送。
|
14
|
+
|
15
|
+
これを極力減らす(CPU/GPU間を行ったり来たりしない)、つまり
|
16
|
+
|
17
|
+
- 計算に必要な領域はまとめてGPUに転送しておき
|
18
|
+
|
19
|
+
- 一気にまとめて実行し
|
20
|
+
|
21
|
+
- 最後に結果をCPUに引き戻す
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
ことが望まれますが、メモリ転送をPythonでどこまで制御できるかは僕はわからんですごめんなさい。
|
26
|
+
|
27
|
+
※ 僕はC++でベタ書きするのでメモリ転送のタイミングは僕次第
|