回答編集履歴

2

追記

2020/06/25 05:17

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -25,3 +25,5 @@
25
25
  ことが望まれますが、メモリ転送をPythonでどこまで制御できるかは僕はわからんですごめんなさい。
26
26
 
27
27
  ※ 僕はC++でベタ書きするのでメモリ転送のタイミングは僕次第
28
+
29
+ ※ とはいえこのテのことを考慮してると(さくさく書けるってゆー)Pythonのウマミがなくなりますよねー

1

追記

2020/06/25 05:17

投稿

episteme
episteme

スコア16614

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++でベタ書きするのでメモリ転送のタイミングは僕次第