☰
HELLO GPU TASK0 打卡
2026/10/19 5:05:11 网站建设 项目流程

一. 任务信息

  • 任务名称:Task 0|环境准备
  • 学习周期:第 1~3 天
  • 完成时间:第 3 天结束前
  • 任务状态:已完成
  • 实验平台:AMD Radeon Cloud
  • 参考教程:Hello GPU 第 1 章:环境准备

二. 学习目标

本次 Task 0 主要完成以下内容:

  1. 了解 Hello GPU 的课程结构,找到课程教程与实验环境指南。
  2. 确认云服务器的显卡型号、系统及 ROCm 环境。
  3. 完成项目依赖同步与环境激活。
  4. 运行教程中的最小示例,验证 GPU 计算环境。
  5. 保存程序成功运行的截图,并记录显卡型号与环境配置。

三. 课程结构

Hello GPU 的课程内容主要包括:

  • GPU 编程与体系结构基础
  • ROCm 与 HIP 开发环境
  • GPU 性能分析与 Profiling
  • 常见 GPU Kernel 的编写与优化
  • Triton 算子开发
  • GPU 算子优化 Agent
  • 真实模型的部署与自动优化

四、实验环境

由于我的本地显卡是 NVIDIA GeForce RTX 3070 Ti,而课程使用的是 AMD ROCm 环境,因此本次实验使用 AMD Radeon Cloud 云服务器完成。

4.1 硬件与软件信息

项目配置
实验平台AMD Radeon Cloud
GPU 型号AMD Radeon Pro W7900D
GPU 架构gfx1100
CPUAMD EPYC 9334 32-Core Processor
Python3.12.3
uv0.7.6
ROCmROCm 10.0 环境
工作目录/workspace
项目分支dev

4.2 检查环境

执行以下命令:

pwd python --version uv --version rocminfo | grep -E "Name:|Marketing Name:|Device Type:"

其中 GPU 相关输出如下:

Name: gfx1100 Marketing Name: AMD Radeon Pro W7900D Vendor Name: AMD Device Type: GPU

输出中出现了:

Device Type: GPU

说明 ROCm 已经能够正确识别云服务器中的 AMD GPU。


五、获取课程项目

进入工作目录并下载项目:

cd /workspace git clone -b dev https://github.com/datawhalechina/hello-gpu.git

进入 Task 0 对应目录:

cd /workspace/hello-gpu/code/part0-intro

项目中的主要环境文件包括:

code/part0-intro/ ├── pyproject.toml ├── uv.lock ├── activate-rocm.sh └── chapter1/ ├── check_torch_rocm.py └── vector_add.hip


六、同步依赖并激活环境

6.1 同步项目依赖

在code/part0-intro目录下执行:

uv sync

uv会根据pyproject.toml和uv.lock自动完成以下工作:

  • 创建项目虚拟环境.venv
  • 安装 ROCm 版 PyTorch
  • 安装 ROCm SDK
  • 安装 gfx1100 对应的设备依赖
  • 安装 HIP 开发组件
  • 同步项目所需的其他 Python 包

不需要提前手动创建虚拟环境,也不需要单独执行:

pip install torch

6.2 激活 ROCm 环境

依赖同步完成后执行:

source ./activate-rocm.sh

激活脚本会设置项目虚拟环境以及ROCM_PATH、HIP_PATH等环境变量。

检查 ROCm SDK 和 HIP 编译器:

rocm-sdk version hipcc --version

七、运行最小示例

7.1 验证 PyTorch ROCm

运行课程提供的 PyTorch 检查脚本:

python chapter1/check_torch_rocm.py

该脚本主要完成以下检查:

  1. 导入 PyTorch。
  2. 检查 GPU 后端是否可用。
  3. 获取 GPU 数量和设备名称。
  4. 在 GPU 上创建矩阵。
  5. 执行一次矩阵乘法。
  6. 输出计算结果所在设备。

重点关注以下信息:

cuda_available: True device_count: 1 device_name: AMD Radeon Pro W7900D result_device: cuda:0

虽然 ROCm 使用的是 AMD GPU,但 PyTorch 仍然沿用torch.cuda和cuda:0作为 GPU 接口名称。这只是 PyTorch 的历史命名方式,并不代表程序使用了 NVIDIA CUDA。

7.2 编译 HIP 最小示例

进入示例目录:

cd chapter1

使用hipcc编译向量加法程序:

hipcc vector_add.hip -O2 -o vector_add

运行程序:

./vector_add

程序完成了以下流程:

CPU 准备输入数据 ↓ 申请 GPU 显存 ↓ 将数据复制到 GPU ↓ 启动 HIP Kernel ↓ 将结果复制回 CPU ↓ 检查计算结果

运行成功后,重点检查:

max_error: 0 status: PASS

其中:

  • max_error: 0表示计算结果没有误差。
  • status: PASS表示 HIP Kernel 编译、启动、计算和数据传输均正常。

八、运行结果截图


九、学习总结

通过本次 Task 0,我完成了 Hello GPU 项目的基础环境准备,主要掌握了以下内容:

  1. 了解了课程的整体结构和实验环境要求。
  2. 学会了通过rocminfo查看 AMD GPU 型号及架构。
  3. 学会了根据实际 GPU 架构修改 ROCm 设备依赖。
  4. 使用uv完成了项目依赖同步和虚拟环境创建。
  5. 成功激活 ROCm 10.0 项目环境。
  6. 使用 PyTorch 完成了 GPU 矩阵计算验证。
  7. 使用hipcc编译并运行了最小 HIP 向量加法程序。
  8. 本次环境验证结果如下:

至此,Hello GPU 的基础开发环境已经准备完成,可以继续学习后续的 GPU 体系结构、性能分析和 Kernel 优化内容。


十、参考资料

  • Hello GPU 项目主页
  • 第 1 章:环境准备
  • 附录 B:切换 ROCm GPU 架构
  • Hello GPU GitHub 仓库
  • AMD ROCm 官方文档
  • uv 官方文档

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询