Matlab在GPU上乘以逻辑矩阵和数值矩阵

时间:2015-12-22 13:08:19

标签: matlab matrix gpu

当我在GPU上进行采样时,例如

>> a = rand(3,5, 'gpuArray');
>> a = a > rand(size(a), 'gpuArray');
>> b = rand(5,3, 'gpuArray');
>> c = b * a; %where mistake happens,just said misuse *,  
MTIMES do not fully support integer class,at least one input is scalar.

那我怎么解决这个问题呢? 只需使用

>> a = double(a);
>> b = rand(5,3, 'gpuArray');
>> c = b * a;

我知道我可以做到这一点,但是有没有更好的解决方案,比如我可以直接加倍?

1 个答案:

答案 0 :(得分:1)

没有其他“不错”的解决方案。正如您已经发现的那样,MATLAB 仅支持使用浮点类型(doublesingle 等)的矩阵乘法。这是 MATLAB 中易于理解的行为。您必须确保这两种类型都是受支持的类型。