4
下面我列出了一個自包含的示例,它使用cudaMemcpyFromSymbol()
從內核檢索結果。該示例將符號參數(調用中的第二個參數)作爲常規變量傳遞。不過,據我所知的CUDA文檔,傳遞的參數爲一個字符串,那就是:瞭解cudaMemcpyFromSymbol()的符號參數
cudaMemcpyFromSymbol(&out, "out_d", sizeof(out_d), 0, cudaMemcpyDeviceToHost);
(與周圍的符號名引號),也應該工作。這對我不起作用。
什麼時候符號名稱會起作用,符號名稱何時會作爲字符串工作?
#include "cuda_runtime.h"
#include <stdio.h>
__device__ int out_d;
__global__ void test() {
out_d = 123;
}
int main() {
test<<<1,1>>>();
int out;
cudaMemcpyFromSymbol(&out, out_d, sizeof(out_d), 0, cudaMemcpyDeviceToHost);
printf("%d\n", out);
return 0;
}