LoginSignup
75
55

More than 3 years have passed since last update.

無料になったIntel compilerをCentOS8にインストールしてみる

Last updated at Posted at 2021-04-14

 インテルのoneAPIのニュースとかは見ている方も多いかと思いますが、この流れで一番大きなインパクトは今まで高嶺の花だったIntel compilerが2021年になってから実質的に無料になってしまったということです。こうでもしないとNVIDIA1には対抗できないってことなんでしょうけど、このディープラーニングの思わぬ副産物に対して従来型HPCユーザーも恩恵にあずからずにいるわけにはいかないでしょう。
 とりあえずCentOS8へのyum (dnf)を使ったインストールはとても簡単だったので、手順を紹介することにします。とりあえず本家のガイドはこちらから。やるのはyumのリポジトリを作ってinstallコマンドを打つだけです(root権限で行います)。

yumでBase kitを入れる

 /etc/yum.repos.d/oneAPI.repoを以下の内容で作ります

[oneAPI]
name=Intel(R) oneAPI repository
baseurl=https://yum.repos.intel.com/oneapi
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB

リダイレクトとかやるよりviか何かでコピペしてしまった方が簡単でしょう。
 あとは単に

# yum install intel-basekit

5回ぐらいyを叩くと(それなりにでかいのですが)インストールが始まります。

インストールされたものを使うには(こちらは一般ユーザー権限で)

$ . /opt/intel/oneapi/setvars.sh

とします。この段階でicx(C言語)とicpx(C++)のコンパイラが利用可能になりますが、これは昔チョットお付き合いしたことのあるicc/icpcとは別系統なコンパイラのようです。

$ mpiicpc --help
/opt/intel/oneapi/mpi/2021.2.0//bin/mpiicpc: 行 530: icpc: コマンドが見つかりません

こんなことにもなったり。

HPC kitを入れて古いコンパイラも入れる

 実は古い方のコンパイラはoneAPI HPC Toolkitに含まれるintel-oneapi-compiler-dpcpp-cpp-and-cpp-classicというパッケージの方で提供されているようです。インストールするには

# yum install intel-hpckit

 こんな感じで以後

$ icpc --version
icpc (ICC) 2021.2.0 20210228
Copyright (C) 1985-2021 Intel Corporation.  All rights reserved.

$ icpx --version
Intel(R) oneAPI DPC++ Compiler 2021.2.0 (2021.2.0.20210317)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/intel/oneapi/compiler/2021.2.0/linux/bin

のようになれば成功です。


ログ置き場

Basekitでは以下のものが入りました(3 column):

