ubuntu opencl ubuntu官网镜像下载

本篇文章给大家谈谈ubuntu opencl,以及ubuntu官网镜像下载对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

OpenCL-01: PoCL环境配置

PoCL是基于MIT许可的开源OpenCL实现,专为多设备系统优化,通过集成具有OpenCL功能的设备,提升平台多样性与互操作性。PoCL支持广泛的CPU架构(x86、ARM、RISC-V)与GPU,如通过libCUDA的NVIDIA设备,利用Level Zero的Intel GPU及不同功能等级的TCE ASIP(OpenASIP)。

在wsl2环境上,Ubuntu20.04用于安装pocl。对于其他框架的安装,则是可选的。使用工具clinfo运行测试。

OpenCL-ICD-Loader是一个关键中间库,实现OpenCL应用程序与特定硬件厂商的OpenCL驱动之间的隔离。将文件夹OpenCL-Headers-2023.04.17/CL复制至OpenCL-ICD-Loader-2023.04.17/inc进行源码编译。使用vscode、wsl与cmake作为编译工具,参考edgelee的vscode-opencl-samples进行实施。

最后,要实现设备查询的具体步骤,参考edgelee的vscode-opencl-samples 02-opencl-icd-device,并根据运行结果进行相关测试与调试。这将为您提供有关设备的详细信息,确保OpenCL应用程序在不同硬件上运行时的兼容性和性能。

Ubuntu上CUDA/OpenCL开发环境的更新

目前大部分OpenCL程序都采用2.0标准,而个人环境仍使用1.0标准,因此需要进行更新。

首先,需要安装新版Nvidia驱动程序。使用以下命令查询可安装的驱动程序:

安装命令为:

安装完成后,重启计算机。重启后,键入以下命令可查询到当前安装的驱动程序版本:

接下来,按照Nvidia公司的说明,下载并安装新版CUDA Toolkit。进入下载官网,选择Linux- x86_64- Ubuntu 22.05- deb(local)后,按照以下安装指令进行操作:

更新环境变量。在.bashrc文件中增加以下内容:

将上述变量载入后,键入"nvcc-V"。如果能够正确显示更新后的版本号,则表明安装成功。

OpenCL已预装在CUDA Toolkit中,无需其他操作。可以使用以下命令确认(如果没有安装clinfo,先使用以下命令安装:sudo apt install clinfo):

如果Number of platforms数为零,则表示不支持OpenCL。

需要注意的是,预装的OpenCL不包含C++对应功能。若要使用OpenCL C++功能,需要下载OpenCL C++头文件。在下载的文件中,只需包含include/CL文件夹中的两个头文件。为了方便,通常将这些文件直接拷贝到/usr/local/cuda/include/CL文件夹下。

CUDA Visual Profile是CUDA自带的程序优化测试工具。该程序对Java版本有要求,需要是Oracle JRE 1.8或OpenJDK JRE 1.8。然而,目前Ubuntu 22.04.2 LTS的默认版本为1.11。可以通过以下命令确认:

如果安装的版本不符合要求(可以通过键入java--version来确认),则无法启动该程序。在这种情况下,需要另外安装版本8。

为了安全起见,首先确认一下可以安装的Java版本:

如果openjdk-8-jdk出现在上述显示中,就可以安装版本8了。

安装完成后,可以通过以下命令调用nvvp:

当然,如果您将openjdk-8-jdk设置为默认版本,可以直接键入nvvp。

OpenCL安装过程记录

大创项目接近尾声,决定尝试学习和使用OpenCL进行开发。在搜索安装教程时,发现大多数资料针对的是CUDA Toolkit或直接提供文件复制方式,针对Linux系统的Khronos SDK教程则主要面向Windows用户。考虑到自己对编程基础的熟练程度,决定亲自完成安装过程并记录下来,以供后来者参考。

安装环境为Ubuntu 22.04 LTS(基于Linux 5.19),使用GCC版本11.3.0、CMake版本3.22.1。

首先,从Khronos官方获取OpenCL SDK源代码。理论上,可以使用Git进行克隆,但实际情况中遇到了GitHub网络不稳定的问题。建议在稳定网络环境下使用Git或通过第三方下载工具辅助下载源代码。同时,注意SDK将某些必需文件设置为子项目(如OpenCL-SDK/external/OpenCL-Headers),需要进入子项目手动下载。

在终端中切换到下载目录,并执行CMake。配置过程会自动检测并提示缺失的依赖项,尝试自动安装。在安装过程中,遇到了OpenGL、doxygen、X11_X11_LIB等依赖需要手动通过apt安装。

解决完依赖项后,理论上可进行编译。在终端中运行CMake并指定安装目录。编译完成后,OpenCL库被安装到电脑中。

接下来,配置可执行文件的依赖。在/etc/ld.so.conf.d目录下创建一个opencl.conf文件,写入安装目录下的动态库路径,如在/opt/OpenCL下,则动态库路径应为/opt/OpenCL/lib。使用Vim编辑器打开并保存文件。执行ldconfig命令以应用配置。

解决编译器问题。可以简单地将/opt/OpenCL/lib和/usr/include中的内容复制到相应目录,以避免手动指定链接库。更复杂的方法是修改gcc的specs文件,使编译器不再需要-lOpenCL选项。不过,这种方法较为繁琐,本文不作深入讨论。

通过符号链接解决编译器依赖问题。运行ln命令创建链接,使得编译器可以访问/usr/lib/CL/...,实际内容仍存储在/opt/OpenCL中。在编译时仍然需要添加-lOpenCL选项。

至此,OpenCL的安装配置已完成。尝试编写一段测试代码以验证环境是否正常工作。测试代码输出CL_DEVICE_EXTENSIONS中的内容,以了解设备的扩展支持情况,例如是否支持双精度浮点数(cl_khr_fp64)。

总结代码示例及其编译选项,确保测试代码能够正确执行,验证OpenCL环境配置是否正确。至此,通过详细的步骤记录,为希望学习和使用OpenCL的开发者提供了清晰的安装和配置指南。

阅读剩余
THE END