zoukankan      html  css  js  c++  java
  • 【异构计算】在Windows下使用OpenCL配置

    前言

    目前,NVIDIA 和 AMD 的 Windows driver 均有支持OpenCL(NVIDIA 的正式版 driver 是从自195.62 版开始,而 AMD则是从9.11 版开始)。NVIDIA 的正式版 driver 中包含 OpenCL.dll,因此可以直接使用。AMD 到目前为止,则仍需要安裝其 SDK 才有 OpenCL.dll。不过,在最新的 SDK 中,NVIDIA 和 AMD 使用的 calling convention 是相同的。也就是说,使用 AMD 的 SDK编译的 OpenCL 程式,可以直接在 NVIDIA 的 driver 下运作。反过来也是一样。AMD 的 OpenCL SDK 是在 AMD Stream SDK 2.8.1里面。NVIDIA 的OpenCL SDK 則包括在最新的 CUDA 5.5 SDK 中。两个 SDK 可以同时安裝在同一部电脑中,基本上不会有冲突的问题。

    由于OpenCL SDK 的重点,只是在 header file 和程序库,因此设定上是很简单的。在 AMD 的 SDK 中,会建立一个环境 ATISTREAMSDKROOT。Header files 就在include 目录中,而程序库则在lib里面。NVIDIA 的 SDK 也是类似,有一个环境为NVSDKCOMPUTE_ROOT。不过,因办 NVIDIA 的 SDK 同时包括 CUDA 及 OpenCL,因此它的 header files 是在OpenCLcommoninc 目录里,而程序库是在OpenCLcommonlib 里面。

    由于程序库的部分,还有一点特別需要注意的是,AMD 和 NVIDIA 都有提供 32 bits 及 64 bits 的程序库,供32 bits 及 64 bits 的程序使用。NVIDIA 的 SDK 中,32 bits 的程序库是在lib 目录下的 Win32 目录里,而 64 bits 的则是在 x64 目录里。AMD 的 SDK 中,则分別是在 x86 及 x86_64 目录里。

    配置方法

    以下是使用 Visual Studio 2008 设定。

    NVIDIA 的 CUDA SDK:


    特別注意的是,因为 NVIDIA 的 SDK 在區分 32 bits 及 64 bits 版本程式庫所使用的目录名称(Win32 及 x64)和 Visual Studio 2008 內建的 $(PlatformName) 是一致的,因此可以直接使用。AMD 的 SDK 就要分別设定了。另外,如果使用的是 32 bits 的 SDK,則不包括 64 bits 的 library,因此路经就不需要再加上$(PlatformName)。

    AMD的SDK

     

    最后,把 OpenCL.lib 加到程序库里面就可以了(这点对两个SDK 都是一样的):

     

    最后再顺便提到一个地方。在 MacOS X 中,OpenCL 的 header是存在 OpenCL 目录中,也就是
    [plain] view plaincopyprint?
     
    1. #include <OpenCL/opencl.h>  
    但是在 Windows 下(以及可能所有其它的 OS 下),都是
    [cpp] view plaincopyprint?
     
    1. #include <CL/cl.h>  
    因此,如果想要让同一个程序,可以同时在各 OS 下都能编译的话,在 include ,写成:
    [cpp] view plaincopyprint?
     
    1. #ifdef __APPLE__  
    2.  #include <OpenCL/opencl.h>  
    3.  #else  
    4.  #include <CL/cl.h>  
    5.  #endif  
    这样就可以同时在 MacOS X  下,以及其它的 OS 下都能使用了。
    ===========================================================
    转载请注明出处:http://blog.csdn.net/songzitea/article/details/11096453
    ===========================================================
  • 相关阅读:
    第十二章 圆周率的计算问题分析
    第十一章:random库概述
    【模板】分治 FFT
    [PKUWC2018]Slay the Spire
    [PKUWC2018]随机算法
    [PKUWC2018]Minimax
    线段树合并初探
    平衡树初探
    Luogu P1613 跑路 题解报告
    CH138 兔子和兔子 题解报告
  • 原文地址:https://www.cnblogs.com/Zblogs/p/3385872.html
Copyright © 2011-2022 走看看