gpt4 book ai didi

parallel-processing - Matlab GPU 计算 : Process matrix as one unit

转载 作者:行者123 更新时间:2023-12-04 05:20:55 27 4
gpt4 key购买 nike

我有一个名为 fun 的函数实现如下:

function result = fun( number , matrix)
result = var( mean(matrix) + number ); // any processing not that exactly
end

使用 parallel Computing toolbox我想将它分布在 GPU 上一组具有相同矩阵的数字上,如下面的代码:
mat = magic(10);
numbers = 1:5;
gMat = gpuArray(mat);
gNumbers = gpuArray(numbers);
result = arrayfun(@fun,gNumbers,gMat); // Error here

如果有人可以提供有关此问题的帮助,那就太好了。

最佳答案

在最初提出的情况下,您可以使用 MATLAB 的 BSXFUN在 GPU 上。 (不能以这种方式解决编辑后的问题。)

mat = magic(5);
numbers = 1:5;
gMat = gpuArray(mat);
gNumbers = gpuArray(numbers);
result = bsxfun(@rdivide, gMat, gNumbers);

请注意,我使用了 @rdivide直接而不是调用单独的函数 - 您不需要这样做,但它使事情变得更短。你也可以像这样使用匿名函数:
bsxfun(@(x,y) x./y, gMat, gNumbers)

关于parallel-processing - Matlab GPU 计算 : Process matrix as one unit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13696754/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com