最近对并行计算很感兴趣。不过搞MPI对我来说暂时没什么用,基于GPU的并行计算倒是挺实用。网上的资料都是CUDA的。实质上我对CUDA一点兴趣都没有。无论别人的架构多么先进,我这个只有AMD显卡的小孩都是旁观者而已。在这里记录一下一个opencl程序的编译过程。
    当然,首先要安装AMD-APP-SDK和AMD的显卡驱动。我的是linux系统加AMD显卡。我下APP的地址:http://developer.amd.com/Downloads/AMD-APP-SDK-v2.7-lnx64.tgz。
    搞定以后就可以开始写程序了。找到apple的一个例程:http://developer.apple.com/library/mac/#samplecode/OpenCL_Hello_World_Example/Listings/hello_c.html。
    当然,我这非苹果的系统直接用这个是不行的。需要把#include <OpenCL/opencl.h>改为#include <CL/opencl.h>。apple的头文件目录和其他的平台有区别的。
    好了,开始编译:
          g++ -L/opt/AMDAPP/lib/x86_64 -lOpenCL -I/opt/AMDAPP/include /home/delat2/mac_square.cpp -o /home/delat2/mac_square.cpp.o
    编译成功,运行看看。居然提示:Error: Failed to create a device group!看看代码,可以发现是clGetDeviceIDs这个函数返回了错误。google一下,得知

clGetDeviceIDs returns CL_SUCCESS if the function is executed successfully. Otherwise it returns the following:

CL_INVALID_PLATFORM if platform is not a valid platform.

CL_INVALID_DEVICE_TYPE if device_type is not a valid value.

CL_INVALID_VALUE if num_entries is equal to zero and device_type is not NULL or if both num_devices and device_type are NULL.
CL_DEVICE_NOT_FOUND if no OpenCL devices that matched device_type were found.

用switch case判断一下错误,说是CL_INVALID_PLATFORM。莫非我的APP-SDK还没装好?用/opt/AMDAPP/samples/opencl/bin/x86_64下的例程测试一下是可以的。google一下CL_INVALID_PLATFORM,找到了AMD的说明(http://developer.amd.com/support/KnowledgeBase/Lists/KnowledgeBase/DispForm.aspx?ID=71)。原来是新版本的SDK有几处修改。按照说明,clGetDeviceIDs的cl_platform_id参数不能为NULL。而获取platform_id的方法

cl_platform_id platform_id=NULL;

err=clGetPlatformIDs(1,&platform_id,NULL);

相应的clGetDeviceIDs改为

err = clGetDeviceIDs(platform_id, gpu ? CL_DEVICE_TYPE_GPU : CL_DEVICE_TYPE_CPU, 1, &device_id, NULL);

重新编译,运行就没出错了。

linux opencl(AMD) Example相关推荐

  1. Linux 系统安装 AMD 显卡官方驱动的方法

    前段时间笔记本系统切换成 Rocky Linux 9 ,出现的问题就是桌面环境偶尔卡死,只能强制重启,推测是 Linux 内核自带的开源AMD显卡模块 amdgpu 问题,所以就换成了官方的,用了一段 ...

  2. amd linux 性能,AMD与Intel大战 看谁峰值浮点性能更强

    Kaveri APU带来了推土机架构的第三个版本"压路机",而眼瞅着FX.Opteron系列更新无望,APU更是极有可能成为这一架构的唯一用武之地.那么,它的理论性能如何?所搭配的 ...

  3. linux越狱amd卡代码,为Linux内核贡献27.5万行代码中:AMD意外泄漏下一代APU信息

    原标题:为Linux内核贡献27.5万行代码中:AMD意外泄漏下一代APU信息 AMD在不经意间泄露了自家下一代APU的信息,其代号"Van Gogh(梵高)". 据外媒报道称,A ...

  4. apu 没有linux 驱动程序,AMD发布新LINUX版本驱动 全新APU能耗控制更加优秀

    (原标题:Linux驱动出现两代AMD APU新品:笔记本首上12nm) 在经历了1.2两代Ryzen 系列产品过后,AMD Ryzen处理器已经成为很多玩家装机时重要的选择之一.而就在近日,AMD再 ...

  5. amd cpu linux 驱动,AMD最新显卡Linux版催化剂驱动下载

    作者: 陈晨 2009-10-26/18:06 AMD昨天就发布了9.10版本的linux驱动,只是无法下载,更新说明也是无法查看.今天一切恢复正常,迫不及待的打开更新说明后发现9.10还是有一些亮点 ...

  6. amd linux 性能,AMD 780G芯片组Linux性能首测

    无论从哪方面讲,AMD 780G都堪称当今最出色的整合芯片组,3D性能.高清性能和功耗节能都做得相当出色,不过此前我们看到的都是该芯片组在Windows下的表现,到了Linux里又会如何呢? 首先驱动 ...

  7. amd 显卡 linux驱动程序,AMD Radeon/Mobility/FireGL系列显卡催化剂驱动8.6官方正式版For Linux x86/x64...

    简介 AMD Radeon/Mobility/FireGL系列显卡最新催化剂驱动8.6官方正式版For Linux x86/x64(2008年6月19日发布)AMD目前对Linux系统越来越重视,每月 ...

  8. linux centos amd显卡驱动,【14-12-04】 【分享】关于CentOS 7联想电脑AMD显卡驱动的问题...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Linux Distributions Supported: The latest version of the ATI Catalyst™ Linux ...

  9. 锐龙处理器可以运行Linux吗,AMD已下发新BIOS:修复三代锐龙游玩《命运2》和部分Linux系统兼容问题...

    AMD已下发新BIOS:修复三代锐龙游玩<命运2>和部分Linux系统兼容问题 2019年07月15日 09:52作者:王稀仕编辑:王伟铭文章出处:泡泡网原创 分享 上周,AMD正式发售锐 ...

最新文章

  1. java svn插件_Eclipse安装SVN插件
  2. 为什么数据库不应该使用外键?
  3. python configuration is still_通过Python配置关闭Release优化
  4. 6.Hibernate综述
  5. Icon class生成器(Python)
  6. 剑指offer之中判断二叉树是不是对称二叉树(递归和非递归实现)
  7. 歌谣对自己的“自勉“
  8. ivx中字体显示_iVX云服务费用优化 · 上篇
  9. php mail centos_centos怎么发送邮件
  10. python中swap函数_python swap
  11. jQuery实现滚动时动态加载页面内容
  12. [转]写一个块设备驱动(第一章)
  13. C# Excel 读写数据
  14. 英语发音规则---K字母
  15. 图benchmark
  16. 常用的ODI映射与过滤命令
  17. JNI 静态注册和动态注册
  18. TPAMI 2022|华为诺亚最新视觉Transformer综述
  19. Linux - 操作系统
  20. 2020年IDA插件大赛:DynDataResolver夺冠

热门文章

  1. 【转】图解phpstorm常用快捷键
  2. ASP.NET MVC 入门系列教程
  3. android手机设置时间设置,如何设置电信定制手机日期与时间
  4. linux init 7,Linux 之 init命令
  5. C++关于引用的注意事项 总结知识点
  6. 【CF#757A】Gotta Catch Em' All!
  7. 动手学PaddlePaddle(4):MNIST(手写数字识别)
  8. CS231n Convolutional Neural Networks for Visual Recognition------Scipy and MatplotlibTutorial
  9. python循环中的else_python 循环中else的简单示例
  10. 自定义菜单url不能带_微服务架构【SpringBoot+SpringCloud+VUE】五 || 实战项目微信公众号自定义开发...