ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

RFC: [Title]

RFC: [Title] RFC: [Title]【免费下载链接】taichiProductive, portable, and performant GPU programming in Python.项目地址: https://gitcode.com/GitHub_Trending/ta/taichiAuthor(s): [Authors]Date: [yyyy-mm-dd]Relevant Issue: [Issue URL]- Title提案标题应能一句话概括设计主题真实示例可参考 RFC: AOT for All SNodes。 - Author(s)作者们。 - DateRFC 创建日期与文件名中的 yyyymmdd 保持一致。 - Relevant Issue关联的 GitHub Issue 链接用于追踪该 RFC 对应的工作项。按流程文档这一步通常在第 1 步开 Issue 或评审通过后补填。 ### TL;DRRequired必填 模板明确要求TL;DR 意为 *too long; didnt read*太长不看因此只放最核心的信息并保持简短。这是评审者和后续查阅者最先读到的内容应做到「30 秒内理解提案要做什么」。 ### BackgroundHighly recommended强烈建议 模板给出的撰写指导是如果读者能先理解问题域就能更好地理解你的提案。因此本节用来交代背景、现状与痛点——为什么要做这个改动、当前方案存在什么问题。以 [AOT for All SNodes RFC](https://link.gitcode.com/i/5be0c233c2e75a41d13f333aff602f50) 为例其 Background 列出了现有 Taichi 字段机制给部署侧带来的三大挑战 1. Taichi 字段当前以全局变量实现导致 kernel 非纯函数、依赖隐式信息AOT 保存 kernel 时还必须保存全部依赖的全局状态 2. AOT 模块中缺少 SNode 类型信息无法将字段作为参数传入 kernel 3. 字段数据由 Taichi 运行时创建管理用户无法自主管理内存资源。 ### GoalsRequired必填与 Non-Goals 模板要求目标必须非常具体针对问题定义明确本节将讨论/解决哪些方面并几乎总是以项目符号列表书写。为了帮助读者聚焦建议在下方额外增加 *Non-Goals*非目标小节划清本次提案**不做什么**。 [AOT for All SNodes RFC](https://link.gitcode.com/i/5be0c233c2e75a41d13f333aff602f50) 的目标节是很好的范例——它列出 5 条具体目标如「提供可将 SNode 与字段本地化的 API使 kernel 变为纯函数」「让 SNode 类型可序列化进 AOT」随后用 Non-Goals 明确「不扩展对 LLVM codegen 之外尤其是 SPIR-V稀疏 SNode 的支持」从而把讨论边界约束得清清楚楚。 ### Detailed DesignRequired必填——RFC 的主体 模板对此节的要求最为详尽 - 用足够细节解释具体设计 - 建议包含示例 API 代码片段、算法伪代码、系统流程图等素材 - 必须批判性思考同时讨论设计的**优点与缺点pros and cons** - 如适用将图片或其他资源文件放在 [res/](https://link.gitcode.com/i/274cdebfa407f7e3469e715e5831f7a7) 目录下 - 虽然本节通常占 RFC 最大篇幅但仍应力求简洁——「把想法讲清楚不要更多」。 [AOT for All SNodes RFC](https://link.gitcode.com/i/5be0c233c2e75a41d13f333aff602f50) 的 Detailed Design 展示了如何把一个大设计拆成多个聚焦子节A first attempt首个尝试及其为何行不通、A working designSNodeTreeBuilder 的最终设计、Defining shape、AoS vs SoA、Gradient and AutoDiff、Python AOT API、C AOT API、Backward Compatibility。每一节都配有可运行的 Python/C 代码片段例如核心设计 SNodeTreeBuilder python builder ti.SNodeTreeBuilder() builder.add_field(dtypeti.f32, namex) builder.add_field(dtypeti.i32, namey) builder.tree() .pointer(ti.ij, 4) .dense(ti.ij, 5) .place(x, y) # tree_t stands for tree type. tree_t builder.build()【免费下载链接】taichiProductive, portable, and performant GPU programming in Python.项目地址: https://gitcode.com/GitHub_Trending/ta/taichi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表