佛性SEO

 找回密码
立即注册
查看: 93|回复: 0

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

[复制链接]

488

主题

488

帖子

407

积分

积分
407
发表于 2023-1-8 23:18:48 | 显示全部楼层 |阅读模式
  太极编程语言是一种主要面向以并行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。taichi看官方文档的说明,这两种for循环的写法,反倒是没有形式上的不同。所以乍一看,容易让人犯迷糊,也没什么。taichi https://taichi-lang.cn/

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

  • 外链吧 | 雨住水巷 | 五金修配网 | 免费优化 | 全能百科 | 万能社区 | 链接购买
  • 在线咨询

  • 外链吧正规seo交流2群

    QQ|手机版|小黑屋|佛性SEO |网站地图|网站地图

    GMT+8, 2024-11-21 02:37 , Processed in 0.095749 second(s), 24 queries .

    快速回复 返回顶部 返回列表