World!拡張子が「cu」であり、「nvcc」というCUDA用のコマンドを使用してコンパイルできることを確認します。nvccコンパイラというのは、「ソースの中のCPUで動く部分とGPUで動く部分を分け、CPU用コードをCコンパイラに渡し、GPU用コードをコンパイルする」というものです。そのため、ソースがC言語のみで書かれていてもコンパイル可能、その場合実際にコンパイルしているのはCコンパイラです。Worldと少し違う点がありますね。・<<<1,10>>>で修飾された関数の呼び出しという、C言語では見慣れないコードが出てきました。簡単に言えばコンパイラに「以下の関数をGPU側で実行します」と指定するコマンドです。helloFromGPU()関数はGPU用コードを処理するコンパイラに渡され、main()関数はCコンパイラに渡されます。CUDA言語はC言語と似ており、同じようにプログラムを書くことができることが特徴です。どれくらいスピードアップするの?配列の加算処理を例にCPUとGPUの処理時間を比較してみる。\}/*この例では、GPUとホスト上の単純なベクトルの合計を示します。sumMatrixOnGPU2Dは、GPU上のCUDAスレッド間でベクトル合計の作業を分割します。2Dスレッドブロックと2Dグリッドが使用されます。sumMatrixOnHostは、ホスト上のベクトル要素を順番に反復処理します。(match)printf("配列が一致します。\n\n");elseprintf("配列が一致しません。まとめGPUの方が処理時間が約1/5になりました。単純な数値計算はすごく早いです。編集トップへ戻る閉じる。