pip install taichi # 安装太极编程语言
ti gallery # 启动演示画廊
什么是太极编程语言?
太极是一种开源的、命令式的、并行编程语言,专为高性能数值计算而设计。它嵌入在Python中,使用即时编译(JIT)框架(如LLVM)将计算密集型的Python代码编译为原生的GPU或CPU指令。
该语言有广泛的应用,涵盖实时物理模拟、数值计算、增强现实、人工智能、视觉和机器人技术、电影和游戏中的视觉效果、通用计算等多个领域。
为什么选择太极编程语言?
- 基于Python构建:太极编程语言与Python共享几乎相同的语法,让你能以最小的语言障碍编写算法。它还很好地集成到Python生态系统中,包括NumPy和PyTorch。
- 灵活性:太极编程语言提供了一套被称为SNode(/ˈsnoʊd/)的通用数据容器,这是一种用于组合分层、多维字段的有效机制。它可以涵盖数值模拟中的许多使用模式(例如空间稀疏计算)。
- 性能:通过
@ti.kernel
装饰器,太极编程语言的JIT编译器自动将你的Python函数编译成高效的GPU或CPU机器码,以实现并行执行。 - 可移植性:一次编写,随处运行。目前,太极编程语言支持大多数主流GPU API,如CUDA和Vulkan。
- ...还有更多功能!跨平台、基于Vulkan的3D可视化工具,可微分编程,量化计算(实验性)等。
入门
安装
前提条件
- 操作系统
- Windows
- Linux
- macOS
- Python: 3.6 ~ 3.10(仅64位)
- 计算后端
- x64/ARM CPU
- CUDA
- Vulkan
- OpenGL (4.3+)
- Apple Metal
- WebAssembly(实验性)
使用Python的包安装器pip来安装太极编程语言:
pip install --upgrade taichi
我们还提供每日构建版本。请注意,每日构建版本可能会崩溃,因为它们没有经过完全测试。我们不能保证它们的有效性,使用我们最新的、未经测试的功能需要你自担风险。每日构建版本可以从我们的自托管PyPI安装(使用自托管PyPI允许我们在更长的时间内提供更频繁的发布)
pip install -i https://pypi.taichi.graphics/simple/ taichi-nightly
运行你的"Hello, world!"
以下是你如何用太极编程语言编写一个2D分形:
# python/taichi/examples/simulation/fractal.py
import taichi as ti
ti.init(arch=ti.gpu)
n = 320
pixels = ti.field(dtype=float, shape=(n * 2, n))
@ti.func
def complex_sqr(z):
return ti.Vector([z[0]**2 - z[1]**2, z[1] * z[0] * 2])
@ti.kernel
def paint(t: float):
for i, j in pixels: # 对所有像素并行化
c = ti.Vector([-0.8, ti.cos(t) * 0.2])
z = ti.Vector([i / n - 1, j / n - 0.5]) * 2
iterations = 0
while z.norm() < 20 and iterations < 50:
z = complex_sqr(z) + c
iterations += 1
pixels[i, j] = 1 - iterations * 0.02
gui = ti.GUI("Julia Set", res=(n * 2, n))
for i in range(1000000):
paint(i * 0.03)
gui.set_image(pixels)
gui.show()
如果太极编程语言安装正确,你应该会看到下面的动画 🎉:
更多信息请参见入门指南。
从源码构建
如果你想尝试我们的实验性功能或为你自己的环境构建太极编程语言,请参阅开发者安装指南。
文档
社区活动
贡献
向所有杰出的贡献者致敬!太极语言通过开源蓬勃发展。本着这种精神,我们欢迎社区的各种贡献。如果您想参与,请先查看贡献指南。
贡献者头像随机排列。
许可证
太极语言在Apache许可证(版本2.0)条款下分发。
详情请参阅Apache许可证。
社区
有关活动或社区的更多信息,请参阅此页面
加入我们的讨论
报告问题
- 如果您发现技术或文档问题,请在GitHub问题上提交问题
- 如果您发现任何安全问题,请直接发送邮件至security@taichi.graphics。
联系我们
参考
演示
AOT部署
讲座和演讲
- SIGGRAPH 2020太极基础课程:YouTube,Bilibili,幻灯片(pdf)。
- Chinagraph 2020用太极编写物理引擎:哔哩哔哩
- GAMES 201高级物理引擎实战指南2020:课件
- 太极图形课第一季:课件
- TaichiCon:太极开发者大会
- 更多即将推出...
引用
如果您在研究中使用太极语言,请引用相应的论文: