已关闭
[Course-Feedback|课程反馈]: 04_hello_world_npu:低精度优化部分表述不准确 #571
2301_76493720创建于 8月25日关闭于 9月7日
ink_polymer
8月25日 评论:
8月25日 评论:
尊敬的开发者您好,您提出的问题已收到,待内部评估后反馈,感谢您的支持


8月28日 关联了pull request:fix: 修正 CPU 精度描述,FP64 改为 FP32
8月28日 关联了pull request:fix: 修正 CPU 精度描述,FP64 改为 FP32
ink_polymer
9月1日 评论:
9月1日 评论:
尊敬的开发者您好,您提出的问题目前已经解决,该issue将在七天后关闭,若后续还有问题欢迎通过issue与我们交流,感谢您的支持


9月7日 issue状态由 进行中 改变为 已完成
9月7日 关闭了 issue
9月7日 添加了label:resolved
一、课程名称 (必填)
二、反馈类型 (必填)
三、反馈详情 (必填)
四、环境信息 (可选)
💡 备注(选填)
一、课程名称 (必填)
课程名称:Hello World:在 NPU 上跑通第一个加法
课程链接:https://gitcode.com/cann/cann-learning-hub/blob/master/quick_start/cann_basics/04_hello_world_npu.ipynb
二、反馈类型 (必填)
课程内容错误
三、反馈详情 (必填)
课程 Step 8“NPU 加速的优势分析”中写道:
该表述不准确,容易使初学者误以为 CPU 上的 AI 计算通常使用 FP64。
PyTorch 的初始默认浮点数据类型是
torch.float32,而不是 FP64。官方接口文档中,torch.get_default_dtype()的初始返回值也是torch.float32:https://docs.pytorch.org/docs/stable/generated/torch.get_default_dtype.html
课程自身的示例也使用了 FP32。例如以下代码未指定
dtype,默认创建 FP32 张量:a_cpu = torch.ones(3, 3) b_cpu = torch.full((3, 3), 2.0)后面的性能测试则显式指定了 FP32:
因此,“CPU 以 FP64 为主”的说法不仅与 PyTorch 默认行为不符,也与当前课程示例实际使用的 FP32 不一致。部分现代 CPU 还可以通过相应的硬件指令支持 FP32、BF16 等数据类型,CPU 与 NPU 的区别不能简单概括为“CPU 使用 FP64、NPU 使用 FP16/BF16”。
同一小节还写道:
这里也缺少适用范围说明。FP8、FP4、INT8 等低精度数据类型能否使用,以及能够用于哪些计算,取决于具体昇腾芯片型号、CANN 版本、框架版本和算子支持情况。当前表述容易让学习者误认为所有昇腾 NPU 和所有算子都支持这些数据类型。
建议修改为:
同时建议:
期望修改后:
四、环境信息 (可选)
💡 备注(选填)
该问题属于课程中的通用概念表述问题,与特定硬件故障无关。即使不具备 NPU 环境,也可以通过 PyTorch 官方文档及
torch.get_default_dtype()验证默认浮点数据类型为torch.float32。