gst_inst_128bit 命令を試してみたい。同じプログラムで、nvvp は多くの gst_inst_128bit コマンドを実行します。nsight のプロファイラでは、4 回の gst_inst_32bit 命令が取得されます。それらは同じプログラムである必要があります。この状況はどのように発生する可能性がありますか?
実験は、Linux、CUDA 5.0、GTX 580 で試行されました。プログラムは、カーネル関数で 1 つの配列から別の配列にデータをコピーするだけです。
cudaMalloc((void**)&dev_a, NUM * sizeof(float));
cudaMalloc((void**)&dev_b, NUM * sizeof(float));
kernel<<<grid,block>>>((uint4 *)dev_a, (uint4 *)dev_b);
カーネル:
__global__ void kernel(uint4 *a, uint4 *b){
unsigned int id = blockIdx.x * THREAD_NUM + threadIdx.x;
for(unsigned int i = 0;i < LOOP/4;i++){
b[id + i * GRID_NUM * THREAD_NUM] = a[id + i * GRID_NUM * THREAD_NUM];
}
return;