你的位置:m6米乐在线客服(中国)有限公司 > 关于我们 > 米乐m6下载链接 胡渊鸣:import一个“太极”库 让Python代码提速100倍!

米乐m6下载链接 胡渊鸣:import一个“太极”库 让Python代码提速100倍!

时间:2022-09-18 13:11 点击:190 次

米乐m6下载链接 胡渊鸣:import一个“太极”库 让Python代码提速100倍!

家喻户晓,Python的浅近和易读性是靠葬送性能为代价的——

尤其是在筹画密集的情况下,比如多重for轮回。

不外当今,大佬胡渊鸣说了:

只需import 一个叫做“Taichi”的库,就不错把代码速率进步100倍!

胡渊鸣:import一个“太极”库 让Python代码提速100倍!

不信?

来看三个例子。

筹画素数的个数,速率x120

第一个例子尽头尽头浅近,求扫数小于给定正整数N的素数。

门径谜底如下:

胡渊鸣:import一个“太极”库 让Python代码提速100倍!

咱们将上头的代码保存,运行。

当N为100万时,需要2.235s获取拆伙:

胡渊鸣:import一个“太极”库 让Python代码提速100倍!

当今,咱们脱手施魔法。

无须革新任何函数体,import“taichi”库,然后再加两个遮拦器:

胡渊鸣:import一个“太极”库 让Python代码提速100倍!

Bingo!雷同的拆伙惟有0.363s,快了快要6倍。

胡渊鸣:import一个“太极”库 让Python代码提速100倍!

淌若N=1000万,则惟有0.8s;要澄莹,不加它但是55s,一下子又快了70倍!

不啻如斯,咱们还不错在ti.init()中加个参数变为ti.init(arch=ti.gpu) ,让taich在GPU上进行筹画。

那么此时,筹画扫数小于1000万的素数就只耗时0.45s了,与原本的Python代码比拟速率就提高了120倍!

厉不好坏?

什么?你以为这个例子太浅近了,劝服力不够?咱们再来看一个略略复杂极少的。

动态策划,速率x500

动态策划无须多说,看成一种优化算法,通过动态存储中间筹画拆伙来减少筹画技艺。

咱们以经典课本《算法导论》中的经典动态策划案例“最长全球子序列问题(LCS)”为例。

比如关于序列a = [0, 1, 0, 2, 4, 3, 1, 2, 1]和序列b = [4, 0, 1, 4, 5, 3, 1, 2],它们的LCS等于:

LCS(a, b) = [0, 1, 4, 3, 1, 2]。

用动态策划的思绪筹画LCS,等于先求解序列a的前i个元素和序列b的前j个元素的最长全球子序列的长度,然后冉冉加多i或j的值,重叠历程,获取拆伙。

