我正在尝试使用 ArrayFire.jl 进行矢量数学运算,但 Arrayfire 中未实现矢量叉积函数。是否有一种解决方法可以使用 Julia 的 Arrayfire.jl 包装器以高效的方式计算它?由于设备和主机之间的所有数据传输,以天真的方式定义函数真的很慢,而且我对包装函数的了解不足以弄清楚如何解决这个问题。
cross(a::ArrayFire.AFArray, b::ArrayFire.AFArray) = ArrayFire.AFArray([a[2]*b[3]-a[3]*b[2]; a[3]*b[1]-a[1]*b[3]; a[1]*b[2]-a[2]*b[1]]);