当前位置: 首页 > news >正文

在openEuler(昇腾平台)上基于Conda安装CANN和PyTorch的完整过程

在上一篇博客的基础上再总结一下:https://blog.csdn.net/qysh123/article/details/159352996

虽然上一篇博客能够按照网页成功输出了,但是我发现并不能正确运行一些小的Example,所以这里再总结一下。

前面的步骤都是一样的。我新建了一个Conda环境TorchTest,然后运行:

source /opt/miniconda/envs/TorchTest/Ascend/cann/set_env.sh python3 -c "import acl;print(acl.get_soc_name())"

也可以看到输出:

Ascend310P3

但实际上这样有个问题,难道每次激活环境的时候都要手动设置环境脚本?如果不设置就会报错:

python3 -c "import acl;print(acl.get_soc_name())" Traceback (most recent call last): File "<string>", line 1, in <module> ModuleNotFoundError: No module named 'acl'

这也是很显而易见的。所以首先每次激活Conda环境的时候需要自动运行set_env.sh。这其实也很简单:

首先在conda环境的对应目录下建立activate.d文件夹:

mkdir -p /opt/miniconda/envs/TorchTest/etc/conda/activate.d

然后在这个目录下新建一个bash文件:

nano /opt/miniconda/envs/TorchTest/etc/conda/activate.d/ascend_set_env.sh

然后把source命令写到这个bash文件里(nano打开后正常编辑,ctrl+o,再按回车保存,然后ctrl+x退出编辑)

source /opt/miniconda/envs/TorchTest/Ascend/cann/set_env.sh

然后设置脚本的执行权限(否则conda激活的时候并不会自动运行)

chmod +x /opt/miniconda/envs/TorchTest/etc/conda/activate.d/ascend_set_env.sh

然后再重新激活,就可以看到可以正常输出了。到这里才算在Conda环境里配置好了CANN。

感觉这个过程和我当前配置Conda+CUDA的环境很像,参考我6年前的博客:https://blog.csdn.net/qysh123/article/details/108163188,但Nvidia环境下以后很久不需要这么配置,参考:https://blog.csdn.net/qysh123/article/details/142063926

---------------------------------------------------------------------------------------

下面安装一下PyTorch,这里吐槽一下官方的repo:https://github.com/Ascend/PyTorch,这里的例子还是torch 2.1.0呢,都不知道更新的吗?看到docs更新了:https://ascend.github.io/docs/sources/pytorch/install.html

选择2.6.0,pip安装,参考页面上的流程,首先安装Torch:

pip3 install torch==2.6.0

(如果速度慢的话,需要选择源或者用代理)

安装好之后,按照GitHub的repo,需要先安装下面这两个(但是docs里面并没有说,呵呵,自己都做不到统一的吗?)

pip3 install pyyaml pip3 install setuptools

之后再安装torch-npu:

pip3 install torch-npu==2.6.0

按照docs里面的说法,安装到这里就可以了,接下来可以安装验证程序:

import torch import torch_npu x = torch.randn(2, 2).npu() y = torch.randn(2, 2).npu() z = x.mm(y) print(z)

但是实际上报错:

/opt/miniconda/envs/TorchTest/lib/python3.10/site-packages/torch/_subclasses/functional_tensor.py:275: UserWarning: Failed to initialize NumPy: No module named 'numpy' (Triggered internally at /pytorch/torch/csrc/utils/tensor_numpy.cpp:81.)

这个嘛,这个错有点让人无语啊,感觉Nvidia平台下装torch的时候基本都装好了。那就装一下numpy:

pip3 install numpy

再运行一下,还是报错:

[PID: 341531] 2026-03-25-18:56:20.567.980 Environment_Error_Import_Python_Module_Failed(EC0010): Failed to import Python module ModuleNotFoundError: No module named 'decorator'..

呵呵呵,为啥安装脚本都不一次设置好,他们自己都不测试的吗?

pip3 install decorator

再运行一下,还是报错:

[PID: 341618] 2026-03-25-18:59:12.901.872 Environment_Error_Import_Python_Module_Failed(EC0010): Failed to import Python module ModuleNotFoundError: No module named 'scipy'..

我真的太无语了,继续装:

pip3 install scipy

再运行一下:

[PID: 341719] 2026-03-25-19:01:23.234.991 Environment_Error_Import_Python_Module_Failed(EC0010): Failed to import Python module ModuleNotFoundError: No module named 'attr'..

呵呵,继续装:

pip3 install attrs

再运行一下:

