c语言codeblocks如何复制(用Codeblocks进行OpenCL编程6)

这节我们学习一个矩阵相乘的例子,矩阵是一个二维的4X4数组。计算时,16个数位同时计算,每个数位都进行四次乘法和四次加法的运算。

其实我们不难发现矩阵乘法其实就是行列式的点乘计算。在OpenCL里内置有dot运算符,通过这个运算符我们可以减少每一数位的运算次数,把四次乘法和四次加法合并成一次点乘计算。当然,我们必须把之前的int类型先转变成float数据类型,另外把之前B的数组先转置。下面我们来看代码。

matrix_mult.cl源码

c语言codeblocks如何复制(用Codeblocks进行OpenCL编程6)(1)

main.cpp源码:

c语言codeblocks如何复制(用Codeblocks进行OpenCL编程6)(2)

c语言codeblocks如何复制(用Codeblocks进行OpenCL编程6)(3)

c语言codeblocks如何复制(用Codeblocks进行OpenCL编程6)(4)

c语言codeblocks如何复制(用Codeblocks进行OpenCL编程6)(5)

c语言codeblocks如何复制(用Codeblocks进行OpenCL编程6)(6)

运算结果:

c语言codeblocks如何复制(用Codeblocks进行OpenCL编程6)(7)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页