【发布时间】:2021-04-05 12:22:58
【问题描述】:
我是 opencl 的新程序员,我要执行 2 个复矩阵的乘法,但我不知道如何在 opencl 上处理复矩阵。请帮忙?
我已经尝试过用正常数进行矩阵乘法。
【问题讨论】:
-
为了更好地帮助您,您应该在您的问题中添加一些代码。到目前为止工作的东西,只是为了上下文。
标签: matrix opencl complex-numbers
我是 opencl 的新程序员,我要执行 2 个复矩阵的乘法,但我不知道如何在 opencl 上处理复矩阵。请帮忙?
我已经尝试过用正常数进行矩阵乘法。
【问题讨论】:
标签: matrix opencl complex-numbers
一种方法,虽然可能不是最有效的,但是将你的复数矩阵 Z 说成是两个实数矩阵 X(实部)和 Y 虚部,即
X[i,j]= Real( Z[i,j]) Y[i,j] = Imag( Z[i,j])
如果你有另一个复杂的矩阵 W 说,它被分成 U 和 V 然后相乘:
Z*W = (X*U-Y*V, X*V+Y*U)
在 rhs 上我们有实数矩阵和实数矩阵乘法和加法。
就乘法和加法而言,这将与直接进行(元素的)复数乘法和加法的计算量相同。如果给定并且应该返回复数数组,效率就会低下;然后你必须拆分,如上你要乘以实数的矩阵,并将产品组合成复杂的数组。
【讨论】: