- NOTICE 下列所有命令中用 ` 包围的内容需替换为实际值。
ssh root@zibo.saas.iluvatar.com.cn -p `PORT`
每个用户有自己的端口和密码,通过另外的渠道发放。
默认将提供 root 账户,但一切操作不推荐在 root 上进行,强烈建议创建一个新用户。 可按以下步骤创建用户:
创建用户方式不唯一,以下步骤仅供参考。
-
起一个用户名
export NEW_USER=`new-user-name`
-
创建用户
useradd -m $NEW_USER
-
设置密码
passwd $NEW_USER
并按照提示输入密码两次。
-
通过用户组赋予权限
usermod -aG sudo $NEW_USER apt-get update apt-get install sudo
-
修改默认 shell
chsh -s /usr/bin/bash $NEW_USER
将默认 shell 改为 bash,再登入新用户时可自动启动 bash。
-
添加必要环境变量
下列环境变量对于所有开发流程都是必备的,建议登入新用户并直接设置到
~/.bashrc
。export COREX_HOME=/usr/local/corex export PATH=$PATH:$COREX_HOME/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$COREX_HOME/lib
ixsmi
功能对应英伟达 nvidia-smi
,使用
ixsmi -h
查看帮助信息,使用
ixsmi -l 1
持续监测。
工具链位于 /usr/local/corex
,英伟达 nvcc
对应 bin/clang++
,所有必要库在 lib
中。
clang++ -lcudart -L$COREX_HOME/lib `src`.cu -o `program`
作为测试,可以尝试编译环境自带的 cuda 示例:
clang++ -lcudart -L$COREX_HOME/lib $COREX_HOME/examples/cuda/saxpy.cu -o saxpy
./saxpy
将输出:
Max error: 0.000000
SUCCESS
项目 | 英伟达 GPU | 天数智芯天垓 |
---|---|---|
预定义宏 | __NVCC__ |
__ILUVATAR__ |
双精度支持 | 全面支持 | 支持有限,建议不使用 |
线程束 WARP_SIZE | 32 | 64 |
线程块最大规模 | 1024 | 4096 |
-
安装 xmake
-
创建项目
由于天数软件栈与英伟达的差异,配置项目时需要添加工具集定义和处理规则。
推荐直接拷贝 xmake-sample 文件夹内容作为项目模板。
重点在于 xmake.lua 文件的内容,其中已经定义好了天数工具链需要的工具集设定和项目配置,只需要添加到目标即可:
toolchain("iluvatar.toolchain")... rule("iluvatar.env")... target("iluvatar") set_kind("binary") -- 目标将编译为二进制可执行文件 add_files("src/*.cu") -- 目标使用的源文件是 src 目录下扩展名为 cu 的文件 add_links("cudart") -- 首选动态链接 cudart 以免链接 cudart_static set_toolchains("iluvatar.toolchain") -- 设置工具链 add_rules("iluvatar.env") -- 添加自定义处理规则 set_values("cuda.rdc", false) -- 关闭 -fcuda-rdc 以免生成依赖 cudadevrt 的代码
-
编译执行
xmake xmake run
-
安装 Rust 工具链
如果
curl
不存在,可以使用 apt 安装:sudo apt-get install curl
安装:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
-
基于 cuda-driver 开发
git clone https://github.com/YdrMaster/cuda-driver cd cuda-driver cargo test -- --test-threads=1
目前只能单线程测试,多线程下测试无法通过。
服务器上已经为 root 安装好 PyTorch,新用户需要导入以下环境变量:
export PYTHONPATH=/usr/local/corex/lib64/python3/dist-packages
操作完成之后可以通过可以通过 pip show torch
查看是否正常显示。