咱们用f[i, j]来指代这个子序列的长度,即LCS((prefix(a, i), prefix(b, j)。其中prefix(a, i) 暗示序列a的前i个元素,即a[0], a[1], …, a[i - 1],获取如下递归干系:

胡渊鸣:import一个“太极”库 让Python代码提速100倍!

完整代码如下:

胡渊鸣:import一个“太极”库 让Python代码提速100倍!

当今,咱们用Taichi来加快:

胡渊鸣:import一个“太极”库 让Python代码提速100倍!

拆伙如下:

胡渊鸣:import一个“太极”库 让Python代码提速100倍!

胡渊鸣电脑上的面貌最快做到了0.9秒内完成,而换成用NumPy来竣事,关于我们则需要476秒,互异达到了超500倍!

终末,咱们再来一个不一样的例子。

响应 - 扩散方程,效用惊人

当然界中,总有一些动物身上长着一些看起来无序但实则并非美满就地的斑纹。

胡渊鸣:import一个“太极”库 让Python代码提速100倍!

图灵机的发明者艾伦·图灵是第一个建议模子来形容这种阵势的人。

在该模子中,两种化学物资(U和V)来模拟图案的生成。这两者之间的干系肖似于猎物和捕食者,它们自行移动并有交互:

率先,U和V就地分散在一个域上;

在每个技艺步,它们渐渐扩散到附进空间;

当U和V相逢时,一部分U被V吞吃。因此,V的浓度加多;

为了幸免U被V断根,咱们在每个技艺步添加一定百分比 (f) 的U并删除一定百分比 (k) 的V。

上头这个历程被概述为“响应-扩散方程”:

《渡神纪:芬尼斯崛起》是一款基于希腊神话的开放世界动作冒险游戏,由《刺客信条:奥德赛》原班人马制作,你将扮演一位被人们遗忘的英雄,踏上犹如神话故事般拯救希腊众神的旅程。现已登陆PS5/XSX/XSS/PS4/XB1/NS/PC/Stadia平台。

胡渊鸣:import一个“太极”库 让Python代码提速100倍!

其中有四个要害参数:Du(U的扩散速率),Dv(V的扩散速率),f(feed的缩写,铁心U的加入)和k(kill的缩写,铁心V的去除)。

淌若Taichi中竣事这个方程,起原创建网格来暗示域,用vec2暗示每个网格中U, V的浓度值。

拉普拉斯算子数值的筹画需要造访相邻网格。为了幸免在团结轮回中更新和读取数据,咱们应该创建两个时局相通的网格W x H×2。

每次从一个网格造访数据时,咱们将更新的数据写入另一个网格,然后切换下一个网格。那么数据结构瞎想等于这么:

胡渊鸣:import一个“太极”库 让Python代码提速100倍!

一脱手,咱们将U在网格中的浓度树立为 1,并将V摈弃在50个就地继承的位置:

胡渊鸣:import一个“太极”库 让Python代码提速100倍!

那么骨子筹画就不错用不到10行代码完成:

@ti.kerneldef compute(phase: int):    for i, j in ti.ndrange(W, H):        cen = uv[phase, i, j]        lapl = uv[phase, i + 1, j] + uv[phase, i, j + 1] + uv[phase, i - 1, j] + uv[phase, i, j - 1] - 4.0 * cen        du = Du * lapl[0] - cen[0] * cen[1] * cen[1] + feed * (1 - cen[0])        dv = Dv * lapl[1] + cen[0] * cen[1] * cen[1] - (feed + kill) * cen[1]        val = cen + 0.5 * tm.vec2(du, dv)        uv[1 - phase, i, j] = val在这里,咱们使用整数相位(0或1)来铁心咱们从哪个网格读取数据。

终末一步等于凭据V的浓度对拆伙进行染色,就不错获取这么一个效用惊人的图案:

胡渊鸣:import一个“太极”库 让Python代码提速100倍!

敬爱的是,胡渊鸣先容,即使V的脱手浓度是就地树立的,但每次都不错获取相似的拆伙。

何况和只可达到30fps把握的Numba竣事比起来,Taichi竣事由于不错继承GPU看成后端,直率超越了 300fps。

pip install即可装配

看完上头三个例子,你这下信服了吧?

其实,Taichi等于一个镶嵌在Python中的DSL(动态剧本话语),它通过我方的编译器将被 @ti.kernel 遮拦的函数编译到各式硬件上,包括CPU和GPU,然后进行高性能筹画。

有了它,你无需再选藏C++/CUDA的性能。

正如其名,Taichi就出自太极图形胡渊鸣的团队,当今你只需要用pip install就能装配这个库,并与其他Python库进行交互,包括NumPy、Matplotlib和PyTorch等等。

诚然,Taichi用起来和这些库以偏激他加快方法有什么区分,胡渊鸣也给出了轮廓的优污点对比,感风趣的知交不错戳底下的纠合轮廓检察:

https://docs.taichi-lang.org/blog/accelerate-python-code-100x

胡渊鸣:import一个“太极”库 让Python代码提速100倍!

米乐m6平台官方版 三轴双刀数控岩板切割机

Alternate Text

米乐m6平台官方版 三轴双刀数控岩板切割机

三轴双刀数控岩板切割机,给与红外线对刀,微电脑截止,液压传动等时代,给与小锯片切割,适用于大理石,石英石,岩板的切割加工,由于切割速率快,精度高,输送便捷,切割刀头可9

查看更多

米乐m6下载链接 杭州亚运会倒计时一周年灯光秀献技:500架无人机起舞

Alternate Text

米乐m6下载链接 杭州亚运会倒计时一周年灯光秀献技:500架无人机起舞

本日音书,微博话题杭州亚运会倒计时一周年灯光秀冲上热搜榜。 第四步:激活成功后回到个人资料页面,会显示安装,如图所示: 从那时开始,游戏界的动物“仿生”又有了长足的进步。

查看更多

米乐m6下载链接 百度糯米死了,我很悲痛6块6的电影票

Alternate Text

米乐m6下载链接 百度糯米死了,我很悲痛6块6的电影票

“因公司业务通常,百度糯米 App 将罢手办事与运营。百度糯米 App 将从应用商店进行下架,瞻望将于 2022 年 12 月正经罢手磋磨办事。” 只用了短短 50 个字,12 年的百度糯米就这么和大家说了

查看更多

米乐m6下载链接 外媒: 华为照旧打响了“翻身仗”!

Alternate Text

米乐m6下载链接 外媒: 华为照旧打响了“翻身仗”!

点击留情,每天精彩不驱逐! 导读:外媒:华为照旧打响了“翻身仗”! 这些年来,华为公司在科技领域的发展是各人有目共睹的;在职正非的指挥下,华为公司不仅在挪动通信领域发展得很

查看更多
服务热线
官方网站:www.suffolk-construction.com
工作时间:周一至周六(09:00-18:00)
联系我们
QQ:232016855
邮箱:3da28e@qq.com
地址:北京关于我们国际企业中心2264号
关注公众号

Powered by m6米乐在线客服(中国)有限公司 RSS地图 HTML地图


m6米乐在线客服(中国)有限公司-米乐m6下载链接 胡渊鸣:import一个“太极”库 让Python代码提速100倍!

回到顶部