首页 > 其他分享 >关于RTX 4090 微调llama2模型时出现nvcc fatal : Unsupported gpu architecture 'compute_89'的解决办法

关于RTX 4090 微调llama2模型时出现nvcc fatal : Unsupported gpu architecture 'compute_89'的解决办法

时间:2024-09-11 17:37:48浏览次数:10  
标签:nvcc 4090 compute sudo 12.2 cuda local usr

RTX 4090是现在普通人可以轻松获取的最好的显卡了。运算速度仅次于专业图形卡Tesla A100,A800,H100

RTX4090显卡是可以单卡推理llama2 7b和13b模型的,7b模型占用缓存14G左右,13b模型单卡推理显存占用在23G多点(只是运行一段时间容易爆显存),所以普通人都是可以使用llama2大语言模型。

RTX 4090单卡推理llama-2-13b-chat-hf

因为llama2在训练的时候,中文语料较少,加上没有针对中文做专门的训练,导致不能使用中文来回答,

这时候需要使用大量中文语料对llama2进行微调。

但是rtx 4090在微调时容易出现如下报错:

nvcc fatal : Unsupported gpu architecture 'compute_89'

ninja: build stopped: subcommand failed.

AttributeError: 'DeepSpeedCPUAdam' object has no attribute 'ds_opt_adam'

原因是conda环境下cuda编译器nvcc不支持compute_89导致安装失败,运行项目的requirement.txt安装环境往往会默认安装低版本的cuda环境。

可以在conda环境下使用nvcc --list-gpu-arch来查看

如果没有compute_89(nvcc --version版本是11.5或者以下),就需要重新安装cuda和nvcc

ubuntu22.04为例,依次运行一下代码:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin 
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 
wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda-repo-ubuntu2204-12-2-local_12.2.0-535.54.03-1_amd64.deb 
sudo dpkg -i cuda-repo-ubuntu2204-12-2-local_12.2.0-535.54.03-1_amd64.deb 
sudo cp /var/cuda-repo-ubuntu2204-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/ 
sudo apt-get update 
sudo apt-get -y install cuda

安装完成后,可以查看cuda 12.2版本安装位置

sudo find / -name cuda-12.2

一般在/usr/local/cuda-12.2下

修改.bashrc

vim ~/.bashrc

增加新cuda环境变量

export CUDA_HOME=/usr/local/cuda-12.2 
export PATH=/usr/local/cuda-12.2/bin:$PATH 
export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH

更新环境变量

source ~/.bashrc

再次查看nvcc --list-gpu-arch是否有compute_89

如果没有的话,可以用which nvcc查看nvcc目录

which nvcc

如果nvcc目录不是/usr/local/cuda-12.2 ,需要重新配置,先备份下原环境,然后重新配置

sudo mv /usr/bin/nvcc /usr/bin/nvcc.bak 
sudo ln -s /usr/local/cuda-12.2/bin/nvcc /usr/bin/nvcc

这样就可以了。

标签:nvcc,4090,compute,sudo,12.2,cuda,local,usr
From: https://www.cnblogs.com/zhangxianrong/p/18408602

相关文章

  • 20240909_155524 mysql 三种变量
    什么是变量标识数据的标识符,就是变量变量是标识数据的mysql中的三种变量系统变量自定义变量局部变量系统变量查看所有系统变量showvariables;根据系统变量名查看它的值select@@系统变量名select@@autocommit修改系统变量的值set系统变量名=值setautocommit......
  • 20240904_192638 mysql 填空题 存储过程进阶
    定义一个存储过程的形参,它接收数据,参数名为id,为int类型inidint定义一个存储过程的形参,它返回数据,参数名为name,是varchar(5)类型outnamevarchar(5)定义一个存储过程的形参,它一边接收数据一边返回数据,参数名为num,是int类型inoutnumint声明一个名为info的游标,保存查询teac......
  • 20240909_041725 c语言 代码注释 两种
    两种注释注释示例......
  • 20240909_031725 c语言 执行输出语句的流程
    源代码-》编译后代码-》可执行代码下图为可执行代码的示例路径:......
  • 20240909_011725 c语言 预处理
    在C语言中,第一行#include<stdio.h>是一个预处理指令,用于包含(或说,导入)标准输入输出库(StandardInputOutputLibrary)的头文件。这个库提供了进行输入输出操作的函数,比如printf()用于在屏幕上显示输出,scanf()用于从键盘读取输入等。具体来说:#include是一个预处理指令,告诉编译器......
  • 20240909_021725 c语言 骨架结构
    关注骨架结构明确intmainreturn0的意义与功能......
  • DAY20240908 VUE:一文带你了解Vue Router中的声明式导航
    VUE:声明式导航一、链接跳转方式-------声明式导航的引入二、声明式导航三、官方文档四、引入一、链接跳转方式-------声明式导航的引入链接跳转可以用location.href跳----编程式跳转js的跳转方式链接跳转可以用超链接跳声明式跳转端口号域名都可以省略。3-13......
  • DAY20240908 VUE:一文带你了解Vue 中的嵌套路由
    VUE:嵌套路由一、嵌套路由目录新建文件夹:体现嵌套关系。Films.vue文件变化index.js文件变化二、嵌套路由和二级路由的关系三、参考一、嵌套路由何谓嵌套路由,参考如下:上面有一个大的轮播图,下面一个二级的声明式导航,可以切换二级选项卡,此时只有二级路径在变,轮播图保......
  • SC3060: Computer Graphics and Visualization
    SC3060:ComputerGraphicsandVisualizationSWLaborYourOwn ComputerMaking Images with MathematicsLab Experiments 1- 5SESSION 2024/2025SEMESTER 1COMPUTERSCIENCECOURSEMAKING IMAGESWITH MATHEMATICS1. OBJECTIVEInthiscourseworkyou w......
  • 基于Pinia和Compute的持久化localStorage登录态管理Vuejs 源码教学
    piniaPinia是一个专为Vue3设计的状态管理库,它借鉴了Vuex的一些概念,但更加轻量灵活,使得状态管理变得更加简单直观。Pinia通过提供一种基于Vue3响应式API的状态管理机制,让我们可以更加优雅地管理应用程序的状态。computedVue的computed属性是一种特殊的数据属性,它们根据组......