AMD ROCm 平台简介

最近,AMD 发布 MIOpen。至此,AMD 始于15年的打造 GPU 计算生态的 Boltzmann Initiative,有了阶段性的成果。

下面本文从深度学习计算的视角来审视一下 AMD 推出的 ROCm 生态。当然, ROCm 是一个完整的 GPGPU 生态,这里的讨论大体也适用于其他应用领域。

1. Overview

ROCm 的目标是建立可替代 CUDA 的生态(图1),并在源码级别上对 CUDA 程序的支持。

这里写图片描述
图1.

为了实现目标,ROCm 复制了 CUDA 的技术栈。对比如图2、图3(本文不考虑 OpenCL 支持)。

这里写图片描述
图2. CUDA 栈

这里写图片描述
图3. ROCm 栈

由于 ROCm 是开源平台,出于模块化以及对一些开放标准的支持,ROCm 的封装层次较 CUDA 会多一些。好在,这对一般开发者是不可见。

2. ROCm

2.1 名词解释

在介绍 ROCm 前,首先对一些概念进行说明。

  • ROC —— Radeon Open Computing,即 “Radeon 开放计算”。其中,Radeon 是 AMD GPU 产品的品牌名。

  • ROCm——ROC platforM 的简称,是基于一系列开源项目的 AMD GPU 计算生态。ROCm 之于 AMD GPU,基本上相当 于 CUDA 之于 NVIDIA GPU。除 ROCm 外,还有一系列 ROCx 的简称,如 ROCr —— ROC Runtime,ROCk —— ROC kernel driver, ROCt —— ROC Thunk 等。

  • HSA——Heterogeous system architecture,可以简单理解为硬件上的一层抽象。 AMD 等为支持 CPU+GPU 混合计算生态而成立了非赢利组织 HSA 基金,提供 runtime 和架构 API 标准。现成员包括 AMD、三星、高通、ARM、TI、Imagination、MTK等。

  • GCN——Graphics Core Next,是 AMD 11年推出的全新架构,以区别于之前基于基于 VLIW (超长指令字)的架构。由于现在所有 AMD GPU 都建于 GCN 架构,失去 ”next“ 的对象,因此,GCN 可以简单理解为 AMD GPU 架构。

2.2 ROCm

了解 ROCm 最快的方式可能是和 CUDA 对比。表1给出了主要模块的对比。

