UOS系统安装配置AMD的OPENCL环境

本文档详细介绍了如何在UOS操作系统上手动配置AMD显卡的OpenCL环境,包括安装amdgpu-pro套件以及解决安装过程中遇到的兼容性问题。此外,还探讨了在UOS上为Intel核心显卡配置OpenCL环境的步骤,尽管最终由于门罗币挖矿算法不支持Intel核心显卡导致挖矿失败。整个过程涉及了OpenCL平台、设备、驱动和库的安装与配置,以及在不同设备间切换OpenCL环境的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

AMD的显卡驱动虽然是开源了,但是对于OPENCL的编译那一套环境一直是自己在搞,貌似没有交给社区,所以要在UOS上配置基于AMD显卡的OPENCL环境,就不能简单的通过apt-get这样的命令直接安装搞定了,需要安装amdgpu-pro这一套,这个里面就包含了他显卡的全套东西(内核驱动,Xorg驱动,OpenGL,OpenCL库)等等.由于官网的amdgpu-pro只针对RHEL/ubuntu的长期维护版本提供支持,其余的Linux发行版就照顾不到了,不过基于debian的发行版还是可以白嫖的,不过就是得手工安装而不能一条命令自动安装了.
具体的可以参考这里:

https://linuxconfig.org/install-opencl-for-the-amdgpu-open-source-drivers-on-debian-and-ubuntu

安装过程

  1. 下载安装包
    安装包我都是bing.com上面搜别人安装的文章给的连接 ,具体的自己去AMD网站用AMDGPU-Pro搜吧.
    具体的版本我先后试了好几个版本,总是在内核驱动那里出问题,dkms编译不过去,要么就是我内核太高,5.4了,最后测试出来 https://drivers.amd.com/drivers/linux/amdgpu-pro-20.40-1147287-ubuntu-18.04.tar.xz 这个给18.04.5做的20.40版本可以正常安装.
  2. 做本地源
    下载下来的包里面Packages文件都给你生成好了的,直接添加个源就好
actionchen@actionchen-PC:~/M-门罗币/neo$ cat /etc/apt/sources.list.d/demo.list 
deb [trusted=yes] file:/home/actionchen/M-门罗币/OPENCL-AMD/amdgpu-pro-20.40-1147287-ubuntu-18.04 

我的就是这样,不要介意,我就是为了运行这个门罗币挖矿程序的OPENCL部分才想起来要在UOS上配置OPENCL环境的.
3. 直接开始安装需要的几个包

amdgpu-dkms
opencl-amdgpu-pro-icd
clinfo-amdgpu-pro
opencl-orca-amdgpu-pro-icd

安装这几个,他会自己去把其他依赖的包也给装上
安装完后/opt/amdgpu-pro/bin/clinfo 执行一下就可以看到有platform ,device信息了,Platform 包括支持的Opencl版本信息,device包括显卡的硬件配置信息了.
如果这时候运行程序还是报运行环境不对的话,再安装

ocl-icd-opencl-dev 

这个包就对了,其实这个就是个opencl的loader(opencl-icd),前面也装了amd的loader,这里是系统的loader,loader会去/etc/下面扫描各种厂商信息的,如果不装这个,运行程序指定对应的loader也是可以的(反正就是把libopencl.so搞对就行)

  1. 最后就是直接运行你的opencl程序了,不过我这里有点杯具,这个门罗币的挖矿代码要求显存大于2GB,而我这个联想万年辣鸡笔记本配置的还是跟Intel核显没啥区别的 AMD 625 Mobile,刚好就是2G显存,真不知道这些笔记本厂商是为了啥,为了帮显卡厂商出掉些次品芯片吗 ?
