Ускорение предварительной обработки перед вызовом cublas - PullRequest
0 голосов
/ 19 октября 2019

Мой код выполняет ядро ​​предварительной и последующей обработки до и после каждого вызова cublas, например, как показано ниже.

float* x[N];
preprocessing<<<numBlocks, threadsPerBlock>>>(N, x);
cublasSscal(cublasHandle_t handle, int n, const float *alpha, float *x, int incx);
postprocessing<<<numBlocks, threadsPerBlock>>>(N, x);

Я ищу способы ускорить этот код, используя фактчто такие операции, как scal , могут выполняться в режиме SIMD, и, следовательно, ядра предварительной и последующей обработки и вызовы cublas не обязательно должны быть синхронными.

Один из способов сделать это - разбить выполнение на более мелкие блоки вместо того, чтобы делать это по всему массиву сразу, используя что-то вроде потоков cuda. Есть ли альтернативный способ сделать это с помощью какой-либо другой конструкции CUDA?

...