我可以在 ArrayFire 中使用广播吗?

Can I use broadcasting in ArrayFire?

我可以这样做吗:

auto minEl = min(a);
a -= minEl;

?

当我这样做时,我得到了一个未知的 af::exception。现在,我正在这样做:

auto minEl = *min(a).host<float>();
a -= minEl;

当然,它会进行不必要的下载。

我从 numpy 借用术语 "broadcasting",因为它在那里工作得很好 :)

ArrayFire 目前不支持广播。您必须手动平铺阵列以匹配所需的尺寸。
auto minEl = min(a); a -= tile(minEl, a.dims(0));

此方法还避免了将标量复制到主机内存。