Intel classic compiler のオプション
Intel classic compiler の -ipp
とか -mkl
) といったオプションは deprecated とされ、最近は -qipp
とか -qmkl
に移行している(ipp のドキュメントに"Alternate Options: Linux: -qipp (this is a deprecated option)" とあるのはおそらくミス)。一方、q
つきのオプションは古いバージョンのコンパイラには存在しない(少なくとも 2021.3.0 にはない)ため、現状では q
が付かないほうが互換性が高いが、将来のバージョンで q
なしを認識しなくなったらまた壊れる。もっとも、classic compiler 自体が deprecated で 2023 年後半には oneAPI HPC toolkit から消える予定だが。
Intel compiler (新しいほう: icpx) と GCC
一方、SYCL のコンパイルなどに用いる新しいほうの Intel compiler は LLVM ベースとなっており、C++ ヘッダなどは g++ のものを使う。システムに入っている gcc を自動で検出し最新のものを使うが、最新バージョンは gcc だけ入っていて g++ がないといった場合、低いバージョンで gcc も g++ も揃っているものを自動では探してくれない。また conda 由来の gcc/g++ は、PATH
が通っていてもうまく検出してくれなかった。"Fatal Error: 'C++ Header' File Not Found with Intel® oneAPI DPC++/C++ Compiler" に、gcc のパスを明示する方法が書いてあるが、conda environment のトップなどではない。icpx -help
に
The directory ends with path components like 'lib{,32,64}/gcc{,-cross}/$triple/$version'. Note: executables (e.g. ld) used by the compiler are not overridden by the selected GCC installation
とあるように、奥の方のフォルダを指定する必要がある。具体的には、
icpx test.cpp --gcc-install-dir=/path_to_conda_env/lib/gcc/x86_64-conda-linux-gnu/12.2.0
で動いた。
conda-forge を使う
Anaconda の main レポジトリは ToS が厳しいので使いたくない。Miniconda ならデフォルトでそれを参照しないと思っていたのだが、そうでもないようなのでここにしたがって設定変更。
$ conda config --show channels channels: - defaults $ conda config --show default_channels # あかんやつ default_channels: - https://repo.anaconda.com/pkgs/main - https://repo.anaconda.com/pkgs/r $ conda config --add channels conda-forge $ conda config --set channel_priority strict
これでいいはず。
読んだ
PC watch "Core i9-14900KF、9,043.92 MHz のクロック世界新記録"
液体窒素ならまだしも、液体ヘリウムで -243 度にするとか常軌を逸している。まあ、実用性度外視のスポーツなんだろうけど。PC watch "ボットでないなら 1 ドル払え —— X(Twitter)、2 カ国の新規ユーザーに課金テスト"
どうしてここまで躍起になって bot を排除しようとするのか分からない。PC watch "速さに限界はない。本日発売の Core i9-14900K の性能を確かめた"
AMD に比べて勝ってるのもあれば負けているのもあり、Intel 13 世代との差もあまり大きくない。