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

开发者安装指南

目标受众

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

IMPORTANT

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

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

简介

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

note

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

先决条件

CategoryPrerequisites
OSmacOS / Ubuntu / Arch Linux / Other Linux distributions
Python3.7/3.8/3.9/3.10 We recommend installing Python from Miniforge conda if you are on a MacBook with M1 chip.
Clang++8 Clang++ <12
LLVM10.0.0 (Taichi customized version)
Command line tools for XcodeFor macOS users only: xcode-select --install

安装 Clang

此 Clang 编译器用于编译 Taichi 设备运行时。 不强制将之用于 C++ 编译器。
  1. 下载 适用于 Ubuntu 18.04 的 Clang + LLVM 10.0.0 预编译二进制文件

  2. 更新环境变量 TAIICHI_CMAKE_ARGSPATH

    export TAICHI_CMAKE_ARGS="-DCMAKE_CXX_COMPILER=<PATH_TO_LLVM_FOLDER>/bin/clang++ $TAICHI_CMAKE_ARGS"

    export PATH=<PATH_TO_LLVM_FOLDER>/bin:$PATH
    NOTE

    一些 Linux 发行版可能需要其他的安装包以编译 Taichi。 当从源代码编译时,请时刻关注 CMake 的输出。

:::

安装 LLVM

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

我们提供预编译的定制版 LLVM 二进制文件。 目前,Taichi 只支持 LLVM 10.0.0。

  1. 根据系统环境下载并安装定制版二进制文件:
  1. 配置环境变量
  1. 添加 LLVM 到 PATH 变量:

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

    source ~/.bashrc
从源代码编译 LLVM 10.0.0
如需从源代码编译 LLVM 10.0.0,请参照以下指示。
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.0/llvm-10.0.0.src.tar.xz

tar xvJf llvm-10.0.0.src.tar.xz

cd llvm-10.0.0.src

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 10.0.0
## 可选依赖的安装 [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 扩展或编译文件时才需要重新运行。 详见 开发模式

疑难排查与调试

无法在 macOS 打开 llvm-as

描述 获得一条错误提醒:llvm-as can’t be opened because Apple cannot check it for malicious software on macOS解决方法 一次性解决方案: System Preferences > Security & Privacy > General > Allow anyway

没有权限

描述 输入 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,描述问题细节。 我们随时为你提供帮助!