收藏文章 楼主
太极(taichi)图形编程语言的数据类型和作用域
版块:电子商务   类型:普通   作者:wjunxi   查看:126   回复:0   获赞:0   时间:2023-05-14 23:42:43




          之前我们介绍太极语言的ti.kernel内核的时候,提到它支持的参数类型,其中举例所i32和f32这两种,这是太极编程语言中的数据类型。机智客觉得在编程语言中,数据类型广泛用于函数和方法的参数中,比如在kernel中,比如在ti.field方法中,所以是基础,重要性毋庸置疑。


  和其他编程语言类似,太极目前的数据类型也有几种:有符号整数类型,无符号整数类型,浮点类型。太极不同的数据都是由数据类型和精度组成的。其中,Signed integers包含ti.i8,ti.i16,ti.i32,ti.i64。Unsigned integers类型则用u为前缀,比如ti.u8,ti.u16等。而浮点则有两种,ti.f32和ti.f64。机智客在以前的文章里提到的i32和f32,其实是太极语言里用得最普遍的。当然和其他编程语言不太一样的也有,太极语言的数据类型并不多,布尔类型则是由ti.i32表示。

  默认的数据类型精度都是32位。需要说明的是,CPU和CUDA后端支持所有的数据类型,而其他则由于后端API的约束,要参考相应后端的API才能确定是否缺少某些数据类型支持。

  上面是太极语言的数据类型,可用于函数里的参数。太极语言规定只能是标量,返回也是。如果函数有返回值,则要指定返回数据类型。而且返回值也只能是一个标量(不能是两个以上),而不能是矢量或矩阵,哪怕Python中的元组也不行。所以参数可以有多个标量,而返回只能是一个标量。比如这段来源于英文文档中的代码片段。

   ti.kernel

  def my_kernel()->ti.f32:

  return 233.33

  我们以前介绍过,太极语言的初始化,说过,初始化,也可以指定数据类型。这里说下,如果我们要设置初始化的数据类型,可以这样ti.init(default_ip=ti.i64,default_fp=ti.f32)。当然了,数据类型这块,还有很多其他细节知识,比如数据类型转化,矢量和矩阵的知识等。我们以后遇到再学习。

  而关于太极语言的作用域,相信学习了上文或者以前文章的朋友,都了解了。taichi其实就是 ti.kernel或 ti.func装饰的代码区域内。ti.kernel里的是太极内核,ti.func里的是太极函数。可以调用ti.func里的函数,也可以嵌套调用函数,然而不支持递归函数。外部就是普通Python代码了,不同代码不同处理,各找各妈,各归各管。如果用CUDA做类比的话,Taichi作用域等于device side。taichi https://taichi-lang.cn/

 我 在下方展示

 
回复列表
默认   热门   正序   倒序

回复:太极(taichi)图形编程语言的数据类型和作用域

暂无用户组
退出
等级:0级
学途币:
游客:

平台声明:

为打造一个高质量、高收录的外链平台,站长将针对所有普通用户投稿的内容进行审核,针对文章原创度、文章格式是否杂乱、外链数量是否泛滥等多个方面对投稿内容进行审核测评,只有满足条件的内容才会通过审核。

平台将持续严厉打击发布虚假不实信息内容,一经发现立即删除,且将对发布虚假内容的账号进行相应的处罚。

当用户等级达到2级及以上等级之后,可联系站长【QQ:724413399】免费升级至VIP会员组,将免费获得发贴免审核权限,以后发的帖子都将跳过审核直接发布成功!

Powered by HadSky 7.7.16

©2015 - 2024 seo学途论坛网

XML( 1234567891011 )

您的IP:18.118.1.232,2024-04-18 09:27:50,Processed in 0.09158 second(s).

网站备案号:黔ICP备19009860号-2

seo学途论坛网是一个可以免费发外链的论坛,大家可以免费发布含有纯文本外链、锚文本外链的精美软文内容,也可以在论坛中与大家进行交流、讨论更多话题。
头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息
免责声明

1、本站资源,均来自网络,版权归原作者,所有资源和文章仅限用于学习和参考 。

2、不得用于商业或非法用途,否则,一切责任由该用户承担 !

3、本站内容如不慎侵犯了你的权益,敬请谅解,内容素材由网友自发上传并非本站意愿,您可参照文章侵权处理流程联系我方解决!


侵权删除请致信 E-Mail:724413399@qq.com