游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

用CUDA写出比Numpy更快的规约求和函数

  目录技术背景CUDA的atomic运算总结概要版权声明技术背景
  在前面的几篇博客中我们介绍了在Python中使用Numba来写CUDA程序的一些基本操作和方法,并且展示了GPU加速的实际效果。在可并行化的算法中,比如计算两个矢量的加和,或者是在分子动力学模拟领域中的查找近邻表等等,都是可以直接并行的算法,而且实现起来难度不大。而有一种情况是,如果我们要计算的内容的线程之间互相存在依赖,比方说最常见的,计算一个矩阵所有元素的和。CUDA的atomic运算
  正如前面所提到的问题,如何去计算一个矩阵所有元素之和呢?具体问题可以表述为:
  Si,jAi,j
  对于此类的问题,如果我们像普通的CUDA并行操作一样,直接创建一个S变量,然后直接在线程和分块上直接把每一个矩阵元素加到这个S变量中,那么会出现一种情况:在线程同步时,存在冲突的线程是无法同时加和成功的,也就是说,这种情况下虽然程序不会报错,但是得到的结果是完全错误的。对于此类情况,CUDA官方给出了atomic运算这样的方案,可以保障线程之间不被干扰:importnumpyasnpfromnumbaimportcudafromnumbaimportvectorizecuda。selectdevice(1)cuda。jitdefReducedSum(arr,result):i,jcuda。grid(2)cuda。atomic。add(result,0,arr〔i〕〔j〕)ifnamemain:importtimenp。random。seed(2)datalength210arrnp。random。random((datalength,datalength))。astype(np。float32)print(arr)arrcudacuda。todevice(arr)nptime0。0nbtime0。0foriinrange(100):resnp。array(〔0〕,dtypenp。float32)rescudacuda。todevice(res)time0time。time()ReducedSum〔(datalength,datalength),(1,1)〕(arrcuda,rescuda)time1time。time()resrescuda。copytohost()〔0〕time2time。time()npresnp。sum(arr)time3time。time()ifi0:print(Theerrorrateis:,abs(npresres)res)continuenptimetime3time2nbtimetime1time0print(Thetimecostofnumpyis:{}s。format(nptime))print(Thetimecostofnumbais:{}s。format(nbtime))
  这里需要重点关注的就是用CUDA实现的简单函数ReducedSum,这个函数中调用了CUDA的atomic。add方法,用这个方法直接替代系统内置的加法,就完成了所有的操作。我们将这个函数的运行时间去跟np。sum函数做一个对比,结果如下:python3cudareducedsum。py〔〔0。43599490。025926230。5496625。。。0。38100550。68347490。5225032〕〔0。627631070。31849250。5822277。。。0。893222330。78456630。4595605〕〔0。96669470。166159230。6931703。。。0。294979070。637242560。06265242〕。。。〔0。962245050。367419720。6673239。。。0。31151760。75618430。9396167〕〔0。7817360。288297360。38047555。。。0。158373610。003926290。6236886〕〔0。032473150。36643440。00369871。。。0。02052530。159247060。8655231〕〕Theerrorrateis:4。177044e06Thetimecostofnumpyis:0。027491092681884766sThetimecostofnumbais:0。01042938232421875s
  在GPU的计算中,会有一定的精度损失,比如这里的误差率就在1e06级别,但是运行的速度要比numpy的实现快上2倍!总结概要
  我们知道GPU加速在可并行化程度比较高的算法中,能够发挥出比较大的作用,展示出明显的加速效果,而对于一些线程之间存在依赖这样的场景就不一定能够起到很大的加速作用。CUDA官方针对此类问题,提供了atomic的内置函数解决方案,包含有求和、求最大值等常用函数。而这些函数的特点就在于,线程与线程之间需要有一个时序的依赖关系。就比如说求最大值的函数,它会涉及到不同线程之间的轮询。经过测试,CUDA的这种atomic的方案,实现起来非常方便,性能也很乐观,相比于自己动手实现一个不断切割、递归的规约函数,还是要容易快捷的多。版权声明
  本文首发链接为:https:www。cnblogs。comdechinphypgpusum。html
  作者ID:DechinPhy
  更多原著文章请参考:https:www。cnblogs。comdechinphy
  打赏专用链接:https:www。cnblogs。comdechinphygalleryimage379634。html
  腾讯云专栏同步:https:cloud。tencent。comdevelopercolumn91958

