3. Chainer for K 富岳環境

3.1. LICENSE条項

提供したパッチおよび手順はOSSに提供(Upstream化)予定であり、Upstream化された際はChainer分はMITライセンスに準拠します。

3.2. バージョン (checkout.sh参照のこと)

  • Chainer ver.4.5.0

    • ChainerMN ver.1.3.1

    • ChainerK ver.1.1.0

  • Python ver.3.8.2

    • mpi4py ver.3.0.3

3.3. 構成

/vol0001/apps/oss/ChainerK-4.5.0/
  bin: 実行バイナリ
  lib: ライブラリ
    lib/python3.8/site-packages: ChainerなどPython module一式
  include: インクルードファイル
  build: 構築に必要なscript, patch類
  example: MNIST, ResNet-50実行例

3.4. 構築方法

build以下をご参照下さいませ。$PATHなどは適時修正が必要です。構築に1時間程度かかります。

./checkout.sh
pjsub go.sh

配置したものは、コンパイルオプションを調整しておりますが、Python本体の構築がタイムアウトします。一度-O3で構築して、タイムアウトする箇所をコメントアウトして、上書きすることで同じ環境を構築できます。

3.5. 実行方法

本環境一式は、$PATHを通すことでどこに配置しても実行できます。Python moduleはfile数が多いため、多並列では、MDSアクセス高負荷のためimportlibの時間がかかることが想定されます。利用手引き書の,8.2.4.2. 共通ファイル配布のヒントを参考に,必要な共通ファイルをllio_transferで転送するか,tarなどで固めてllio_transferで転送し展開することでステージングによる利用が可能です。

exampleの下にMNIST,イメージ読み込み有り無しのResNet-50の実行例が、ございます。ご参照下さいませ。

pjsub go.sh

で実行できます。$PREFIXを指定した時の実行に必要な、環境変数は以下の通りです。

TCSDS=1.2.27b                         : 言語環境の指定
export PREFIX=${PWD}/../..            : 本環境をインストールしてあるパスの設定

# System Enironment
module switch lang/tcsds-${TCSDS}    : 最新shared object読み込みに必要
export LD_LIBRARY_PATH=${PREFIX}/lib:${LD_LIBRARY_PATH}
export PATH=${PREFIX}/bin:${PATH}     : python3のパス

実行結果をlogの中に入れています。2.2GHzのインタラクティブモードで実行した結果です。ただし、多ノードでは実行できなかったため、前バージョンの結果を置いています。

3.6. 注意

高速化のためにR-CCSで作製したカーネルライブラリを使用しています。現段階で画像認識などで使用される基本的な処理の高速化しかサポートしておりません。このため、使用するネットワークによっては、高速で動作しない可能性もございます。

高速化の要望は、使用するネットワークスクリプトをご呈示の上、利用者アカウントのサポートデスクへ御願い致します。対応に数ヶ月を要することもございますのでご了承下さいませ。

3.7. 履歴

  • 2020/09/12(土) tcsds-1.2.26bで構築公開

  • 2020/09/20(日) tcsds-1.2.26bで構築更新

    • maxpooing3dにて、-∞発生時の例外処理を追加

    • ChainerKライブラリのimg2colのOpenMP無効化

  • 2020/10/27(月) tcsds-1.2.27bで構築更新

    • largepageでの実行例の追加

    • fapp、fapp、PA取得時の例を追加

    • 実行スクリプトの調整

  • 2021/10/15(金) ドキュメント公開(Ver.1.0)

  • 2021/12/07(火) ドキュメントアップデート(Ver.1.1) LLIO使用を推奨