現在位置: ホーム / みらくるブログ / IntelのCPU用OpenCLランタイムをUbuntu 15.10で使う

IntelのCPU用OpenCLランタイムをUbuntu 15.10で使う

IntelのOpenCLランタイムは、CPUをデバイスにできるのでOpenCLを特別なH/Wなしで試したい場合に役立ちます。しかし、CentOS用のRPM版パッケージのみが提供されています。人気LinuxディストリビューションのひとつであるUbuntuは、パッケージ管理がRPMベースでないため、Ubuntuでの使用には少し工夫が必要です。本稿では、Ubuntu 15.10上でIntel OpenCLのCPUランタイムをインストールする方法を紹介します。
本稿は、ある種のHackネタであり、動作を保証するものではないですYO!

OpenCL実行環境の調べ方

$ clinfo
Number of platforms                               0

上記のようにclinfoコマンドで調べることができます。この例では、使用できるプラットホームが0(すなわち、ない)と表示されています。

ランタイムの入手

以下のインテルのサイトから、「Download」「Download the driver」「OpenCL™ Runtime 14.2 for Intel® CPU and Intel® Xeon Phi™ Coprocessors for Linux* (64-bit)」と順次リンクをたどることで、opencl_runtime_14.2_x64_4.5.0.8.tgzというファイルを入手できます。

https://software.intel.com/en-us/intel-opencl

Ubuntu環境へのインストール

以下の説明では、バージョン部4.5.0.8.を、適宜ダウンロードしたものに置き換えてください。

$ cd ~
$ tar xvf opencl_runtime_14.2_x64_4.5.0.8.tgz
$ rpm2cpio pset_opencl_runtime_14.1_x64_4.5.0.8/rpm/opencl-1.2-base-4.5.0.8-1.x86_64.rpm | cpio -id
$ rpm2cpio pset_opencl_runtime_14.1_4.5.0.8/rpm/opencl-1.2-intel-cpu-4.5.0.8-1.x86_64.rpm | cpio -id

これで、ホームディレクトリのopt/intel以下にランタイムがコピーされました。次いで、ランタイムがICDローダーに認識されるように設定します。

$ sudo mkdir -p /etc/OpenCL/vendors
$ echo -n ~/opt/intel/opencl-1.2-4.5.0.8/lib64/libintelocl.so | sudo tee /etc/OpenCL/vendors/intel64.icd

また、以下のライブラリに依存するのでインストールしておきます。

$ sudo apt-get install libnuma1

この状態で、clinfoを実行すると、次のように動作していることがわかります。

$ clinfo
Number of platforms                               1
  Platform Name                                   Intel(R) OpenCL
  Platform Vendor                                 Intel(R) Corporation
  Platform Version                                OpenCL 1.2 LINUX
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_icd cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_
addressable_store cl_khr_spir cl_intel_exec_by_local_thread cl_khr_depth_images cl_khr_3d_image_writes cl_khr_fp64
  Platform Extensions function suffix             INTEL

  Platform Name                                   Intel(R) OpenCLNumber of devices                                 1
  Device Name                                     Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz
  Device Vendor                                   Intel(R) Corporation
  Device Vendor ID                                0x8086
  Device Version                                  OpenCL 1.2 (Build 8)
  Driver Version                                  1.2.0.8
  Device OpenCL C Version                         OpenCL C 1.2
  Device Type                                     CPU
  Device Profile                                  FULL_PROFILE
(以下省略)
上記の例では、ホームディレクトリの下にランタイムライブラリを展開して、そのまま使用しています。システム全体で使用する場合には、/optなどに移動したほうが便利でしょう。その際、/etc/OpenCL/vendors/intel64.icdの中のパスを変更することにも留意してください。

付録:OpenCLプログラムのビルド用ヘッダ・ライブラリのインストール

なお、Intelは、OpenCLを使用するプログラムをビルドするためのヘッダ・ライブラリ(いわゆるSDK)も提供していますが、基本的には、Ubuntuの標準パッケージを使ってビルドすることができます。

$ sudo apt-get install ocl-icd-opencl-dev
タグ: