使用 apt 源安装 ROCm 6.0.x 在Ubuntu 22.04.01

这篇具有很好参考价值的文章主要介绍了使用 apt 源安装 ROCm 6.0.x 在Ubuntu 22.04.01。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

从源码编译 rocSolver

本人只操作过单个rocm版本的情景,20240218 ubuntu 22.04.01

1,卸载原先的rocm


https://docs.amd.com/en/docs-5.1.3/deploy/linux/os-native/uninstall.html
 

# Uninstall single-version ROCm packages
sudo apt autoremove rocm-core

# Uninstall Kernel-mode Driver
sudo apt autoremove amdgpu-dkms

# remove apt source
sudo rm /etc/apt/sources.list.d/<rocm_repository-name>.list
sudo rm /etc/apt/sources.list.d/<amdgpu_repository-name>.list
sudo rm /etc/apt/sources.list.d/rocm.list
sudo rm /etc/apt/sources.list.d/amdgpu.list

sudo rm -rf /var/cache/apt/*
sudo apt-get clean all

sudo reboot

2,安装最新的rocm


https://rocm.docs.amd.com/projects/install-on-linux/en/latest/tutorial/quick-start.html#rocm-install-quick

sudo apt install "linux-headers-$(uname -r)" "linux-modules-extra-$(uname -r)"
# See prerequisites. Adding current user to Video and Render groups
sudo usermod -a -G render,video $LOGNAME
wget https://repo.radeon.com/amdgpu-install/6.0.2/ubuntu/jammy/amdgpu-install_6.0.60002-1_all.deb
sudo apt install ./amdgpu-install_6.0.60002-1_all.deb
sudo apt update
sudo apt install amdgpu-dkms
sudo apt install rocm
sudo reboot
sudo amdgpu-install --usecase=graphics,rocm
sudo reboot

3,安装依赖

Clang: ...  'cmath' file not found
找不到 #include_next <cmath>

sudo apt install libstdc++-12-dev

4,示例

4.1 amd官方示例

$ git clone --recursive  https://github.com/amd/rocm-examples.git
$ cd HIP-Basic/device_query
$ make
$ ./hip_device_query

使用 apt 源安装 ROCm 6.0.x 在Ubuntu 22.04.01,linux,高性能计算

使用 apt 源安装 ROCm 6.0.x 在Ubuntu 22.04.01,linux,高性能计算

4.2 rocsolver_dgeqrf

ex_rocsolver_dgeqrf.cpp

/
// example.cpp source code //
/

#include <algorithm> // for std::min
#include <stddef.h>  // for size_t
#include <stdio.h>
#include <vector>
#include <hip/hip_runtime_api.h> // for hip functions
#include <rocsolver/rocsolver.h> // for all the rocsolver C interfaces and type declarations

void init_vector(double* A, int n)
{
  for(int i=0; i<n; i++)
    A[i] = (rand()%2000)/1000.0;
}

void print_matrix(double* A, int M, int N, int lda)
{
  for(int i=0; i<M; i++)
  {
    for(int j=0; j<N; j++)
    {
      printf("%7.4f, ", A[i + j*lda]);
    }
    printf("\n");
  }

}

int main() {
  rocblas_int M = 7;
  rocblas_int N = 7;
  rocblas_int lda = M;

  // here is where you would initialize M, N and lda with desired values

  rocblas_handle handle;
  rocblas_create_handle(&handle);

  size_t size_A = size_t(lda) * N;          // the size of the array for the matrix
  size_t size_piv = size_t(std::min(M, N)); // the size of array for the Householder scalars

  std::vector<double> hA(size_A);      // creates array for matrix in CPU
  std::vector<double> hIpiv(size_piv); // creates array for householder scalars in CPU

  init_vector(hA.data(), size_A);
  memset(hIpiv.data(), 0, size_piv*sizeof(double));

  print_matrix(hA.data(), M, N, lda);

  double *dA, *dIpiv;
  hipMalloc(&dA, sizeof(double)*size_A);      // allocates memory for matrix in GPU
  hipMalloc(&dIpiv, sizeof(double)*size_piv); // allocates memory for scalars in GPU

  // here is where you would initialize matrix A (array hA) with input data
  // note: matrices must be stored in column major format,
  //       i.e. entry (i,j) should be accessed by hA[i + j*lda]

  // copy data to GPU
  hipMemcpy(dA, hA.data(), sizeof(double)*size_A, hipMemcpyHostToDevice);
  // compute the QR factorization on the GPU
  rocsolver_dgeqrf(handle, M, N, dA, lda, dIpiv);
  // copy the results back to CPU
  hipMemcpy(hA.data(), dA, sizeof(double)*size_A, hipMemcpyDeviceToHost);
  hipMemcpy(hIpiv.data(), dIpiv, sizeof(double)*size_piv, hipMemcpyDeviceToHost);

  printf("\nR =\n");
  print_matrix(hA.data(), M, N, lda);
  printf("\ntau=\n");
  print_matrix(hIpiv.data(), 1, N, 1);

  // the results are now in hA and hIpiv, so you can use them here

  hipFree(dA);                        // de-allocate GPU memory
  hipFree(dIpiv);
  rocblas_destroy_handle(handle);     // destroy handle
}

Makefile:

EXE := ex_rocsolver_dgeqrf

all: $(EXE)

INC :=  -I /opt/rocm/include -D__HIP_PLATFORM_AMD__
LD_FLAGS := -L /opt/rocm/lib -lamdhip64 -lrocblas -lrocsolver

ex_rocsolver_dgeqrf.o: ex_rocsolver_dgeqrf.cpp
        g++ $< $(INC) -c -o $@

ex_rocsolver_dgeqrf: ex_rocsolver_dgeqrf.o
        g++ $< $(LD_FLAGS) -o $@


.PHONY: clean
clean:
        ${RM} *.o $(EXE)

运行效果:

使用 apt 源安装 ROCm 6.0.x 在Ubuntu 22.04.01,linux,高性能计算

使用matlab对结果做验证:

使用 apt 源安装 ROCm 6.0.x 在Ubuntu 22.04.01,linux,高性能计算文章来源地址https://www.toymoban.com/news/detail-826736.html

到了这里,关于使用 apt 源安装 ROCm 6.0.x 在Ubuntu 22.04.01的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubuntu 22.04 设置 apt 代理 配置 清华源 add-apt-repository 代理

    curl 设置 代理 sudo curl -x “http://192.168.1.2:3128” 需要验证的代理 sudo curl -x “http://username:password@192.168.1.2:3128” 另一种临时代理 https://askubuntu.com/questions/53146/how-do-i-get-add-apt-repository-to-work-through-a-proxy 如果没有代理配置文件就创建一个 sudo touch /etc/apt/apt.conf.d/proxy.conf 编辑配置

    2024年02月05日
    浏览(41)
  • Ubuntu22.04 系统 解决输入nvcc -V 显示sudo apt-get install nvidia-cuda-toolkit安装 即CUDA环境配置问题

    参考: ubuntu解决没有nvcc命令的错误_nvcc没有_妖妖灵誓言的博客-CSDN博客 Linux 进入root管理员权限_linux进入管理员模式命令_Xav Zewen的博客-CSDN博客 Linux 进入root管理员权限_linux进入管理员模式命令_Xav Zewen的博客-CSDN博客   ----------------------------------------------解决输入nvcc -V-------

    2024年02月03日
    浏览(58)
  • Linux基础篇 Ubuntu 22.04的环境安装-02

    目录 一、资料的获取 二、安装虚拟机 三、安装Ubuntu过程 四、注意事项 1.通过官方网站下载 Ubuntu系统下载 | Ubuntu https://cn.ubuntu.com/download 2.下载桌面板即可 3.选择下载的版本   1.创建新的虚拟机 2.选择自定义安装  3.硬件兼容性选项默认即可   4. 选择稍后安装操作系统  5.选

    2024年02月08日
    浏览(45)
  • 如何在Ubuntu 22.04上安装Linux 内核 详细教程!

    在Ubuntu 22.04上安装Linux内核可以按照以下步骤进行操作: 更新系统:首先,确保你的Ubuntu系统是最新的,执行以下命令更新系统软件包: 下载内核文件:访问Linux内核官方网站(https://www.kernel.org)下载所需的内核版本。选择一个稳定版本并下载源代码文件(以.tar.gz或.tar.xz为

    2024年02月07日
    浏览(65)
  • Windows电脑安装Linux(Ubuntu 22.04)系统(图文并茂)

    Ubuntu 16.04、Ubuntu 18.04安装方法相同,制作U盘启动项的镜像文件下载你需要的版本即可! Ubuntu的中文官网网址:https://cn.ubuntu.com/,聪明的你一定能找到下载镜像文件的地方! https://releases.ubuntu.com/是Ubuntu 14.04 到 Ubuntu 23.10的镜像文件汇总地址! 制作U盘启动项的软件rufus的下载

    2024年03月12日
    浏览(59)
  • Ubuntu 22.04安装使用easyconnect

    百度百科,EasyConnect能够帮助您在办公室之外使用公司内网的所有系统及应用。在您的公司部署深信服远程应用发布解决方案后,您的公司所有业务系统及应用都可以轻松迁移至移动互联网上。您可以通过手机、PAD等智能移动终端随时随地开展您的业务,尽享移动业务带来的

    2024年01月17日
    浏览(43)
  • Linux-ubuntu22.04串口驱动安装(CH34X)

    查看ubuntu系统自带驱动  一般能看到下面等文件 上面可以看到含有ch341.ko文件,系统自带的版本比较老,删除掉: 1)百度网盘下载链接 提取码:RMSR 2)微云下载 解压之后可以看到以下3个文件 打开:https://elixir.bootlin.com/linux/v6.2/source/drivers/usb/serial/ch341.c 根据查询到的操作系

    2024年02月07日
    浏览(52)
  • [Ubuntu 22.04] Docker安装及使用

    使用脚本自动安装 安装完成后验证 1. 拉取镜像并启动容器 注 :OPTION是参数,TAG是标签(版本号) 以Ubuntu 20.04为例,如下: 2. 创建容器 镜像拉取完成后,可以使用以下命令创建并启动一个基于 Ubuntu 20.04 镜像的容器 这将创建一个交互式的终端会话,可以在 Ubuntu 20.04 容器内

    2024年01月17日
    浏览(48)
  • WSL安装与使用(Ubuntu22.04)

    本文主要记录Windows WSL的安装和使用过程,内容包括WSL安装过程、WSL安装Ubuntu、Ubuntu更换镜像源,Ubuntu安装Dcoker并配置等步骤。 Windows Subsystem for Linux(简称WSL)是一个在Windows 1011上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,

    2024年02月08日
    浏览(48)
  • Ubuntu22.04安装微信Linux版(非Wine版)+中文输入

    Ubuntu下安装微信,一直是开发者痛点问题。微信终于推出了Linux原生版本(内侧版)。 我已经将资源上传至: https://download.csdn.net/download/dengtonglong/89003661 评论区有网盘的版本。 可能会提示缺少libssl1.1: 卸载: 刚安装没法使用输入法,由于我的输入法是ibus,官方建议使用f

    2024年04月17日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包