CUDA ROCm 备注
CUDA API
<think>好的,我现在需要帮助用户了解如何在AMD ROCm平台上安装和配置Ollama。首先,我得确认用户的需求是什么。用户提到他们想了解Ollama在ROCm上的支持情况以及安装配置方法。他们已经提供了几个引用链接,其中涉及ROCm的安装指南、Ubuntu 22.04的安装教程、QLoRA调优的博客,以及一个关于NVIDIA GPU不兼容PyTorch的错误信息。 首先,我需要回忆Ollama的相关信息。Ollama是一个用于本地运行大型语言模型(LLM)的工具,通常支持CUDANVIDIA GPU。但用户询问的是AMDROCm平台,这可能涉及到兼容性问题。根据引用[3],有博客提到在单个AMD GPU上使用QLoRA调优Llama 2,这说明至少在某些情况下,AMD GPU可以用于类似的任务,但需要ROCm的支持。 接下来,我需要确认Ollama是否官方支持ROCm。查阅Ollama的官方文档,发现目前Ollama主要支持CUDA,但可能社区有非官方的支持或变通方法。用户提供的引用[3]显示有通过ROCm运行LLM的例子,所以可能可以配置Ollama使用ROCm。 然后,安装步骤可能需要先安装ROCm,如引用[1]和[2]所述。用户需要确保系统符合ROCm的要求,比如Ubuntu 22.04,然后按照官方指南安装ROCm 6.0。这可能涉及添加仓库、安装内核模块、配置用户组等步骤,如引用[2]中的教程提到的。 接下来,安装PyTorch的ROCm版本。因为Ollama可能依赖于PyTorch,而默认安装的PyTorch可能不支持AMD GPU。用户需要从PyTorch官网选择支持ROCm的版本,例如使用pip安装命令指定rocm5.6或更高版本。引用[4]中的错误信息提示了CUDA版本不兼容的问题,但在这里用户需要确保PyTorch针对ROCm构建。 然后是安装Ollama本身。可能需要从源码编译或使用社区提供的支持ROCm的分支。例如,用户可能需要克隆Ollama的仓库,检查是否有ROCm支持的分支,并按照特定说明编译。这可能涉及设置环境变量,如HSA_OVERRIDE_GFX_VERSION,特别是对于不同型号的AMD GPU,如RX 6000系列需要设置这个变量。 配置Ollama时,可能需要修改配置文件,指定使用ROCm作为后端,或者设置相应的参数让Ollama识别AMD GPU。例如,在启动Ollama时添加参数,或者设置环境变量如HIP_VISIBLE_DEVICES来指定使用的GPU。 验证安装是否成功,可以运行Ollama的命令行工具,查看日志是否检测到AMD GPU,并测试模型推理是否使用GPU加速。用户可能需要运行ollama run llama2这样的命令,并监控GPU的使用情况,比如使用rocm-smi工具。 此外,需要注意可能的常见问题,比如依赖项缺失、权限问题(需要将用户加入video组)、内核模块未正确加载等。引用[2]中的教程提到了安装过程中的一些坑,比如需要安装特定版本的ROCm,或者处理依赖冲突。 最后,生成相关问题时要考虑用户可能的后续疑问,比如性能调优、错误处理、模型兼容性等,帮助用户进一步解决问题。</think>### Ollama在AMD ROCm平台上的安装与配置指南 #### 1. 确认硬件与系统要求 - **AMD GPU支持**: 需为ROCm支持的GPU型号,例如Radeon VII、Radeon Pro VII、Instinct MI系列等。部分消费级显卡如RX 6000系列需手动设置环境变量`HSA_OVERRIDE_GFX_VERSION=10.3.0`[^2]。 - **操作系统**: 推荐Ubuntu 22.04 LTS,其他Linux发行版需参考官方兼容性列表[^1]。 #### 2. 安装ROCm平台 1. **添加ROCm仓库**: ```bash wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add - echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/6.0/ ubuntu main' | sudo tee /etc/apt/sources.list.d/rocm.list ``` 2. **安装ROCm核心组件**: ```bash sudo apt update sudo apt install rocm-hip-sdk rocm-opencl-sdk ``` 3. **配置用户权限**: ```bash sudo usermod -aG video $USER ``` 重启系统后运行`rocminfo`验证安装。 #### 3. 配置PyTorch for ROCm Ollama依赖PyTorch的GPU加速,需安装支持ROCm的版本: ```bash pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.0 ``` #### 4. 安装Ollama 目前Ollama官方未直接支持ROCm,需通过源码编译: ```bash git clone https://github.com/jmorganca/ollama cd ollama # 切换到社区支持分支(例如rocm-experimental) GOAMD64=v3 make ROCM_ENABLED=1 ``` 编译成功后,将生成的`ollama`二进制文件复制到`/usr/local/bin/`。 #### 5. 运行与验证 - **启动Ollama服务**: ```bash HSA_OVERRIDE_GFX_VERSION=10.3.0 ollama serve ``` - **测试模型加载**: ```bash ollama run llama2 ``` 观察日志中是否出现`Using AMD GPU with ROCm`的提示。 #### 6. 常见问题 - **GPU未识别**: 检查`/dev/kfd`权限,或尝试`export HIP_VISIBLE_DEVICES=0`。 - **依赖冲突**: 使用`docker run --device=/dev/kfd --device=/dev/dri --security-opt seccomp=unconfined -it rocm/pytorch`在容器中运行[^3]。 - **性能调优**: 调整`OLLAMA_NUM_GPU=2`环境变量分配多GPU资源。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值