` * ABOUT XMRig/6.8.2 gcc/8.3.0

LIBS libuv/1.40.0 OpenSSL/1.1.1i hwloc/2.4.0
HUGE PAGES supported
1GB PAGES supported
CPU Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz (1) 64-bit AES
L2:1.0 MB L3:6.0 MB 4C/8T NUMA:1
MEMORY 6.0/7.3 GB (83%)
DIMM_A0: 8 GB DDR4 @ 2667 MHz HMAA1GS6CMR6N-VK
ChannelB-DIMM0:
MOTHERBOARD LENOVO - LNVNB161216
DONATE 0%
ASSEMBLY auto:intel
POOL #1 xmr.f2pool.com:13531 algo auto
COMMANDS hashrate, pause, resume, results, connection
ADL press e for health report
OPENCL #0 AMD Accelerated Parallel Processing/OpenCL 2.1 AMD-APP (3180.7)
OPENCL GPU #0 01:00.0 AMD Radeon Graphics (Iceland) 1024 MHz cu:6 mem:1515/2037 MB
CUDA disabled
[2021-02-18 12:33:41.373] net use pool xmr.f2pool.com:13531 127.0.0.1
[2021-02-18 12:33:41.373] net new job from xmr.f2pool.com:13531 diff 32768 algo rx/0 height 2299276
[2021-02-18 12:33:41.373] cpu use argon2 implementation AVX2
[2021-02-18 12:33:41.377] msr register values for "intel" preset have been set successfully (3 ms)
[2021-02-18 12:33:41.377] randomx init dataset algo rx/0 (3 threads) seed b353f283ee2e4460...
[2021-02-18 12:33:41.530] randomx failed to allocate RandomX dataset using 1GB pages
[2021-02-18 12:33:41.550] randomx allocated 2336 MB (2080+256) huge pages 100% 1168/1168 +JIT (174 ms)
[2021-02-18 12:33:51.659] randomx dataset ready (10109 ms)
[2021-02-18 12:33:51.659] cpu use profile rx (3 threads) scratchpad 2048 KB
[2021-02-18 12:33:51.660] opencl use profile rx (2 threads) scratchpad 2048 KB
| # | GPU | BUS ID | INTENSITY | WSIZE | MEMORY | NAME
| 0 | 0 | 01:00.0 | 64 | 8 | 128 | AMD Radeon Graphics (Iceland)
| 1 | 0 | 01:00.0 | 64 | 8 | 128 | AMD Radeon Graphics (Iceland)
[2021-02-18 12:33:51.662] cpu READY threads 3/3 (3) huge pages 100% 3/3 memory 6144 KB (3 ms)
[2021-02-18 12:33:52.454] opencl error CL_MEM_OBJECT_ALLOCATION_FAILURE when calling clCreateBuffer with
[2021-02-18 12:33:52.462] opencl error CL_MEM_OBJECT_ALLOCATION_FAILURE when calling clCreateBuffer with
[2021-02-18 12:33:52.480] opencl thread #0 failed with error RandomX dataset is not available
[2021-02-18 12:33:52.482] opencl thread #1 failed with error RandomX dataset is not available
[2021-02-18 12:33:52.484] opencl thread #0 self-test failed
[2021-02-18 12:33:52.486] opencl thread #1 self-test failed
[2021-02-18 12:33:52.486] opencl disabled (failed to start threads)
  1. 关于一台机器多个opencl设备以及opencl的平台和设备之间关系的,可以参考下面这篇文章
    https://streamhpc.com/blog/2015-08-14/opencl-basics-multiple-opencl-devices-with-the-icd/

综合起来就是:一个platform下面可以对一个多个设备,另外一个设备可以有多个Opnecl实现(例如苹果就比较牛叉,自己给设备实现一套而不是厂商实现) ,还有就是平台和设备的Opencl版本可以不一样.

下一步测试一下在UOS V20 (5.4kerne,非标准4.19内核)桌面上搞一把intel核显的Opencl环境,希望能搞起.

Intel核心新显卡的opencl配置

  1. 官网

https://github.com/intel/compute-runtime

安装方法参考
https://github.com/intel/compute-runtime/releases/tag/21.06.18993

  1. 直接下载编译好的包安装就完全完事
cd neo
wget https://github.com/intel/compute-runtime/releases/download/21.06.18993/intel-gmmlib_20.3.2_amd64.deb
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.6087/intel-igc-core_1.0.6087_amd64.deb
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.6087/intel-igc-opencl_1.0.6087_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/21.06.18993/intel-opencl_21.06.18993_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/21.06.18993/intel-ocloc_21.06.18993_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/21.06.18993/intel-level-zero-gpu_1.0.18993_amd64.deb
  1. 由于门罗币的挖矿算法就没说支持Intel核心显卡,所以用intel 核心显卡来挖矿就成为了不可能
    https://github.com/tevador/RandomX
SChernykh is developing GPU mining code for RandomX. Benchmarks are included in the following repositories:

 - CUDA miner - NVIDIA GPUs. OpenCL miner - only for AMD Vega and AMD
 - Polaris GPUs (uses GCN machine code).

但是我还是尝试跑了一下,由于装上了intel 的Opencl环境,就有2个platform ,2个device ,运行挖矿程序的时候需要指定一下,门罗币这个挖矿程序还挺好,提供了命令行参数

actionchen@actionchen-PC:/tmp$ clinfo -l
Platform #0: Intel(R) OpenCL HD Graphics
 `-- Device #0: Intel(R) Graphics [0x9b41]
