具有多聚GPU的并行处理 - FFTN

4次观看(过去30天)
内森·ZECHAR.
内森·ZECHAR. 20月15日
你好,我想知道是否有可能利用multipul GPU执行几个fft,其中每个单独的fft可以给一个单独的GPU并行处理-或同时计算两个单独的功能。
例如,像这样的东西。
清晰的所有
nx = 256;
纽约= 256;
nz = 512;
a = rand(nx,ny,nz)+ 1i * rand(nx,ny,nz);
a = gpuarray(a);
B =兰特(Nx、纽约、新西兰)+ 1我*兰德(Nx、纽约、新西兰);
B = GPUARRAY(B);
%GPU 1将处理此内容
a = fftn(a);
%GPU 2将在GPU 1仍在处理上述时处理此操作
b = fftn(b);
%程序等待gpu完成,然后继续
在Matlab中是可能的吗?

答案(1)

马特J.
马特J. 20月15日
编辑:马特J. 20月15日
您可以使用GPudevice()选择不同的GPU以进行不同的计算。GPUArray命令异步运行,而不会阻止主机CPU上的MATLAB执行。因此,下面的任务将基本上与只有轻微头开始的GPU 1并行运行。
%GPU 1将处理此内容
GPudevice(1);
a = gpuarray.rand(nx,ny,nz)+ 1i * gpuarray.rand(ny,ny,nz);
a = fftn(a);
%GPU 2将处理此问题
GPudevice(2);
b = gpuarray.rand(nx,ny,nz)+ 1i * gpuarray.rand(nx,ny,nz);
b = fftn(b);
5点评论
沃尔特罗伯森
沃尔特罗伯森 20月16日
如果使用GPudevice()选择比当前所选的不同设备 对这一过程 然后将重置现有的GPU,丢失信息。
当您使用池大小的ParfeVal()时,不大于您所拥有的GPU的数量,那么每个人都会在自己的过程中运行,并将授予自己的GPU。如果我回忆起,GPU选择是自动的。

登录评论。

s manbetx 845


释放

R2019b

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!