跳转至主要内容
Version: v1.3.0

开发者安装指南

目标受众

对编译器、计算机图形或高性能计算感兴趣, 并想要为 Taichi编程语言 贡献新功能或修复漏洞的开发者。

IMPORTANT

本安装指南适用于只想进行模拟或高性能数字计算的终端用户。 建议终端用户通过 pip install taichi 完成安装,无需从源代码编译 Taichi。

参阅 起步,了解终端用户如何快速设置 Taichi 的更多信息。

简介

本安装指南涵盖以下内容:

note

安装指导因操作系统(OS)而异。 在继续阅读前选择正确的操作系统或平台。

先决条件

类型先决条件
OSmacOS / Ubuntu / Arch Linux / 其它 Linux 发行版
Python3.7/3.8/3.9/3.10 如果你使用搭载 M1 芯片的 MacBook,我们建议从 Miniforge conda 安装 Python。
Clang++Clang++ >8
LLVM15.0.4 (Taichi customized version)
Command line tools for XcodeFor macOS users only: xcode-select --install

安装 Clang

Taichi supports building from source with any clang compiler greater than version 8.0. Install one from your favorite package tool for the operating system. For example, you can use apt on Ubuntu, brew on macOS, and so on.

安装 LLVM

安装预编译的定制版 LLVM 二进制文件

We provide pre-built, customized LLVM 15 binaries.

  1. 根据系统环境下载并安装定制版二进制文件:
  1. 配置环境变量
  1. Set LLVM_DIR environment variable:

    echo "export LLVM_DIR=<PATH_TO_LLVM_FOLDER>" >>  ~/.bashrc
  2. 更新会话剩余部分的路径:

    source ~/.bashrc
Build LLVM 15.0.0 from source
We provide instructions here if you need to build LLVM 15.0.0 from source.
wget https://github.com/llvm/llvm-project/archive/refs/tags/llvmorg-15.0.5.tar.gz

tar zxvf llvmorg-15.0.5.tar.gz

cd llvm-project-llvmorg-15.0.5/llvm

mkdir build

cd build

cmake .. -DLLVM_ENABLE_RTTI:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86;NVPTX" -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_TERMINFO=OFF

# If you are building on Apple M1, use -DLLVM_TARGETS_TO_BUILD="AArch64".

# If you are building on NVIDIA Jetson TX2, use -DLLVM_TARGETS_TO_BUILD="ARM;NVPTX"

# If you are building for a PyPI release, add -DLLVM_ENABLE_Z3_SOLVER=OFF to reduce the library dependency.

make -j 8

sudo make install

# Check your LLVM installation

llvm-config --version # You should get 15.0.5
## 可选依赖的安装 [CUDA](https://en.wikipedia.org/wiki/CUDA) 是 NVIDIA 为高性能计算推出的。 Taichi 实现了一个基于 CUDA10.0.0+ 的后端。 Vulkan 是下一代的跨平台 API,是 3D 图形和计算的一套开放标准。 Taichi 从 v0.8.0 开始支持 Vulkan 后端。 本节介绍如何安装这两个可选依赖。
安装 CUDA
如果你使用支持 CUDA 的 Nvidia GPU,请继续阅读。 需注意 CUDA 版本应在 10.0 以上。 安装 CUDA:
  1. 前往 官方网站 下载安装程序。

  2. 选择 deb(本地) 作为 安装程序类型

  3. 检查 CUDA 是否正确安装:

    nvidia-smi
安装 Vulkan

必须安装 Vulkan SDK 才能调试 Taichi 的 Vulkan 后端。 要继续安装:

  1. 前往 Vulkan SDK 下载页面,根据所用操作系统,遵循相应指示。

  2. 检查环境变量 VULKAN_SDKPATHLD_LIBRARY_PATHVK_LAYER_PATH 是否已更新。

    Ubuntu 的 SDK 提供 setup-env.sh 用于更新这些变量。

  3. 请确保你正确安装了 GPU 供应商提供的 Vulkan 驱动程序。

    对于 Ubuntu,检查 /etc/vulkan/icd.d//usr/share/vulkan/icd.d/ 中是否有一个名称与 GPU 供应商一致的 JSON 文件。

  4. 检查 SDK 是否已正确安装:vulkaninfo

  5. 如果 SDK 已正确安装,使用值 -DTI_WITH_VULKAN:BOOL=ON 添加一个环境变量 TAICHI_CMAKE_ARGS,以激活 Vulkan 后端:(否则在从源代码编译的情况下,默认不使用 Vulkan。):

export TAICHI_CMAKE_ARGS="$TAICHI_CMAKE_ARGS -DTI_WITH_VULKAN:BOOL=ON"
## 从源代码编译 Taichi
  1. 递归克隆 Taichi 仓库,并编译[^1]:
    git clone --recursive https://github.com/taichi-dev/taichi

    cd taichi

    python3 -m pip install --user -r requirements_dev.txt

    # export CXX=/path/to/clang++ # Uncomment if clang++ is not default compiler of the system. Note that clang is not acceptable due to requirements of some submodules.

    # export DEBUG=1 #Uncomment it if you wish to keep debug information.

    python3 setup.py develop --user
  2. 尝试运行 examples/ 文件夹中的一些演示,以检查 Taichi 是否已正确安装。 For example:

    python3 python/taichi/examples/simulation/mpm128.py
note

1Although the two commands work similarly, python setup.py develop is recommended for you as a developer and python setup.py installmore for end users. 区别在于:

  • develop 命令实际没有安装任何东西,只是象征性地把源代码链接到部署目录。
  • install 命令则深复制源代码,所以终端用户每次修改源代码时都需要重新运行命令。

develop 命令更好地服务于开发者的需求,因为对 Python 文件的编辑能立即生效,无需重新运行命令。 只有在修改了项目的 C 扩展或编译文件时才需要重新运行。 详见 开发模式

疑难排查与调试

没有权限

描述 输入 python3 setup.py developpython3 setup.py install 后提醒 permission denied根本原因 在没有写入权限的情况下试图在 Python 环境下安装软件包。 解决方法

  1. python3 setup.py develop --userpython3 setup.py install --user
  2. 安装 Conda 并在 Conda 环境下使用 Python。

make 编译失败

描述 make 编译失败并报告 fatal error: 'spdlog/XXX.h' file not found根本原因 在克隆 Taichi 仓库时没有使用 --recursive 标记。 解决方法 运行 git submodule update --init --recursive --depth=1

which python 仍然返回系统的 Python 位置

描述 Conda 安装完成后,which python 仍返回系统的 Python 位置。 解决方法 运行以下命令来激活 Conda:

source <PATH_TO_CONDA>/bin/activate

conda init

常见问题

我如何重新从头编译 Taichi?

  1. 清理之前编译时留下的缓存:

    python3 setup.py clean
  2. 从 Python 环境卸载 Taichi 安装包:

  • 如果你是通过 python setup.py develop 编译 Taichi 的,使用 python setup.py develop --uninstall 卸载。
  • 如果你是通过 python setup.py install 编译 Taichi 的,使用 pip uninstall taichi 卸载。

如果我的 macOS 上没有 wget 怎么办?

  1. 安装 Homebrew

  2. 使用 Homebrew 安装 wget

    brew install wget

仍有问题?

  • 参阅 安装疑难解答,其中收录了终端用户安装时也可能遇到的问题。

  • 如果本文没能解答你遇到的问题,欢迎在 Github 创建 issue,描述问题细节。 我们随时为你提供帮助!