Хочу попробовать инструкцию gst_inst_128bit. В той же программе nvvp выдает много выполненных команд gst_inst_128bit. В профайлере nsight получается 4 раза инструкция gst_inst_32bit. У них должна быть одна и та же программа. Как могла такая ситуация?
Эксперимент проводился на Linux, CUDA 5.0, GTX 580. Программа только копирует данные из одного массива в другой в функции ядра: In main:
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;