BLAS 中矩阵之间的逐元素乘法?

问题描述 投票:0回答:1

我开始在 C++(特别是 Intel MKL)中使用 BLAS 函数来创建一些旧 Matlab 代码的更快版本。

到目前为止一切顺利,但我不知道如何对 2 个矩阵(Matlab 中的 A .* B)执行元素乘法。

我知道 gemv 在矩阵和向量之间做了类似的事情,所以我应该将我的矩阵之一分解为向量并重复调用 gemv 吗?我认为这可行,但我觉得应该为此操作内置一些东西。


c++ matlab matrix blas
1个回答
3
投票

使用哈达玛产品。在 MKL 中是 v?MUL。例如。双打:

vdMul( n, a, b, y );

用 Matlab 表示法执行:

y[1:n] = a[1:n] .* b[1:n]

在你的情况下,你可以将矩阵视为向量。

© www.soinside.com 2019 - 2024. All rights reserved.