小哥突然送来的包裹可能是七夕礼物,顺丰玩起了惊喜送达网友好会钱江晚报小时新闻记者陈婕危险危险危险,七夕就剩4天了,再不买礼物,快递都要救不了你啦。顺丰好会啊,连快递都在想给你女朋友制造惊喜。一年一度的男朋友内卷开始了。刚刚,……让小巨人助力新材料产业腾飞来源:人民网人民日报海外版新材料是最新科技成果的物质化基础,是催生新一代信息技术、新能源技术、智能制造技术、新一代生物技术等战略性新兴领域的先导,具有先进性、支撑性、多样……苹果三星卖贵了却有人说,华为4G手机比5G都卖的贵却没人说?7月29日,推迟了近4个月的华为P50Pro终于和花粉见面了,现在是5G时代,华为这个时候还发布4G手机出来,前面就有很多人说苹果不支持5G不买,现在连华为手机都出4G版,就算……暂时不要买iPhone12!因为今年的13可能真的很香暂时别买iPhone12相信大家经常能看到关于今年iPhone13的各种爆料消息,按照以往的爆料经验来看,今年iPhone13的这些消息准确度至少有90左右。所以现……字节跳动28岁工程师猝死,我想到了什么字节跳动28岁算法工程师猝死,留下怀孕两个月的妻子,没有工作没有收入,从此要独自背负30年,每个月2。1万的房贷,她在社交平台哭诉,希望可以退房退款,自己一人实在无力承担下个月……最安全的iOS也被攻克,iPhone新漏洞曝光,苹果承认无法要说手机系统中最安全的,大家第一时间肯定想到的是iOS。因为在用户隐私以及安全保护方面,iOS确实做得比安卓厂商更好一些。尤其是iOS14上带来的隐私追踪功能,将用户安全保护再……IPRO学生手机P100预防沉迷,完美替代儿童手表的专业学生引言:Hello,各位家长朋友们好,在当下的移动互联网时代,现在的孩子们在学习过程中可以借助更多的应用来辅助提升自己,相比以往的在家啃书查字典,现在可以在线学习、精准查找……干货分享国内电商转型跨境电商实用攻略最近和很多电商兄弟在聊2021年电商卖家的增长在哪里为此,我广泛调研了两年,走访了近百家跨境相关机构及公司,结论是明确的:跨境电商布局刻不容缓。对此,老高跨境电商俱乐部会员月月……华为不再孤单!鸿蒙获多家国产手机厂商支持,适配工作正在进行中随着时间的推移,由华为自主研发的纯国产多终端操作系统鸿蒙也迎来了一次次的公测版本的更新,并且在前几天华为鸿蒙OS系统的官方微博也正式启用。根据华为的公告显示,将会有近20……Java练习汉字Unicode表的位置求1!加到10!100java给出汉字你我他在Unicode表中的位置publicclassdemo3241{publicstaticvoidmain(String〔〕args){charchina……疑似iPhone13渲染图泄露,iPhone12价格爱疯,果之前,已经有关于iPhone13的新闻。一般来说,iPhone13的一般更改。更新集中在FaceID,屏幕和相机部件上。现在,LeaksApplePro已发布了一批iPhone……27个重要的JavaScript数组函数整理汇总1、Array。isArray()我们列表中的第一项是JavaScript中的isArray方法,它确定传递的输入是否为数组。语法:在下面的代码中,arr将是……
近乎完美!iPhone12更新iOS15Beta6体验报告当我们习惯了一款出色的操作系统之后,突然换回到另外一款不是特别优秀的操作系统时,真的会有着非常大的改变。因为我们已经习惯了流畅度极强的系统,很难接受有瑕疵的系统,甚至是一……30天封闭空间挑战,10万元奖励,究竟难在哪?和几位朋友讨论过这个挑战,30天10万元奖励,这就注定了挑战难度会很大,成功者会寥寥无几。有当过兵的朋友举过例子,在军队里只有犯比较严重的错误,才会被关禁闭。在很多影视作……智能领域优势互补,江汽集团再迎新合作伙伴目前,我国正在推进我国汽车产业转型升级,鼓励研究高质量、高技术水平的汽车品牌发展,而智能化就是关键点。近日安徽江淮汽车集团股份有限公司(简称江汽集团)与科大讯飞股份有限公司(简……重磅!又一化工企业冲刺创业板,去年营收超24亿近日,证监会发布消息称,其按法定程序同意山东隆华新材料股份有限公司(下称隆华新材、公司)等6家企业创业板首次公开发行股票注册,6家企业及其承销商将分别与深圳证券交易所协商确定发……域控制器引混战智能座舱及自动驾驶域成竞争焦点来源:盖世汽车尽管对于很多人来说,域控制器还是个有些陌生的名词,但域控制器的火热其实已显而易见,尤其在今年。4月上市的威马W6(参数丨图片)、6月上市的岚图FREE以及7……AppStore限免鸟类百科简单的预算信封logol等,共5在今天限免的iOS限免应用中,波老师精选了以下5款限免应用。复制logo上方名字即可前往AppStore下载。如遇恢复原价,则表示限免已结束,请谨慎下载。具体下载方式:复……雷柏ralemoPre5机械键盘新春版正式推送,年味十足光耀华彩,添贵气红金呈祥,喻吉兆光彩在线,红运自来。雷柏新女性系列ralemoPre5多模机械键盘新春版为祝福锦上添彩。萌趣财神送上富贵本命色,饱满柑橘与红灯笼随之……降价挽回颜面的Q2L,中期改款归来,价格上调没优惠你会买单吗当今便宜的SUV中最受女孩子们喜欢的是哪一辆?相信很多人心中的第一是Q2L。的确,从Q2在2018年引进之后,一汽直接来了加长。Q2L虽然引来了加长,开始符合大家在心中的空间大……自主豪华品牌典范,红旗H9上市一年多,它体现出国货之光了吗?红旗H9当时一经推出可以说是深受老板们的喜爱,被称为国产劳斯莱斯的它在红旗的品牌影响力加持下可以说风光无限,不仅如此,它的上市也让红旗成为了公认的自主豪华品牌,这一点着实难得。……开学季,这4款手机可以闭眼买,三五年不过时临近开学,不少大学新生正在为选择新机发愁。一款手机最好能坚持四年,度过大学时光,等临近大学毕业再换新机。考虑到学生党没有收入来源,买手机多数要依靠家长,如何利用好这……国内三大运营商抢客户竞争激烈,新员工得肤白貌美会跳舞?流量卡、低价套餐、免月租等等等似乎对于现在的消费者来说,这些根本吸引不了他们的注意力。现如今运营商行业竞争可谓是进入白热化阶段,不仅需要各种针对互联网推出的低价套餐……小米MIX4或将下月发布,你想知道的都在这今天下午,知名数码博主爆料。小米内部代号K8的手机,也就是小米MIX4或将在下月发布,据悉该机也将会是小米的首款屏下镜头手机,从此小米步入真全面屏时代。下面让我们开一下关于MI……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网