教你一招,不会CUDA也能玩转矩阵加速

高性能计算领域的很多问题都在研究并行算法的实现,而矩阵计算又是高性能计算中应用非常广泛的内容。图形处理器GPU有着强大的并行处理能力,出色的浮点计算能力,大存储带宽和低成本,广泛用于求解大规模矩阵计算问题上,但是很多开发者将串行代码移植到GPU上时候存在一个问题:“学习CUDA好麻烦!”有木有?有木有?尤其对于那些非计算机专业的童学,要对自己算法进行加速才能毕业的.....

在这里,小编教你一招,让你在GPU上玩转矩阵加速!

秘密武器就是:ArrayFire!

ArrayFire是由美国一家公司叫Accelereyes开发的,为广大程序猿提供了快速开发数据并行程序的一个软件平台。

ArrayFire提供了简单的高级矩阵抽象函数而不是低级的GPU APIs,诸如CUDA、OpenCL、OpenGL,可以让那些非计算机专业的科学家、工程学家、经济学家充分利用GPU的硬件优势!

ArrayFire早就有了,只是由于当时是收费的,尽管针对高校提供了优惠折扣,但叫好不叫座——小编为什么知道这么多?因为我们是他们在中国的代理。

去年,ArrayFire开源了!

对于众多经费有限,又希望使用GPU加速的程序猿们,这无疑是喜大普奔!小编从此少了收入来源......

...但是没有关系,好东西还是要分享给大家!

好了,不多说,举几个例子,来看看这个ArrayFire有多好用吧!


seq:线性序列,主要用来替换for循环 eg:seq b(10, 20, 2); // [10, 20, 2] => 10, 12, 14....20 其中10-begin,20-end,2-step; array theta=seq(0,359);//转换成矩阵模式 af_print(cos(theta*3.1415/180));//角度转换 for(int i=0;i<360;i++)可以用seq(0,359)代替 顺便提一句,arrayfire是按列进行存储了,即360行1列


constant&randu:常数矩阵和随机矩阵生成 eg: array B = constant(1, 4, 4, s32);//4*4全0矩阵 B.row(0) = randu(1, 4, f32); // set a row to random values (also upcast) //randu(row,col,type)


complex:复数矩阵,除了赋值其他操作和常规操作一样。 eg:array data8=af::complex(datareal8,dataimag8);//8通道 array=complex(real,imag);


transpose:矩阵转置 eg:array DATAT=transpose(DATA);//对DATA转置 array DATAT=transpose(DATA,true);//对DATA共轭转置,适用于复数矩阵


inverse:矩阵求逆 eg:af::array IA = inverse(A) af::array I = af::matmul(A, IA);


是不是非常好用呢?大家可以动手试一试,去Arrayfire.com上下载玩一玩吧!从来导师再也不用担心你毕不了业了!

原文发布于微信公众号 - 吉浦迅科技(gpusolution)

原文发表时间:2016-06-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据派THU

独家 | 哈佛教授公开R语言源码,教你用R制作gif动图

原文标题:Code for my educational gifs 作者:Rafael Irizarry 翻译:贾琳 本文长度为1800字,建议阅读4分钟 Ra...

21680
来自专栏大数据挖掘DT机器学习

【趣味】数据挖掘(5)—分房与分类

中老年回顾歌曲集中有这样一首歌:月亮在白莲花般的云朵里穿行,晚风吹来一阵阵欢乐的歌声,我们坐在高高的谷堆旁边,听妈妈讲那过去的事情……   歌词美,旋律也美...

31530
来自专栏机器之心

业界 | 谷歌展示全新医疗诊断范式:深度学习+AR显微镜=实时检测癌症

选自Google Research Blog 作者:Martin Stumpe、Craig Mermel 机器之心编译 参与:路、刘晓坤 今天,谷歌在美国癌症研...

34160
来自专栏量子位

谷歌与Verily发布新研究,可通过视网膜图像用AI检测心脏病

安妮 编译整理 量子位 出品 | 公众号 QbitAI 心脏病是一种常见的高发疾病。传统的治疗方法通常依赖于心电图、超声、X射线等大型仪器,可能不久后,会有一种...

30760
来自专栏大数据文摘

脑洞 | 哈佛教授公开R语言源码,教你用R制作gif动图

18620
来自专栏思影科技

EEG和fNIRS同步研究揭示年龄和神经反馈对运动想象信号的影响

注释:这篇文章相当长,请耐心看完。 来自德国奥尔登堡大学心理学部的Catharina Zich等人在Neurobiology of Aging杂志上发表了一项基...

40360
来自专栏量子位

机器学习概念太多记不住?别怕,这有一套手绘小卡片 | 资源

颜萌 李林 编译整理 量子位 出品 | 公众号 QbitAI 有很多种方法可以了解机器学习。你可以去听课,也可以看视频教程,甚至博客,知乎问答都可以是你的选择。...

41450
来自专栏程序生活

Gensim实现Word2Vec的Skip-Gram模型简介快速上手对语料进行分词使用gensim的word2vec训练模型

简介 Genism是一个开源的Python库,用于便捷高效地提取文档中的语义话题。它用于处理原始的、非结构化的电子文本(“纯文本”),gensim中的一些算法,...

49440
来自专栏PPV课数据科学社区

【学习】用SPSS绘制质量控制图

控制图(Control Chart)又称管理图,它是用来区分是由异常原因引起的波动,还是由过程固有的原因引起的正常波动的一种有效的工具。控制图通过科学的区分正常...

33050
来自专栏大数据文摘

边玩边入门深度学习,我们帮你找了10个简易应用demo

44530

扫码关注云+社区

领取腾讯云代金券