Linux上使用AMD的OpenCL开发运行环境

关于在Linux上使用AMD的OpenCL开发运行环境,我有如下重要更新:


1.Linux上OpenCL的开发运行环境包括两个部分,一是AMD的AMDSDKAPP开发包,另一部分是AMD的Catalyst驱动软件包.AMDSDKAPP开发包主要包括开发OpenCL应用所需要的头文件,文档和例子程序.Catalyst驱动包括OpenCL运行库,AMDGPU的私有驱动,一些工具软件
2.AMDSDKAPP的安装比较简单,这里就不细说了。其当前最新的版本是2.8.1,直接从
http://developer.amd.com/tools-and-sdks/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/downloads/#one下载64bit的版本
3.Catalyst驱动包由于其包括GPU驱动,直接依赖于操作系统,其安装稍微复杂些。用户可参考我如下的步骤和描述进行安装,以Fedora19为例
a)Fedora19是红帽最新的社区版Linux,由于其XServer的结构发生了一定变化,需要安装最新版本的Catalyst驱动包,即Catalyst13.6Beta版本.从http://www2.ati.com/drivers/beta/amd-driver-installer-catalyst-13-6-beta-x86.x86_64.zip下载
b)用unzip解压后运行amd-driver-installer-catalyst-13-6-beta-x86.x86_64.run文件,在图形界面菜单下选择“GenerateDistributionSpecificDriverPackage",而不要直接让这个界面进行安装,这点很重要,先产生rpm,然后用rpm安装工具进行安装,比较容易定位安装时出现的问题.接着在出现的操作系统选择菜单中选择"Redhat/RHEL6_64a"。图形界面运行的结果会在当前目录下产生一个名为fglrx64_p_i_c-13.101-1.x86_64.rpm的rpm包文件.下一部安装catalyst就是安装该rpm包.
c)执行“#>rpm-ihvfglrx64_p_i_c-13.101-1.x86_64.rpm"安装驱动.这一步中要做很多工作,包括编译和Linuxkernel版本一致的fglrx模块.第一次执行这个命令通常会失败,报告很多包依赖性问题.这时你需要用yum命令
从Fedora19的repository上安装依赖的包,通常既要求这些包的64bit的版本,也要求这些包的32bit的版本。这些包
在Fedora19的repository上都是有的,只要你的机器是连上网络的,你就可以直接安装这些包.通常如下这些包,特别是其32bit版本可能是需要而你当前的Fedora上是没有安装的(取决于用户安装Fedora的方式):libgcc,libstdc++,compat-libstdc++-3.0,libXext.你可用如下命令安装这些包,如以32bit的libgcc为例:
#>yuminstalllibgcc.i686
这里没法列出所有可能依赖的包,你需要根据rpm-ihvxxx.rpm报出的信息确定你需要装哪些包。所有需要的包装完后,"#>rpm-ihvfglrx64_p_i_c-13.101-1.x86_64.rpm"的执行就会成功了。执行成功后,你不再需要安装其他包.
d)到这一步,你就可测试一下你的catalayst驱动安装是否真正成功.方法是先运行"#>init3"切换到控制台模式,然后执行"#>aticonfig--adapter=all--initial"初始化XServer的配置文件.然后运行"#>init5"重新进入图形环境。如果能成功进入图形环境,说明你的安装是成功的,你可以用"#>clinfo"命令看一下能否有GPU设备被列出,也可用"#>glxgears"看一下安装catalayst驱动后openGL应用是否执行得快了很多(相对于open-source的Radeon驱动而言)
e)如果不能正常进入图形环境,说明你的安装是不成功的,这一般是由于你的Linux中kernel包和kernel-devel包的版本不一致,导致fglrx驱动没有编译成功造成的.你可以用"#>modinfofglrx"检查一下下有没有fglrx驱动。可进入/lib/modules/fglrx/build_mod目录下执行make.sh看看报什么错误.如果是kernel-devel包没安装,就要用"#>yuminstallkernel-devel"安装该包。如果是kernel包和kernel-devel包的版本不一致,则最简单的方法是运行"#>yumupdatekernel*"将这些Linuxkernel相关的包都升级到最新版本,然后重启机器后再执行"#>rpm-ihvfglrx64_p_i_c-13.101-1.x86_64.rpm"安装操作
f)在catalyst安装没成功的情况下,可在init3模式下用"#>rpm-efglrx64_p_i_c"删除已部分安装的内容,恢复开源的Radeon驱动,重新进行图形模式(以便你能使用无线网络连接).执行"#>rpm-ihvfglrx64_p_i_c-13.101-1.x86_64.rpm"在图形模式或init3模式都可以进行.

关于Linux上Catalyst驱动支持GPU设备的问题,我有如下更新:
1.在很多AMD的笔记本或台式机上都包括两个GPU设备(一个是AMDAPU所继承的GPU,一个是外置换的独立显卡GPU),用以进行openCL计算或openGL三维图形操作.以前的回贴中所提到的"在Linux图形环境下只能看到一个openCLGPU设备是不正确的",下面的描述进行更正.
2.在一般的比较本配置中,由于硬件或BIOS的限制,只能是用APU内置的GPU进行显示(由XServer进行framebuffer的访问和2D图形Rendering操作).这一点可以由aticonfig产生的/etc/X11/xorg.conf看出来。在我的Hp4436s,A10-4600M等笔记本上,XorgServer总是要使用PCI-0:1:0设备,即集成GPU进行显示,即使你强行设置成用独立GPU(PCI-1:0:0)也不行
3.在保留情况下,安装配置完catalyst驱动后,clinfo命令只能看到独立GPU,fglrxinfo命令也只能看到独立GPU,集成GPU被限制只用于显示,不能用于openCl计算和3D图形操作.
4.Catalyst包安装后提供了一个"CatalystControlCenter"的工具软件,用户运行该软件,在其图形界面下,在“3D/SwitchableGraphics"栏目下选择“Power-SavingGPUforimprovedbatterylife"然后重新启动机器(实际上是重新加载驱动并进入X环境).在重新启动的环境下,你可以看到clinfo能显示出两个openCLGPU设备,fglrxinfo也告诉有两个GPU能进行3D图形处理

你可能感兴趣的:(操作系统,运维)