如何在AleaGpu中使用10000行10000列(而不是行= 10和行= 5)的數組?我們如何使用AleaGpu使用10000行10000列的數組?
private void button3_Click(object sender, EventArgs e)
{
var worker = Worker.Default;
const int rows = 10;
const int cols = 5;
var rng = new Random();
var inputs = new double[rows, cols];
for (var row = 0; row < rows; ++row)
{
for (var col = 0; col < cols; ++col)
{
inputs[row, col] = rng.Next(1, 100);
}
}
var dInputs = worker.Malloc(inputs);
var dOutputs = worker.Malloc<double>(rows, cols);
var lp = new LaunchParam(1, 1);
worker.Launch(Kernel, lp, dOutputs.Ptr, dInputs.Ptr, rows, cols);
var outputs = new double[rows, cols];
dOutputs.Gather(outputs);
Assert.AreEqual(inputs, outputs);
}
如果我使用行= 10000和cols = 10000(而不是行= 10和行= 5):
我碰到一個錯誤「類型Alea.CUDA.CUDAInterop的」未處理的異常。 CUDAException」發生在Alea.CUDA.dll」的功能:公共靜態無效收集(這DeviceMemory DMEM,T [,] array2D):
dmem.Worker.EvalAction(() =>
{
CUDAInterop.cuSafeCall(CUDAInterop.cuMemcpyDtoH(hostPtr, devicePtr,
new IntPtr(Intrinsic.__sizeof<T>() * rows * cols)));
});
如何刪除這個錯誤?
非常感謝你的回答,我有同樣的問題,增加並行性事實上爲我解決了問題! – Sergio0694