インストール済み:
  intel-basekit-2021.2.0-2883.x86_64                                              intel-basekit-getting-started-2021.2.0-2883.noarch                               intel-oneapi-advisor-2021.2.0-189.x86_64
  intel-oneapi-ccl-2021.2.0-2021.2.0-269.x86_64                                   intel-oneapi-ccl-devel-2021.2.0-2021.2.0-269.x86_64                              intel-oneapi-ccl-devel-2021.2.0-269.x86_64
  intel-oneapi-common-licensing-2021.2.0-195.noarch                               intel-oneapi-common-licensing-2021.2.0-2021.2.0-195.noarch                       intel-oneapi-common-vars-2021.2.0-195.noarch
  intel-oneapi-compiler-cpp-eclipse-cfg-2021.2.0-610.noarch                       intel-oneapi-compiler-dpcpp-cpp-2021.2.0-2021.2.0-610.x86_64                     intel-oneapi-compiler-dpcpp-cpp-2021.2.0-610.x86_64
  intel-oneapi-compiler-dpcpp-cpp-common-2021.2.0-2021.2.0-610.noarch             intel-oneapi-compiler-dpcpp-cpp-runtime-2021.2.0-2021.2.0-610.x86_64             intel-oneapi-compiler-dpcpp-eclipse-cfg-2021.2.0-610.noarch
  intel-oneapi-compiler-shared-2021.2.0-2021.2.0-610.x86_64                       intel-oneapi-compiler-shared-common-2021.2.0-2021.2.0-610.noarch                 intel-oneapi-compiler-shared-common-runtime-2021.2.0-2021.2.0-610.noarch
  intel-oneapi-compiler-shared-runtime-2021.2.0-2021.2.0-610.x86_64               intel-oneapi-condaindex-2021.2.0-94.x86_64                                       intel-oneapi-dal-2021.2.0-2021.2.0-358.x86_64
  intel-oneapi-dal-common-2021.2.0-2021.2.0-358.noarch                            intel-oneapi-dal-common-devel-2021.2.0-2021.2.0-358.noarch                       intel-oneapi-dal-devel-2021.2.0-2021.2.0-358.x86_64
  intel-oneapi-dal-devel-2021.2.0-358.x86_64                                      intel-oneapi-dev-utilities-2021.2.0-2021.2.0-493.x86_64                          intel-oneapi-dev-utilities-2021.2.0-493.x86_64
  intel-oneapi-dev-utilities-eclipse-cfg-2021.2.0-493.noarch                      intel-oneapi-dnnl-2021.2.0-228.x86_64                                            intel-oneapi-dnnl-devel-2021.2.0-228.x86_64
  intel-oneapi-dpcpp-cpp-2021.2.0-2021.2.0-610.x86_64                             intel-oneapi-dpcpp-ct-2021.2.0-2021.2.0-222.x86_64                               intel-oneapi-dpcpp-ct-2021.2.0-222.x86_64
  intel-oneapi-dpcpp-ct-eclipse-cfg-2021.2.0-222.noarch                           intel-oneapi-dpcpp-debugger-10.1.1-10.1.1-80.x86_64                              intel-oneapi-dpcpp-debugger-10.1.1-80.x86_64
  intel-oneapi-dpcpp-debugger-eclipse-cfg-10.1.1-80.noarch                        intel-oneapi-ipp-2021.2.0-2021.2.0-233.x86_64                                    intel-oneapi-ipp-common-2021.2.0-2021.2.0-233.noarch
  intel-oneapi-ipp-common-devel-2021.2.0-2021.2.0-233.noarch                      intel-oneapi-ipp-devel-2021.2.0-2021.2.0-233.x86_64                              intel-oneapi-ipp-devel-2021.2.0-233.x86_64
  intel-oneapi-ippcp-2021.2.0-2021.2.0-231.x86_64                                 intel-oneapi-ippcp-common-2021.2.0-2021.2.0-231.noarch                           intel-oneapi-ippcp-common-devel-2021.2.0-2021.2.0-231.noarch
  intel-oneapi-ippcp-devel-2021.2.0-2021.2.0-231.x86_64                           intel-oneapi-ippcp-devel-2021.2.0-231.x86_64                                     intel-oneapi-libdpstd-devel-2021.2.0-2021.2.0-245.x86_64
  intel-oneapi-libdpstd-devel-2021.2.0-245.x86_64                                 intel-oneapi-mkl-2021.2.0-2021.2.0-296.x86_64                                    intel-oneapi-mkl-common-2021.2.0-2021.2.0-296.noarch
  intel-oneapi-mkl-common-devel-2021.2.0-2021.2.0-296.noarch                      intel-oneapi-mkl-devel-2021.2.0-2021.2.0-296.x86_64                              intel-oneapi-mkl-devel-2021.2.0-296.x86_64
  intel-oneapi-mpi-2021.2.0-2021.2.0-215.x86_64                                   intel-oneapi-mpi-devel-2021.2.0-2021.2.0-215.x86_64                              intel-oneapi-onevpl-2021.2.2-2021.2.2-212.x86_64
  intel-oneapi-onevpl-devel-2021.2.2-2021.2.2-212.x86_64                          intel-oneapi-onevpl-devel-2021.2.2-212.x86_64                                    intel-oneapi-openmp-2021.2.0-2021.2.0-610.x86_64
  intel-oneapi-openmp-common-2021.2.0-2021.2.0-610.noarch                         intel-oneapi-python-2021.2.0-161.x86_64                                          intel-oneapi-tbb-2021.2.0-2021.2.0-357.x86_64
  intel-oneapi-tbb-common-2021.2.0-2021.2.0-357.noarch                            intel-oneapi-tbb-common-devel-2021.2.0-2021.2.0-357.noarch                       intel-oneapi-tbb-devel-2021.2.0-2021.2.0-357.x86_64
  intel-oneapi-tbb-devel-2021.2.0-357.x86_64                                      intel-oneapi-vtune-2021.2.0-263.x86_64

HPCkitで入ったのは以下になります(2 column):

インストール済み:
  intel-hpckit-2021.2.0-2997.x86_64                                                                                              intel-hpckit-getting-started-2021.2.0-2997.noarch
  intel-oneapi-clck-2021.2.2-2021.2.2-315.x86_64                                                                                 intel-oneapi-clck-2021.2.2-315.x86_64
  intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2021.2.0-2021.2.0-610.x86_64                                                   intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2021.2.0-610.x86_64
  intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-common-2021.2.0-2021.2.0-610.noarch                                            intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-runtime-2021.2.0-2021.2.0-610.x86_64
  intel-oneapi-compiler-dpcpp-cpp-classic-fortran-shared-runtime-2021.2.0-2021.2.0-610.x86_64                                    intel-oneapi-compiler-fortran-2021.2.0-2021.2.0-610.x86_64
  intel-oneapi-compiler-fortran-2021.2.0-610.x86_64                                                                              intel-oneapi-compiler-fortran-common-2021.2.0-2021.2.0-610.noarch
  intel-oneapi-compiler-fortran-runtime-2021.2.0-2021.2.0-610.x86_64                                                             intel-oneapi-inspector-2021.2.0-145.x86_64
  intel-oneapi-itac-2021.2.0-152.x86_64                                                                                          intel-oneapi-itac-2021.2.0-2021.2.0-152.x86_64

  1. 自社のGPUでしか動かないCUDAを有償提供にするとかTeslaでしかGPGPUできないようにするといったような有り得ない経営判断をするようなことのない会社だったというのが、今日の栄華の一旦ではあるのかと思います。ソフト部門に「自分で金稼いでこい」というハードウェア会社はやっぱ駄目々々だと思うんです。 

75
55
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
75
55