��澧��ㄧ讲
�ㄥ��涔���绫�瀛�涔���绋���浣�涔���锛�璇锋�ㄥ������涓��㈡�ラ�ゅ�����虹���澧���寤哄��婧���涓�杞斤�纭�淇�宸插��瑁�NPU椹卞�ㄣ���轰欢��CANN杞�浠讹�Ascend-cann-toolkit��Ascend-cann-ops锛�绛���
��澧�瀹�瑁�
��椤圭����渚�澶�绉���寤烘���剧��澧����瑰�锛�璇锋�������┿��
**璇存��**锛��������扮��缂�璇�����杩�琛�����涔�濡�涓�锛�璇锋�规��瀹������甸���┿��
- 缂�璇���锛���瀵逛�缂�璇���椤圭��涓�杩�琛����烘��锛�����瀹�瑁�CANN toolkit����
- 杩�琛���锛���瀵硅�琛���椤圭�����烘��锛�缂�璇�杩�琛���绾�杩�琛�锛�锛���瀹�瑁�椹卞�ㄤ��轰欢��CANN toolkit����CANN ops����
| 瀹�瑁��瑰� | 浣跨�ㄨ�存�� | 浣跨�ㄥ�烘�� |
|---|---|---|
| CANNLab | 涓�绔�寮�寮���骞冲�帮���渚��ㄧ嚎�存�ヨ�琛������剧��澧�锛��������ㄥ��瑁��� 褰�������渚����虹����锛�榛�璁ゅ��瑁����板������CANN���� |
���ㄤ�娌℃�����捐�惧���寮������� |
| Docker | Docker������涓�绉�楂����ㄧ讲�瑰�锛�宸查�����CANN����蹇�澶�渚�璧��� 褰���浠����ㄤ�Atlas A2绯诲��浜у��锛�OS浠�����Ubuntu��浣�绯荤���榛�璁ゅ��瑁����板������CANN���� |
���ㄦ�����捐�惧�锛���瑕�蹇�����寤虹��澧���寮������� |
| ���ㄥ��瑁� | ���ㄥ��瑁�CANN�����虹�渚�璧�锛��垫椿�ч���� | ���ㄦ�����捐�惧�锛��充�楠����ㄥ��瑁�CANN����浣�楠�����master�����藉����寮������� |
| Spack | ��绠$��宸ュ�凤����ㄥ��瑁�渚�璧�骞剁�$��缂�璇���椤癸�����涓���寮���������瀹�涔���缃��� **���ㄥ��瑁�CANN����缂�璇�渚�璧�**锛�杩�琛�����瀹夸富�烘����瀹�瑁�椹卞�ㄤ��轰欢锛��� |
���ㄦ�����捐�惧�锛���瑕����ㄥ��绠$��CANN��������缂�璇���椤瑰��渚�璧�锛�����澶���缃�涓�瀹��跺����寤虹��寮�����锛�灏ゅ�堕����HPC��澧�锛��� |
�瑰�1锛�CANNLab
瀵逛������捐�惧���寮�����锛����存�ヤ娇��CANNLab浜�寮�����澧�锛��斥��涓�绔�寮�寮���骞冲����锛�璇ュ钩�颁负�ㄦ��渚��ㄧ嚎���存�ヨ�琛������剧��澧�锛���澧�涓�宸插��瑁�蹇�澶���椹卞�ㄥ�轰欢��杞�浠跺����渚�璧�锛��������ㄥ��瑁���
**璇存��**锛���澧�榛�璁ゅ��瑁����板������CANN��锛�婧���涓�杞芥�舵敞��涓�杞�浠堕��濂����村��充�寮���骞冲�扮��浠�缁�璇峰����CANNLab��瀵���
-
杩��ュ�婧�椤圭��锛����烩��CANNLab������锛�浣跨�ㄥ凡璁よ��杩�����涓轰�璐��风�诲����ユ��娉ㄥ����璁よ��锛�璇锋�规��椤甸�㈡��绀鸿�琛�娉ㄥ����璁よ����
-
�规��椤甸�㈡��绀哄��寤�NPU��澧�骞堕��缃�瑙��硷����ㄤ�寮�����澧���锛����烩��
杩��� > WebIDE��杩��ヤ�绔�寮�寮���骞冲�般��褰���寮�婧�椤圭��璧�婧�榛�璁ゅ��
/mnt/workspace/gitCode/${gitCode_id}��褰�涓�锛�${gitCode_id}琛ㄧず寮�����涓�浜�gitCode璐��枫��
�瑰�2锛�Docker�ㄧ讲
瀵逛������捐�惧���寮�����锛��ユ�ㄦ�冲揩����寤烘���剧��澧�锛���浣跨��Docker�����ㄧ讲��
**璇存��**锛�
- ������浠舵��杈�澶э�涓�杞介��瑕�涓�瀹��堕�达�璇锋�ㄨ��蹇�绛�寰����充�docker�戒护����椤逛�缁�����杩�
docker --help�ヨ����- ��澧�榛�璁ゅ��瑁����板������CANN��锛�婧���涓�杞芥�舵敞��涓�杞�浠堕��濂���
-
瀹�瑁�椹卞�ㄤ��轰欢锛�杩�琛���渚�璧�锛�
椹卞�ㄤ��轰欢��杩�琛���渚�璧�锛��ヤ�缂�璇�绠�瀛�锛���浠ヤ�瀹�瑁���浣跨��
npu-smi info妫��ユ������NPU�稿�充俊��锛��ユ病��锛�璇峰������CANN蹇���瀹�瑁���瀹���椹卞�ㄤ��轰欢瀹�瑁��� -
涓�杞介����
-
姝ラ��1锛�浠�root�ㄦ�风�诲�瀹夸富�恒��纭�淇�瀹夸富�哄凡瀹�瑁�Docker寮���锛�����1.11.2��浠ヤ�锛�锛�浣跨��
docker --version妫���Docker����锛��ユ病��锛�璇峰����Docker瀹��瑰��瑁������� -
姝ラ��2锛�浠����鹃����浠�搴�����宸查�����CANN杞�浠跺����
ops-math����渚�璧���������绀轰�濡�涓�锛�璇疯��琛��挎��CANN�����枫������绯诲������浣�绯荤���python����淇℃����
# 浠�cann:9.1.0-beta.1����涓轰� docker pull swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.1.0-beta.1-910b-openeuler24.03-py3.12-devel
-
-
杩�琛�Docker
����������锛���瑕�浠ョ�瑰�����板���ㄥ�瑰��锛�浠ヤ究瀹瑰�ㄥ���借�块��瀹夸富�����捐�惧���
docker run --name cann_container --device /dev/davinci0 --device /dev/davinci_manager --device /dev/devmm_svm --device /dev/hisi_hdc -v /usr/local/dcmi:/usr/local/dcmi -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info -v /etc/ascend_install.info:/etc/ascend_install.info -it swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.1.0-beta.1-910b-openeuler24.03-py3.12-devel bash���� 璇存�� 娉ㄦ��浜�椤� --name cann_container涓哄�瑰�ㄦ��瀹���绉帮�渚夸�绠$���� ����瀹�涔��� --device /dev/davinci0�稿�锛�灏�瀹夸富�虹��NPU璁惧��℃��灏��板�瑰�ㄥ��锛�����瀹���灏�澶�寮�NPU璁惧��°�� 蹇�椤绘�规��瀹������佃��达� davinci0瀵瑰�绯荤�涓���绗�0寮�NPU�°��璇峰���ㄥ�夸富�烘�ц�npu-smi info�戒护锛��规��杈��烘�剧ず��璁惧��凤�濡�NPU 0,NPU 1锛��ヤ慨�规�ょ��枫��--device /dev/davinci_manager��灏�NPU璁惧�绠$���ュ�c�� - --device /dev/devmm_svm��灏�璁惧���瀛�绠$���ュ�c�� - --device /dev/hisi_hdc��灏�涓绘�轰�璁惧��寸����淇℃�ュ�c�� - -v /usr/local/dcmi:/usr/local/dcmi��杞借�惧�瀹瑰�ㄧ�$���ュ�o�DCMI锛��稿�冲伐�峰��搴��� - -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi��杞� npu-smi宸ュ�枫��浣垮�瑰�ㄥ����浠ョ�存�ヨ�琛�姝ゅ�戒护�ユ�ヨ��NPU�舵�����ц�戒俊���� -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/�抽����杞斤�灏�瀹夸富�虹��NPU椹卞�ㄥ���灏��板�瑰�ㄥ���� - -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info��杞介┍�ㄧ����淇℃����浠躲�� - -v /etc/ascend_install.info:/etc/ascend_install.info��杞�CANN杞�浠跺��瑁�淇℃����浠躲�� - -it-i锛�浜や�寮�锛���-t锛�����浼�缁�绔�锛���缁������般��- swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.1.0-beta.1-910b-openeuler24.03-py3.12-devel��瀹�瑕�杩�琛���Docker������ 璇风‘淇�姝ら����������绛撅�tag锛�涓�浣���杩� docker pull����������瀹��ㄤ��淬��bash瀹瑰�ㄥ���ㄥ��绔��虫�ц����戒护�� -
�瑰�3锛����ㄥ��瑁�
瀵逛������捐�惧���寮�����锛��ユ�ㄦ�虫���ㄦ��寤烘���剧��澧�锛�璇峰����涓�杩版�ラ�ゃ��
瀹�瑁�杞�浠�
-
�烘��1锛�浣�楠�master�����藉�����轰�master����杩�琛�寮���
-
瀹�瑁�椹卞�ㄤ��轰欢锛�杩�琛���渚�璧�锛�
椹卞�ㄤ��轰欢��杩�琛���渚�璧�锛��ヤ�缂�璇�绠�瀛�锛���浠ヤ�瀹�瑁���浣跨��
npu-smi info妫��ユ������NPU�稿�充俊��锛��ユ病��锛�璇峰������CANN蹇���瀹�瑁���瀹���椹卞�ㄤ��轰欢瀹�瑁��� -
瀹�瑁�CANN��
璇峰����涓�杞介�炬��锛����╂���版�堕�寸����锛�骞舵�规��浜у�����峰����澧��舵��涓�杞藉�瑰�����瀹�瑁��戒护濡�涓�锛��村���瀵煎������CANN蹇���瀹�瑁�����
-
瀹�瑁�CANN toolkit��
bash ./Ascend-cann-toolkit_${cann_version}_linux-${arch}.run --install --install-path=${install_path} -
瀹�瑁�CANN ops��锛�杩�琛���渚�璧�锛�
ops����杩�琛���渚�璧�锛��ヤ�缂�璇�绠�瀛�锛���涓�瀹�瑁�姝ゅ����
bash ./Ascend-cann-${soc_name}-ops_${cann_version}_linux-${arch}.run --install --install-path=${install_path}
������涔�璇存��锛�
- ${cann_version}锛�琛ㄧずCANN�������枫��
- ${arch}锛�琛ㄧずCPU�舵��锛�����杩�
uname -m�ヨ��锛�渚�濡�aarch64��x86_64�� - ${soc_name}锛�琛ㄧずNPU���峰��绉般��
- ${install_path}锛�琛ㄧず��瀹�瀹�瑁�璺�寰�锛�ops����涓�toolkit��瀹�瑁��ㄧ�稿��璺�寰�锛�root�ㄦ�烽�璁ゅ��瑁���
/usr/local/Ascend��褰���
-
-
-
�烘��2锛�浣�楠�宸插��甯������藉�����轰�宸插��甯�����杩�琛�寮���
璇疯�块��CANN瀹�缃�涓�杞戒腑蹇�锛����╁��甯�����锛�浠�����CANN 8.5.0����缁�����锛�锛�骞舵�规��浜у�����峰����澧��舵��涓�杞藉�瑰���锛���������缃�椤垫��渚����戒护瀹���瀹�瑁���
瀹�瑁��虹�渚�璧�
��椤圭���虹�渚�璧�濡�涓�锛�娉ㄦ��婊¤冻�����疯�姹���
- python >= 3.7.0锛�寤鸿������ <= 3.10锛�
- gcc/g++ >= 7.3.0
- cmake >= 3.16.0
- pigz锛�����锛�瀹�瑁���������������搴�锛�寤鸿������ >= 2.4锛�
- dos2unix
- make
- patch
- googletest锛�浠��ц�UT�朵�璧�锛�寤鸿������ release-1.11.0锛�
涓�杩颁�璧�����杩�椤圭������涓���瀹�瑁�锛���浣�姝ラ�ゅ�涓�锛�
-
涓�杞芥�����
涓�杞戒�CANN������濂�������婧���锛��戒护濡�涓�锛�${tag_version}�挎��涓哄������绛惧����
git clone -b ${tag_version} https://gitcode.com/cann/ops-math.git -
瀹�瑁�渚�璧���
����杩�椤圭���圭��褰�install_deps.sh涓���瀹�瑁�涓�杩颁�璧�锛��戒护濡�涓�锛��ラ���颁�����绯荤�锛�璇峰����璇ユ��浠惰��琛�������
bash install_deps.sh瀹�瑁�瀹���锛�����杩�椤圭���圭��褰�requirements.txt缁х画瀹�瑁�python涓��瑰�渚�璧�锛��戒护濡�涓���
pip3 install -r requirements.txt
�瑰�4锛�Spack瀹�瑁�
���ㄤ�甯���蹇���瀹�瑁�渚�璧�骞剁�垫椿��缃�缂�璇���椤圭��寮�������Spack浼����ㄥ��瑁�CANN杞�浠跺��锛�toolkit��ops锛���缂�璇�渚�璧�锛�杩�琛���浠���瀹夸富�烘����瀹�瑁�椹卞�ㄤ��轰欢锛��ヤ�缂�璇�绠�瀛���涓�瀹�瑁�锛���
��缃�渚�璧�
灏界��Spack浼����ㄥ��瑁��稿�充�璧�锛�浣���Spack渚��ч��瑕�涓�浜���缃�渚�璧��ユ������韬���杩�琛�锛�
- python >= 3.7.0锛�寤鸿������ <= 3.10锛�
- gcc/g++ >= 7.3.0
- patch ����琛����ㄥ��瑁�锛�涔�������瀹�瑁��虹�渚�璧�
蹇�����寤�
杩��ラ」���圭��褰�锛�杩�琛�涓���寮�����锛�
cd ${local_repo_path}/ops-math # ${local_repo_path}涓烘���颁唬��浠���璺�寰�
source spack/prepare_cann_env.sh
spack install --add cann-ops@${cann_version} soc=${soc_name} # ops����杩�琛���渚�璧�锛��ヤ�缂�璇�绠�瀛�锛���涓�瀹�瑁�姝ゅ����
prepare_cann_env.sh浼����ㄥ��瑁�Spack����寤烘��寤虹��澧��������稿�充�璧�骞跺������寤猴���寤哄�烘��榛�璁や负缂�璇�ops-math��锛�濡����朵���寤哄�烘��璇峰����compile.md
浜х�╀�缃�
�ョ��浜х�╀�缃�锛�spack location -i cann-ops-math
姝ゅ�浜х�╂��run��锛�瀹���涓�run��宸茶���ㄥ��瑁���$ASCEND_HOME_PATH涓�锛��ㄤ唬���圭��褰�涓���build_out��褰�涓�浜����惧��run��
�村�Spack��浣�
濡����寸簿缁��颁娇��Spack�у�跺��瑁�杩�绋�锛�璇峰����spack_quick_install.md
��澧�楠�璇�
瀹�瑁�瀹�CANN����锛���楠�璇���澧���椹卞�ㄦ����姝e父��
-
妫���NPU璁惧�
# 杩�琛�npu-smi锛��ヨ�芥�e父�剧ず璁惧�淇℃��锛���椹卞�ㄦ�e父 npu-smi info -
妫���CANN����
# �ョ��CANN toolkit������淇℃��锛�榛�璁よ矾寰�瀹�瑁�锛� cat /usr/local/Ascend/cann/${arch}-linux/ascend_toolkit_install.info # docker�ㄧ讲�����ㄥ��瑁��烘�� cat /home/developer/Ascend/cann/${arch}-linux/ascend_toolkit_install.info # CANNLab�烘�� spack location -i cann-toolkit # Spack瀹�瑁��烘�� # �ョ��CANN ops������淇℃��锛�榛�璁よ矾寰�瀹�瑁�锛� cat /usr/local/Ascend/cann/${arch}-linux/ascend_ops_install.info # docker�ㄧ讲�����ㄥ��瑁��烘�� cat /home/developer/Ascend/cann/${arch}-linux/ascend_ops_install.info # CANNLab�烘�� spack location -i cann-ops # Spack瀹�瑁��烘���朵腑${arch}����杩�
uname -m�ヨ�㈠����舵��锛�濡�aarch64��x86_64��
��澧�������缃�
�������╁�������戒护浣跨��澧���������锛�Spack�烘��涓�宸茶���ㄨ�剧疆��澧�����锛�璺宠�姝ゆ�ラ��
# 榛�璁よ矾寰�瀹�瑁�锛�浠�root�ㄦ�蜂负渚�锛���root�ㄦ�凤�灏�/usr/local�挎��涓�${HOME}锛�
source /usr/local/Ascend/cann/set_env.sh
# ��瀹�璺�寰�瀹�瑁�
# source ${install_path}/cann/set_env.sh