-2
我在同一個文件中有兩個內核,代碼應該運行第一個內核來生成一個數組。那麼我需要將生成的數組發送到第二個內核。然而,當我這樣做時,第二個內核看到所有數組元素都是0.啓動CUDA內核序列和它們之間的數據傳輸
這裏是簡化(不是可運行的代碼)只是一個psyducode。
cudaMalloc(device input array)
cudaMalloc(result array)
cudaMemcpy(device_input_array,inputarray,size,hosttodevice)
kernel1<<<1,n>>(device_input_array,device_result_array)
cudaMemcpy(host_result_array,device_result_array ...)
cudaMalloc(dev_secndarray)
kernel2<<<1,n>>>(dev_secndarray,device_result_array)
for testing ..在kernel2中,我在device_result_array上創建一個循環,它將它的所有元素都打印爲零。
什麼是在內核之間發送數據的正確方式。我應該再次爲結果數組保留空間嗎?我該怎麼辦?