これらの指示は、Ubuntu 20.04にポップアートを構築していると想定しています。これらの指示は、必要なすべての依存関係をインストールする方法について説明します。既存のubuntu 20.04インストールから始めている場合は、これらの依存関係の一部をすでにインストールしている可能性があります。その場合、これらの依存関係のバージョンがこれらの指示と互換性があることを確認してください。他のLinuxベースのオペレーティングシステムも機能する可能性がありますが、パッケージ名とサポートされているパッケージのバージョンが異なる場合があります。
システムがすでにインストールされていない場合は、システムに次のツールをインストールする必要があります。
sudo apt-get install wget git -ysudo apt-get install python3-pip -y
ln -s /usr/bin/python3 /usr/bin/python注:システムにPython 2.xがインストールされている場合は、Symlinkを無視できます。
sudo apt-get install ninja-build -ysudo apt-get install pkg-config -yPopARTの構築と実行に必要なすべてのPython依存関係は、 requirements.txtにあります。txt。実行してそれらをインストールします
python3 -m pip install -r requirements.txt PopArtに貢献したい場合は、開発に追加の依存関係が必要です。これらはrequirements/dev.txtにあり、実行してインストールできます。
python3 -m pip install -r requirements/dev.txtPopArtは、システムで利用可能でなければならない多くのライブラリに対してコンパイルをコンパイルします。
Ubuntu 20.04( spdlog-dev )のSPDLOGライブラリのバージョンは、POPARTと互換性がありません。代わりに、ソースからバージョン1.8.0を構築する必要があります。これを行うには、選択したディレクトリで、SPDLog GitHubページからソースをダウンロードし、次のようにビルドおよびインストールしてください。
export SPDLOG_INSTALL_DIR= $( pwd ) /spdlog-1.8.0/install_dir/
git clone --branch v1.8.0 https://github.com/gabime/spdlog.git
cd spdlog && mkdir build && cd build
cmake .. -GNinja -DCMAKE_INSTALL_PREFIX= $SPDLOG_INSTALL_DIR && cmake --build . --target install注:後でSPDLOG_INSTALL_DIRの値が必要になります。
Ubuntu 20.04( pybind11-dev )のPybind11ライブラリのバージョンは2.4.3であり、PopARTと互換性がありません。代わりに、ソースからバージョン2.6.2を構築する必要があります。これを行うには、選択したディレクトリで、Pybind Githubページからソースをダウンロードし、次のようにビルドおよびインストールしてください。
export PYBIND11_INSTALL_DIR= $( pwd ) /pybind11-2.6.2/install_dir/
wget https://github.com/pybind/pybind11/archive/v2.6.2.tar.gz
tar xvfz v2.6.2.tar.gz
rm v2.6.2.tar.gz
pushd pybind11-2.6.2
mkdir build
mkdir install_dir
cd build
cmake ..
-DCMAKE_INSTALL_PREFIX= $PYBIND11_INSTALL_DIR
-GNinja
ninja
ninja install
popd注: ninjaの代わりにmakeで構築することを好む場合は、 -DCMAKE_GENERATOR="Ninja"スイッチを削除します。
注:後でPYBIND11_INSTALL_DIRの値が必要になります。
詳細については、https://github.com/pybind/pybind11/blob/master/docs/compiling.rstを参照してください。
Ubuntu 20.04( libboost-dev )のブーストライブラリは1.71.1であり、PopARTと互換性がありません。代わりに、ソースからバージョン1.80.0を構築する必要があります。これを行うには、選択したディレクトリで、Boostダウンロードページからソースをダウンロードし、次のようにビルドしてインストールしてください。
export BOOST_INSTALL_DIR= $( pwd ) /boost_1_80_0/install_dir/
wget https://boostorg.jfrog.io/artifactory/main/release/1.70.0/source/boost_1_80_0.tar.gz
tar xvfz boost_1_80_0.tar.gz
rm boost_1_80_0.tar.gz
pushd boost_1_80_0
mkdir install_dir
./bootstrap.sh --prefix= $BOOST_INSTALL_DIR
./b2 -j8 link=static runtime-link=static --abbreviate-paths variant=release toolset=gcc " cxxflags= -fno-semantic-interposition -fPIC " cxxstd=14 --with-test --with-system --with-filesystem --with-program_options --with-graph --with-random install
popd注: -j8スイッチは、最大8つのスレッドで構築することにより、ビルド時間を短縮するために使用されます。
注:後でBOOST_INSTALL_DIRの値が必要になります。
詳細については、https://www.boost.org/doc/libs/1_80/more/getting_started/unix-variants.htmlを参照してください。
ONNXライブラリもソースからコンパイルする必要があります。これを行うには、選択したディレクトリで、onnx githubページからソースをダウンロードし、次のようにビルドおよびインストールしてください。
export ONNX_INSTALL_DIR= $( pwd ) /onnx-1.6.0/install_dir/
wget https://github.com/onnx/onnx/archive/v1.6.0.tar.gz
tar xvfz v1.6.0.tar.gz
rm v1.6.0.tar.gz
pushd onnx-1.6.0
mkdir install_dir
cmake ..
-DONNX_ML=0
-DProtobuf_PROTOC_EXECUTABLE= $PROTOBUF_INSTALL_DIR /bin/protoc
-DCMAKE_INSTALL_PREFIX= $ONNX_INSTALL_DIR
make -j8
make install
popd注: -j8スイッチは、最大8つのスレッドで構築することにより、ビルド時間を短縮するために使用されます。
注:後でONNX_INSTALL_DIRの値が必要になります。
詳細については、https://github.com/onnx/onnxを参照してください。
capnprotoリリースは、capnprotoダウンロードページからダウンロードできます。選択したディレクトリで、次のようにダウンロードしてインストールしてください。
export CAPNPROTO_INSTALL_DIR= $( pwd ) /capnproto-0.7.0/install_dir/
wget https://capnproto.org/capnproto-c++-0.7.0.tar.gz
tar xvfz capnproto-c++-0.7.0.tar.gz
rm capnproto-c++-0.7.0.tar.gz
pushd capnproto-c++-0.7.0
./configure --prefix= $CAPNPROTO_INSTALL_DIR
make -j8 check
make install
popd注: -j8スイッチは、最大8つのスレッドでテストすることにより、テスト時間を短縮するために使用されます。
注: CAPNPROTO_INSTALL_DIRの値が後で必要です
詳細については、https://capnproto.org/install.htmlを参照してください
Trompeloeilは、Trompeloeil Githubページからダウンロードできます。選択したディレクトリで、次のようにダウンロードしてインストールしてください。
export TROMPELOEIL_INSTALL_DIR= $( pwd ) /trompeloeil-35/install_dir/
wget https://github.com/rollbear/trompeloeil/archive/refs/tags/v35.tar.gz
tar xvfz v35.tar.gz
rm v35.tar.gz
pushd trompeloeil-35
mkdir build ; cd build
cmake .. -DCMAKE_INSTALL_PREFIX= $TROMPELOEIL_INSTALL_DIR
cmake --build . --target install
popd Public GitHubリポジトリから適切なディレクトリでGraphCoreのPoprithmsライブラリをチェックアウトし、次のようにインストールできます。
export POPRITHMS_INSTALL_DIR= $( pwd ) /poprithms/install_dir/
git clone https://github.com/graphcore/poprithms.git
pushd poprithms
mkdir build ; cd build ;
cmake ..
-DBOOST_ROOT= $BOOST_INSTALL_DIR
-DCMAKE_INSTALL_PREFIX= $POPRITHMS_INSTALL_DIR
-DCMAKE_GENERATOR= " Ninja "
ninja
ninja install
popd注: ninjaの代わりにmakeで構築することを好む場合は、 -DCMAKE_GENERATOR="Ninja"スイッチを削除します。
注:CCACHEを使用して、ビルドをさらに加速できます。
注:後でPOPRITHMS_INSTALL_DIRの値が必要になります。
詳細については、https://github.com/graphcore/poprithmsを参照してください。
Poplar SDKを取得するには、GraphCoreのサポートポータルへのアクセスに登録する必要があります。アクセスできるようになったら、サポートポータルから最新のUbuntu 18.04をダウンロードして、適切なディレクトリに梱包してください。このドキュメントの残りの部分では、環境変数POPLAR_INSTALL_DIRを設定して、Poplarが開梱されているディレクトリを指すように命じられます。 Poplar SDKにはPoplar以上のものが含まれており、変数をpoplar-ubuntu_18_04-xxxxxのような名前のサブディレクトリに特異的に指す必要があることに注意してください。
詳細については、https://www.graphcore.ai/developerを参照してください。
Ubuntu 20.04のみが外部からポップアートを構築するためにサポートされていることに注意してください。
PopArtを構築するには、リポジトリをチェックアウトしたディレクトリで次のコマンドを実行します。
export POPART_INSTALL_DIR= $( pwd ) /popart/install_dir/
export PKG_CONFIG_PATH= " $CAPNPROTO_INSTALL_DIR /lib/pkgconfig: $PKG_CONFIG_PATH "
git clone https://github.com/graphcore/popart.git
push popart
mkdir build ; cd build ;
cmake ..
-DBOOST_ROOT= $BOOST_INSTALL_DIR
-DCapnProto_ROOT= $CAPNPROTO_INSTALL_DIR
-DONNX_ROOT= $ONNX_INSTALL_DIR
-DPOPLAR_INSTALL_DIR= $POPLAR_INSTALL_DIR
-Dpoprithms_ROOT= $POPRITHMS_INSTALL_DIR
-DProtobuf_ROOT= $PROTOBUF_INSTALL_DIR
-Dpybind11_ROOT= $PYBIND11_INSTALL_DIR
-Dspdlog_ROOT= $SPDLOG_INSTALL_DIR
-Dtrompeloeil_ROOT= $TROMPELOEIL_INSTALL_DIR
-DCMAKE_INSTALL_PREFIX= $POPART_INSTALL_DIR
-GNinja
ninja
ninja install
popd cmakeでサポートされている任意の方法を使用して、依存関係を指すことができます。 Cmakeドキュメントのfind_packageドキュメントを参照してください。パッケージインストールディレクトリを指す<verbatim pkg name>_ROOT変数を使用することを選択しました。
非推奨: <uppercase pkg name>_INSTALL_DIR変数は、 POPLAR_INSTALL_DIRを除き、廃止されており、将来のリリースで削除されます。
注:他のcmakeスイッチが利用可能です:
-DPOPART_BUILD_TESTING=0ポップアートテストのコンパイルを避けるために使用できるスイッチ。-DPOPART_STRICT_COMPARATOR_CHECKS=1ポインターの容器を比較するときにnullptrと無効なポインターを確認します。注: ninjaの代わりにmakeでビルディングを好む場合は、 -GNinjaスイッチを削除します。
注:CCACHEを使用して、ビルドをさらに加速できます。
注:capnprotoのcmakeエクスポートは、単にpkg-configをラップします。 pkg_config_pathは、pkg-configにcapnprotoを見つける場所を伝えるために設定されています。
GitHubのGraphCoreの例リポジトリには、多くの高度なPopArtアプリケーションがあります。 popartとpopxlを使用して実装された例の完全なリストについては、readmeを参照してください
コードはMITライセンスの下で提供されます。ライセンスファイルを参照してください。
このプロジェクトには、次の派生作業が含まれています。Tensorflow、https://github.com/tensorflow/tensorflow/
Copyright 2017 The Tensorflow Authors。無断転載を禁じます。
Apacheライセンス、バージョン2.0(「ライセンス」)に基づいてライセンスされています。ライセンスに準拠している場合を除き、このファイルを使用することはできません。ライセンスのコピーを取得できます
http://www.apache.org/licenses/LICENSE-2.0
適用法で要求されていないか、書面で合意されていない限り、ライセンスに基づいて配布されたソフトウェアは、明示または黙示のいずれかの保証または条件なしに、「現状のまま」に基づいて配布されます。ライセンスに基づく権限と制限を管理する特定の言語のライセンスを参照してください。
関連ファイル:
tests/integration/optimizer_tests/rmsprop_update_numpy.pyこのプロジェクトには、以下のデリバティブ作業が含まれています。LLVMプロジェクト、http://llvm.org/doxygen/machineoutliner_8cpp_source.html
Apacheライセンス、バージョン2.0(「ライセンス」)に基づいてライセンスされています。ライセンスに準拠している場合を除き、このファイルを使用することはできません。ライセンスのコピーを取得できます
http://www.apache.org/licenses/license-2.0
適用法で要求されていないか、書面で合意されていない限り、ライセンスに基づいて配布されたソフトウェアは、明示または黙示のいずれかの保証または条件なしに、「現状のまま」に基づいて配布されます。ライセンスに基づく権限と制限を管理する特定の言語のライセンスを参照してください。
関連ファイル:
willow/src/subgraph/suffixtree.cppこのプロジェクトには、以下からのデリバティブ作業が含まれています:pybind11_mkdoc、https://github.com/pybind/pybind11_mkdoc
pybind11_mkdocは、次のMITライセンスに基づいてライセンスされています。
MITライセンス(MIT)
著作権(c)2020 Wenzel Jakob
このソフトウェアおよび関連するドキュメントファイル(「ソフトウェア」)のコピーを取得している人に、これにより許可が無料で許可され、制限なしにソフトウェアを扱うことができます。 、ソフトウェアのコピーを公開、配布、サブライセンス、および/または販売し、次の条件を条件として、ソフトウェアが提供される人を許可します。
上記の著作権通知とこの許可通知は、ソフトウェアのすべてのコピーまたはかなりの部分に含まれるものとします。
このソフトウェアは、商品性、特定の目的への適合性、および非侵害の保証を含むがこれらに限定されない、明示的または黙示的なものを保証することなく、「現状のまま」提供されます。いかなる場合でも、著者または著作権所有者は、契約、不法行為、またはその他の訴訟、ソフトウェアまたは使用またはその他の取引に関連する、またはその他の契約、またはその他の請求、またはその他の責任について責任を負いません。ソフトウェア。
関連ファイル:
scripts/pybind11_mkdoc/このプロジェクトには、以下からのデリバティブ作業が含まれています:onnx、https://github.com/onnx/onnx
ONNXは、次のMITライセンスに基づいてライセンスされています。
MITライセンス
Copyright(c)ONNXプロジェクトの貢献者すべての権利を予約します。
このソフトウェアおよび関連するドキュメントファイル(「ソフトウェア」)のコピーを取得している人に、これにより許可が無料で許可され、制限なしにソフトウェアを扱うことができます。 、ソフトウェアのコピーを公開、配布、サブライセンス、および/または販売し、次の条件を条件として、ソフトウェアが提供される人を許可します。
上記の著作権通知とこの許可通知は、ソフトウェアのすべてのコピーまたはかなりの部分に含まれるものとします。
このソフトウェアは、商品性、特定の目的への適合性、および非侵害の保証を含むがこれらに限定されない、明示的または黙示的なものを保証することなく、「現状のまま」提供されます。いかなる場合でも、著者または著作権所有者は、契約、不法行為、またはその他の訴訟、ソフトウェアまたは使用またはその他の取引に関連する、またはその他の契約、またはその他の請求、またはその他の責任について責任を負いません。ソフトウェア。
関連ファイル:
tests/integration/operators_test/rnn_helper.pytests/integration/operators_test/gru_test.pytests/integration/operators_test/lstm_test.pyこのプロジェクトには、以下からの派生作業が含まれています:オプションライト、https://github.com/martinmoene/optional-lite
Copyright(c)2014-2018 Martin Moene
ブーストソフトウェアライセンス - バージョン1.0- 2003年8月17日
Boost Softwareライセンスバージョン1.0の下で配布されます。
これにより、ソフトウェアのコピーを取得し、このライセンスの対象となるドキュメント(「ソフトウェア」)のコピーを入手するために、ソフトウェアを使用、複製、表示、分散、実行、および送信する許可は、無料で許可されます。ソフトウェアのデリバティブ作品を準備し、ソフトウェアが提供するために提供される第三者を許可するために、すべて次の対象となります。
上記のライセンス助成金、この制限、および次の免責事項を含む、ソフトウェアの著作権とこの声明全体は、ソフトウェアのすべてのコピー、全体または一部、およびそのようなすべてのデリバティブ作業に含める必要があります。コピーまたはデリバティブ作品は、ソース言語プロセッサによって生成された機械実行可能なオブジェクトコードの形式のみです。
このソフトウェアは、商品性、特定の目的への適合性、タイトル、および非侵害の保証を含むがこれらに限定されない、明示的または黙示的なものを保証することなく、「現状のまま」提供されます。いかなる場合でも、著作権所有者またはソフトウェアを配布する人は、契約、不法行為、またはその他、ソフトウェア、またはソフトウェアの使用またはその他の取引に関連する、またはその他に関連するものであれ、損害またはその他の責任について責任を負いません。
関連ファイル:
willow/include/popart/vendored/optional.hppこのプロジェクトには、以下からのデリバティブ作業が含まれています:Any-Lite、https://github.com/martinmoene/any-lite
Copyright(c)2016-2018 Martin Moene
ブーストソフトウェアライセンス - バージョン1.0- 2003年8月17日
Boost Softwareライセンスバージョン1.0の下で配布されます。
これにより、ソフトウェアのコピーを取得し、このライセンスの対象となるドキュメント(「ソフトウェア」)のコピーを入手するために、ソフトウェアを使用、複製、表示、分散、実行、および送信する許可は、無料で許可されます。ソフトウェアのデリバティブ作品を準備し、ソフトウェアが提供するために提供される第三者を許可するために、すべて次の対象となります。
上記のライセンス助成金、この制限、および次の免責事項を含む、ソフトウェアの著作権とこの声明全体は、ソフトウェアのすべてのコピー、全体または一部、およびそのようなすべてのデリバティブ作業に含める必要があります。コピーまたはデリバティブ作品は、ソース言語プロセッサによって生成された機械実行可能なオブジェクトコードの形式のみです。
このソフトウェアは、商品性、特定の目的への適合性、タイトル、および非侵害の保証を含むがこれらに限定されない、明示的または黙示的なものを保証することなく、「現状のまま」提供されます。いかなる場合でも、著作権所有者またはソフトウェアを配布する人は、契約、不法行為、またはその他、ソフトウェア、またはソフトウェアの使用またはその他の取引に関連する、またはその他に関連するものであれ、損害またはその他の責任について責任を負いません。
関連ファイル:
willow/include/popart/vendored/anylite.hpp