玩酷网

太极编程语言别具一格的for循环,还是并行的

太极编程语言是一种主要面向以并行for循环+命令式编程为主体的编程语言,利用多核处理器并行编程、贴近处理器和高性能程序员

太极编程语言是一种主要面向以并行for循环+命令式编程为主体的编程语言,利用多核处理器并行编程、贴近处理器和高性能程序员编程习惯的命令式,融入到太极(taichi)语言后,统统成了一个并行for循环,简洁明了。所以,for循环简直就是灵魂的存在。

并行嘛,怎能简简单单学Python代码一样。少不了要for循环,这几乎是一个必不可少的环节了。虽然说太极语言潜入了python,使得编写样式也象是Python,不过还是有不同的,比如这次学习的for循环。太极编程语言的循环——更具体一点是for循环,算是别具一格,与众不同。它分为年中循环形式:区间for循环,结构for循环。

不管哪种,正如文章开头说的,太极编程面向以并行for循环,所以它其实是并行执行的循环,这个和平常我们熟悉的有点点不一样。

在官方教学展示一段for循环代码时称,类似for i in range(10)这样的循环,在Python中和在@ti.kernel中并不一样。比如Python代码中这样会按顺序输出从0到9,而在太极kernel中由于是并行,可能输出不是从0到9。不过机智客在Ubuntu系统上多次测试这段代码,结果就是,不管是Python中还是太极的kernel中其实都一样,于是就不懂了。

再分开聊两种循环形式,其中区间for循环和我们熟悉的诸如Python的for循环没什么区别。你循环套循环,也都可以,可以按照Python的写法编程。而结构for循环则很不同。

按照官方的说法,它是Taichi稀疏计算(Sparse computation (WIP))的关键。它只会遍历稀疏张量中的活跃元素。对于稠密张量而言,所有元素都是活跃元素。在遍历张量元素的时候很有用。就类似于我们在做深度学习的时候处理张量。

不过结构for循环只能用于内核的最外层作用域,同样是作用域的循环并行执行,而这个并行循环并不支持break语句。上面这个似乎很抽象是吧。其实机智客看文档的理解就是,for循环是函数下的开头语句,你不能用判断或者别的语句放在循环代码之前,这个作用整个外层作用域的for循环,不接受直接break,除非你又嵌套了其他for循环,才能在其他循环里使用break。看官方文档的说明,这两种for循环的写法,反倒是没有形式上的不同。所以乍一看,容易让人犯迷糊,也没什么。

评论列表

用户10xxx36
用户10xxx36 4
2021-12-10 10:22
def paint 改成 函数 运算名
用户38xxx54
用户38xxx54 4
2021-12-12 22:48
别在侮辱太极了。太极只能对应汉子而不是拉丁字母。
zxc111111
zxc111111 3
2021-12-10 18:03
猜测像素的循环应该会给GPU来做并行计算,可能是解释器或者编译器自动处理的。
猪猪很受伤
猪猪很受伤 3
2021-12-14 09:37
我嵌入式工作十年,C语言,C++,java,python我都会,最后学的python,我只用了两天就学会了,跟闹着玩一样的简单,库强大方便,做视觉验证时真的很快速方便,但是效率和运行速度真跟不上,嵌入式项目里,python不是好选项,但确实好助手

Ծ‸Ծ 回复 12-22 14:27
高级开发语言只要学通一种再学其它应该不难,主要东西基本上就是那七个语句,最后只是编程思想与书写格式不同,再加上提供的包(库或函数)、运算符等细微差别,学的时候多注意一下应该能很快上手的

沙漠死神内瑟斯 回复 12-20 20:46
第一次python是用记事本写的,结果他区分tab和空格,人在那儿郁闷一整天都没想明白问题出在哪儿

机智客 回复 12-15 12:32
Python适合快速验证实现一些应用东西。多面手好助手,但未必是强悍的好语言

神经科主任
神经科主任 3
2021-12-23 11:40
c/c++ yyds,其他都是垃圾![睡觉]

机智客 回复 01-04 09:05
学精C/C++,无敌

用户10xxx36
用户10xxx36
2021-12-10 10:20
比如print改成输出
用户10xxx36
用户10xxx36
2021-12-10 10:20
看不懂能开发那些中文函数名方法名的编程语言吗?吗

该评论内容被举报过多已屏蔽 回复 12-17 23:08
找几个懂方言的程序员就可以了啊,用方言开发软件!!

用户10xxx36 回复 12-16 06:11
这函数名起,avi转mp4就行了然后备注一下就知道是什么了。谁起管理员AVI转mp4