Platform #1: AMD Accelerated Parallel Processing
 `-- Device #0: Iceland

sudo ./xmrig -x 127.0.0.1:1089 -o xmr.f2pool.com:13531 -u 487oBceUnMnDAM9Fmk8UHu49g7SyKmdaXW3UUYVib7rmj8RbesS812BUQd9p2aJ2p8LYRs3raUsaxBR4NX1rxqRYV9CeSdb.001 -p x -k  --randomx-init=3  --opencl --opencl-platform=0 --no-cpu 

估计是公司的防火墙做了加固,直接连鱼池是连不上的,直接reset了,所以挂个代理出去.

执行这个后运行到opencl的代码时候会报错退出.我也不知道是我安装的intel opencl二进制包的兼容性问题还是确实是因为挖矿程序生成的Opencl代码绑定了AMD显卡的特定接口.反正核显挖menluo币矿也失败了.

* ABOUT        XMRig/6.8.2 gcc/8.3.0
 * LIBS         libuv/1.40.0 OpenSSL/1.1.1i hwloc/2.4.0
 * HUGE PAGES   supported
 * 1GB PAGES    disabled
 * CPU          Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz (1) 64-bit AES
                L2:1.0 MB L3:6.0 MB 4C/8T NUMA:1
 * MEMORY       7.2/7.3 GB (98%)
                DIMM_A0: 8 GB DDR4 @ 2667 MHz HMAA1GS6CMR6N-VK    
                ChannelB-DIMM0: <empty>
 * MOTHERBOARD  LENOVO - LNVNB161216
 * DONATE       0%
 * ASSEMBLY     auto:intel
 * POOL #1      xmr.f2pool.com:13531 algo auto
 * COMMANDS     hashrate, pause, resume, results, connection
 * ADL          press e for health report
 * OPENCL       #0 Intel(R) OpenCL HD Graphics/OpenCL 3.0 
 * OPENCL GPU   #0 n/a Intel(R) Graphics [0x9b41] 1100 MHz cu:24 mem:2985/5971 MB
 * CUDA         disabled
[2021-02-18 16:43:55.498]  net      use pool xmr.f2pool.com:13531  127.0.0.1
[2021-02-18 16:43:55.498]  net      new job from xmr.f2pool.com:13531 diff 32768 algo rx/0 height 2299400
[2021-02-18 16:43:55.498]  cpu      use argon2 implementation AVX2
[2021-02-18 16:43:55.502]  msr      register values for "intel" preset have been set successfully (5 ms)
[2021-02-18 16:43:55.502]  randomx  init dataset algo rx/0 (3 threads) seed b353f283ee2e4460...
[2021-02-18 16:43:55.687]  randomx  allocated 2336 MB (2080+256) huge pages 100% 1168/1168 +JIT (184 ms)
[2021-02-18 16:44:06.028]  randomx  dataset ready (10341 ms)
[2021-02-18 16:44:06.028]  opencl   use profile  rx  (1 thread) scratchpad 2048 KB
|  # | GPU |  BUS ID | INTENSITY | WSIZE | MEMORY | NAME
|  0 |   0 |     n/a |       384 |     8 |    768 | Intel(R) Graphics [0x9b41]
[2021-02-18 16:44:11.827]  opencl   READY threads 1/1 (4442 ms)
[2021-02-18 16:44:25.621]  net      new job from xmr.f2pool.com:13531 diff 32768 algo rx/0 height 2299401
Abort was called at 126 line in file:
../neo/opencl/source/os_interface/linux/drm_command_stream.inl
已放弃

小结

笔记本辣鸡显卡和CPU核心显卡都没法挖ML(menluo)币,优化之路到此为止了.

另外,记录下怎么开1GB的大页面,按照挖矿软件官网运行那个脚本没用,开启方法是在系统启动的grub里给内核传参数 hugepagesz=1GB hugepages=3 ,这个1GB页面文件是否能开启成功和CPU还有关系
检查方法如下,如果硬件不支持估计也是开不了的:

cat /proc/cpuinfo | egrep -o pdpe1gb | head -n 1

另外,详细信息可以参考权威文档:
https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt

<think>好的,我现在需要帮助用户了解如何在UOS系统安装配置CUPS-PDF。首先,我得确认用户的需求。用户可能想要在UOS(统信操作系统)上设置一个虚拟打印机,这样可以将文档打印成PDF文件。CUPS-PDF是一个常用的工具,它通过CUPS(通用Unix打印系统)实现这一功能。 首先,我应该回忆一下UOS的基础知识。UOS是基于Debian的,所以包管理应该使用apt。但可能需要先启用root权限或者使用sudo。不过,UOS可能有自己的软件中心或包管理工具,不过用户如果使用终端的话,可能更倾向于使用apt命令。 接下来,安装CUPS-PDF。通常的步骤是更新软件源,然后安装cups-pdf包。但需要确认这个包在UOS的仓库中是否存在。假设存在的话,命令应该是sudo apt update && sudo apt install cups-pdf。不过,可能需要先安装CUPS本身,如果系统尚未安装的话。不过大多数Linux发行版默认安装了CUPS,但UOS可能不同,特别是如果是企业定制版的话。所以可能需要先安装cups,然后再安装cups-pdf。 安装完成后,需要配置CUPS。用户可能需要访问CUPS的网页管理界面,通常是http://localhost:631。但需要确保用户有权限,可能需要将用户加入lpadmin组。命令可能是sudo usermod -aG lpadmin 用户名。不过不同系统可能有差异,需要确认UOS的组设置是否正确。 然后,在CUPS界面中添加打印机。用户需要找到CUPS-PDF虚拟打印机,并设置为默认。或者通过命令行配置。另外,可能需要检查配置文件/etc/cups/cups-pdf.conf,设置输出路径,比如改成用户的主目录下的某个文件夹,比如/home/用户名/PDF。需要提醒用户修改这个路径,否则默认可能在/var/spool/cups-pdf/下,权限可能有问题。 另外,安装后可能需要重启CUPS服务,命令是sudo systemctl restart cups。或者UOS使用systemctl还是service,需要确认,但大多数现在用systemctl。 还可能遇到权限问题,比如输出目录的权限是否正确,用户是否有写入权限。如果用户无法生成PDF,可能需要检查日志,比如/var/log/cups/error_log,或者使用tail -f来实时查看。 最后,测试打印,可以使用一个测试页,比如用libreoffice写个文档,或者用命令行工具如lp或lpr打印一个文本文件,看是否生成PDF。 可能的错误点包括:软件包不可用,需要添加第三方仓库;用户权限问题,未加入正确的组;CUPS服务未启动;防火墙阻止了CUPS的端口;配置文件路径错误等。需要一步步引导用户检查这些方面。 总结步骤应该是:安装软件包,配置用户权限,调整CUPS-PDF设置,重启服务,测试打印。同时提醒用户注意配置文件中的输出路径和权限设置。</think>以下是在统信UOS系统安装配置CUPS-PDF的详细步骤: --- ### **一、安装CUPS-PDF** 1. **更新软件源** ```bash sudo apt update ``` 2. **安装CUPS(如未预装)** ```bash sudo apt install cups ``` 3. **安装CUPS-PDF包** ```bash sudo apt install cups-pdf ``` --- ### **二、配置用户权限** 1. 将当前用户加入`lpadmin`组以管理打印机: ```bash sudo usermod -aG lpadmin $USER ``` 2. **重启服务**使配置生效: ```bash sudo systemctl restart cups ``` --- ### **三、修改CUPS-PDF输出路径** 1. 打开配置文件: ```bash sudo nano /etc/cups/cups-pdf.conf ``` 2. 找到`Out`参数,修改为自定义路径(例如用户目录): ```ini Out ${HOME}/PDF ``` 3. **保存退出**后,创建输出目录并设置权限: ```bash mkdir ~/PDF chmod 755 ~/PDF ``` --- ### **四、通过CUPS网页管理界面配置** 1. 访问 `http://localhost:631`,进入CUPS管理页面。 2. 点击 **Administration > Add Printer**。 3. 选择 **CUPS-PDF Virtual Printer**,按提示完成安装(驱动可选`Generic PDF`)。 4. 设置该打印机为默认(可选)。 --- ### **五、测试打印功能** 1. **命令行测试**: ```bash echo "Test Content" > test.txt lp -d CUPS-PDF test.txt ``` 2. 检查输出目录是否生成PDF文件: ```bash ls ~/PDF ``` --- ### **六、常见问题排查** 1. **权限问题**: - 确保输出目录权限:`chmod 755 ~/PDF` - 确认用户已加入`lpadmin`组。 2. **服务状态检查**: ```bash systemctl status cups ``` 3. **查看日志**: ```bash tail -f /var/log/cups/error_log ``` --- ### **七、补充说明** - **图形界面操作**:可通过UOS“打印设置”工具添加CUPS-PDF打印机。 - **防火墙**:若使用远程访问,需开放631端口(默认本地访问无需配置)。 完成上述步骤后,即可在UOS系统中通过任意应用程序选择“CUPS-PDF”打印机生成PDF文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值