[PID: 341804] 2026-03-25-19:04:08.127.592 Environment_Error_Import_Python_Module_Failed(EC0010): Failed to import Python module ModuleNotFoundError: No module named 'psutil'..

继续装:

pip3 install psutil

然后终于可以运行了:

.start compile Ascend C operator IsFinite. kernel name is te_isfinite_78c81b6cbfa3d15bbfec686a57f201470ba92a6f2a7d582f50232b164e918710
[W325 19:06:51.505313780 compiler_depend.ts:164] Warning: Warning: Device do not support double dtype now, dtype cast repalce with float. (function operator())
.tensor([[ 0.0037, -0.0555],
[-0.0960, -0.5503]], device='npu:0')

就是可能有编译的过程,比较慢。

再运行一个其他朋友给的例子:

# 验证关键组件版本 import sys, torch, torch_npu print(f"Python版本: {sys.version}") print(f"PyTorch版本: {torch.__version__}") print(f"torch_npu版本: {torch_npu.__version__}") print(f"可用NPU数量: {torch.npu.device_count()}") print(f"当前设备: {torch.npu.get_device_name(0)}") # 验证计算能力 device = torch.device("npu:0") test_tensor = torch.randn(1024, 1024).npu() result = test_tensor @ test_tensor.T print("NPU计算测试通过,结果形状:", result.shape)

可以得到下面的结果:

Python版本: 3.10.20 (main, Mar 11 2026, 17:41:27) [GCC 14.3.0] PyTorch版本: 2.6.0+cpu torch_npu版本: 2.6.0 可用NPU数量: 8 当前设备: Ascend310P3 NPU计算测试通过,结果形状: torch.Size([1024, 1024])

感觉还是有点不明白的,为啥PyTorch是cpu版本呢?不过总算是可以跑一些简单的例子了。就简单总结到这里。

http://www.jsqmd.com/news/537769/

相关文章:

  • 2025-2026年提干辅导培训机构推荐:部队体系背景师资与精准押题口碑品牌分析 - 十大品牌推荐
  • 明日方舟自动化助手MAA:解放双手的终极游戏伴侣
  • 携程任我行卡回收最佳攻略:轻松变现的秘诀 - 团团收购物卡回收
  • 零基础玩转OpenClaw:星图GPU百川2-13B量化镜像体验报告
  • 告别手动描点:如何用WebPlotDigitizer实现科学图表数据的精准提取
  • 2026年天津本地防水服务商综合实力排名与选购指南 - 2026年企业推荐榜
  • 2026年提干辅导培训机构推荐:部队士兵考学系统规划高口碑机构与提分效果分析 - 十大品牌推荐
  • PyTorch 2.8镜像部署实操:RTX 4090D运行ComfyUI+Diffusers视频工作流
  • 土壤呼吸测定仪厂家有哪些?2026年值得关注的品牌一览 - 品牌推荐大师
  • Banana Vision Studio与MySQL集成:工业设计数据库管理系统
  • GLM-OCR与Keil5联动设想:嵌入式设备调试日志的图像识别分析
  • 如何快速回收携程任我行卡并实现高效变现? - 团团收购物卡回收
  • 3步打造静音ThinkPad:双风扇控制技术指南
  • 非支配排序遗传算法NSGA-III详解与MATLAB实现
  • 3分钟掌握终极ASCII艺术转换:免费将图片视频变成字符画的神奇工具 [特殊字符]
  • 深入理解 Python 数据模型:一切皆为对象
  • 科学图表数据提取全攻略:从图像到数值的高效转化技术
  • 每日算法练习:LeetCode 13. 罗马数字转整数 ✅
  • SQL核心操作笔记:索引创建与数据查询全解析(附实例)
  • Llama-3.2V-11B-cot部署教程:双卡4090一键启动视觉推理工具
  • C++的std--ranges资源清理
  • 京东智能抢购解决方案:告别手慢无的自动化下单工具
  • 2026年提干辅导培训机构推荐:部队考生碎片化时间利用与薄弱科目强化辅导服务分析 - 十大品牌推荐
  • 毕业论文神器 9个一键生成论文工具:全行业通用测评+高效写作推荐
  • Go gRPC 流式通信实现与优化
  • Linux静态库与共享库开发实践指南
  • 别再用time.time()测速了!(金融计算性能评估黄金标准:Wall-clock + CPU-cycle + L3-cache-miss三维校准法)
  • Gemma-3-12b-it多模态交互效果展示:复杂图表分析与跨模态推理实例
  • ChatGLM3-6B-128K多语言支持:跨语言翻译实践
  • MelonLoader:Unity游戏插件加载的终极解决方案