摘要: 在编程中我们经常会合并某个矩阵,通常我们会使用循环来实现,然而循环有时候会降低程序运行的效率, 所以利用ArrayFire中的向量的平坦模式,我们可以利用空间来换取时间。主要的思路是: 1.我们将m*n的矩阵展开成一个1*(m*n)或者(m*n)*1的向量; 2.同理我们将p*q的矩阵展开成一个1* 阅读全文
posted @ 2020-07-12 05:10 flyingswallow 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 安装好ArrayFire后,我们可以使用该库进行GPU编程了,在thrust库中我们实现了无穷范数的程序编写。可以看出使用thrust我们需要定义很多的变量,还要实现GPU和host之间的数据传递,如果是用 ArrayFire来实现会容易一些。我用一个小例子来进行说明。 代码: #include " 阅读全文
posted @ 2020-07-12 04:51 flyingswallow 阅读(282) 评论(0) 推荐(0) 编辑
摘要: GPU的内核编程有时候让人十分头疼,尤其是调试的时候,因为用cuda语言编写GPU程序的时候它,没有友好的调试环境,断点调试根本无济于事,想要实现断点调试需要,两颗Nvida 公司的显卡,对于个人PC来说,很难实现。现在ArrayFire公司开源了一些库函数来辅助我们实现GPU编程。 ArrayFi 阅读全文
posted @ 2020-07-12 04:37 flyingswallow 阅读(880) 评论(0) 推荐(0) 编辑
摘要: 最近在学习Thrust库的时候,我发现Thrust可以自定义函数,所以笔者就想自己实现一个功能 通过自己写一个例程来加深对thrust的掌握。在向量的运算中我们会碰见各种范数,我打算以无穷 范数为例,实现这个功能。向量的无穷范数定义为:找出向量中绝对值最大的元素。 代码如下: #include "c 阅读全文
posted @ 2020-07-12 03:58 flyingswallow 阅读(151) 评论(0) 推荐(0) 编辑