Julia基准测试DSP.jl、CUDANative和CUDANative阵列
我正在试验DSP.jl,尤其是Julia基准测试DSP.jl、CUDANative和CUDANative阵列,julia,gpu,benchmarking,julia-gpu,Julia,Gpu,Benchmarking,Julia Gpu,我正在试验DSP.jl,尤其是conv()方法。我正在使用CUDANative和CuArrays创建数组作为conv()的参数,以便使用fft()等的cuda版本。我正在使用BenchmarkTools获取性能数据。我发现Julia运行时抱怨在奇怪的情况下CPU或GPU内存不足。以下是我的测试设置: using CUDAdrv, CUDAnative, CuArrays using DSP using FFTW using BenchmarkTools N = 120 A = rand(Flo
conv()
方法。我正在使用CUDANative
和CuArrays
创建数组作为conv()
的参数,以便使用fft()
等的cuda版本。我正在使用BenchmarkTools
获取性能数据。我发现Julia运行时抱怨在奇怪的情况下CPU或GPU内存不足。以下是我的测试设置:
using CUDAdrv, CUDAnative, CuArrays
using DSP
using FFTW
using BenchmarkTools
N = 120
A = rand(Float32, N, N, N);
B = rand(Float32, N, N, N);
A_d = cu(A);
B_d = cu(B);
function doConv(A, B)
C = conv(A, B)
finalize(C)
C = []
end
t = @benchmark doConv($A_d, $B_d)
display(t)
这是我提到的奇怪行为的一个例子。如果我将N
设置为120,我的脚本将运行到完成。如果我将N
设置为64,则会出现“内存不足”错误:错误:LoadError:CUFFTError(代码2,cuFFT无法分配GPU或CPU内存)
。我可以先运行较小的案例,获取错误,然后将N
的值增大,并成功完成脚本
有什么我应该采取不同的措施来防止这种情况发生吗?您能提供在+版本的库上运行此代码的硬件规格吗?@sophros从那时起,我们朝着不同的方向前进,因此我无法恢复该信息。