CUDA float2 объединяется - PullRequest
       4

CUDA float2 объединяется

1 голос
/ 08 декабря 2010

У меня проблемы с объединением операций чтения при использовании типа данных float2 в CUDA.

Я попытался создать простой пример для запуска в визуальном профилировщике, но он всегда возвращает несвязанные чтения. Если бы кто-нибудь мог пролить свет на это, я был бы очень благодарен, спасибо.

#include <stdio.h>
#include <cuda_runtime_api.h>

__global__ void kernel(float2 *in, float2 *out) {
        int idx=blockIdx.x*blockDim.x+threadIdx.x;
        float2 d=in[idx];
        d.x = 100.f;

        out[idx] = d;
}

int main() {
  const int dataSize=32;
  float2 *in;
  cudaMalloc((void**)&in,dataSize*sizeof(float2));

  float2 *out;
  cudaMalloc((void**)&out,dataSize*sizeof(float2));
  kernel<<<1,32>>>(in,out);
  return 0;
}

1 Ответ

1 голос
/ 09 декабря 2010

Я задавал этот вопрос на форумах NVIDIA.Оказывается, загрузка векторов не оптимизирована в режиме отладки. Форум

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...