Google Colaboratory で TensorRT を使って機械学習の推論を爆速化してみる【環境構築編】

この記事では、Google Colaboratory上でTensorRTを利用できる環境を構築します。NVIDIA公式サイトからリポジトリをダウンロードし、TensorRTのパッケージをインストールする流れを説明しています。

2020/3/18 Google colabのcudaが11.2にアップデートされたため、記事を更新しました。

はじめに

本記事は、主に以下のような方を対象としています。

jupyter notebookの基本的な操作がわかる方
機械学習のプログラムを作成したことがある方
環境構築でGPUプログラミングに躓いてしまった方
機械学習推論の高速化を通してGPUプログラミングを学んでみたい方

TensorRTを使うと、機械学習(AI)利用にかかる時間的なコストを大幅に削減することが出来ます。通常だとGPUマシンを用意するなど、個人では試しにくい技術です。しかし、今回はGoogle社の提供するGoogle Colaboratoryを用いることで、個人でも非常に簡単に試せる環境を作り上げます。

出典:NVIDIA公式サイト

自身で作成した機械学習を用いたプログラムがどのくらい早くなるのか、一緒に試してみませんか?
今回の記事は環境構築編ということで、Colab上にTensorRTをインストールすることを目標とします。

面倒なイメージのある環境構築部分ですが、とても簡単に出来るのでぜひ通読してみてください。また、記事内ではLinuxのコマンドを利用していますが、一つ一つのコマンドに関してその都度解説を入れています。あまりコマンドラインを利用したことがない方でも簡単に試せるようになっています。

Google Colaboratoryとは

無料でブラウザ上でPythonプログラムを実行可能なサービスで、実行環境(ランタイム)にはGPUを選ぶことも出来ます。
Pythonを使って機械学習を試したり、GPUプログラミングを試したりするには用意するものが少なく、とても敷居が低いです。
AWSなどに比べて自分で環境構築をする必要はほとんど無いですし、変なところに触って料金が発生してしまうという心配もありません。
しかも、Googleアカウントを持っていればすぐに利用開始できます。

Google Colaboratoryの起動

他のGoogleドキュメントやGoogleスプレッドシートなどのように、Google提供アプリケーション内にあります。

新規ノートブックの作成

上記のリンクからアクセスすると、Welcomeページが表示されるはずです。

今回は1からノートブックを作っていきます。左上のファイル→ノートブックを新規作成をクリックします。

画像1

ここで作成されたノートブックはアカウントに紐付いたGoogleドライブ上に保存されます。

画像3

新規ノートブックを作成できました。ここにPythonでコーディングすると、すぐにプログラムが実行でき、jupyter notebookと同じように使えます。

OS & GPUの確認・GPUへの接続

それでは本題の環境構築を行っていきましょう。
ノートブック上では、Pythonのコード以外にもLinuxコマンドを実行することが出来ます。コマンドの先頭に!を付け、通常のLinuxコマンドと同様にOSのバージョン、そして今回はGPUの情報も参照してみましょう。​

画像3

すると上の画像のような出力が出てきます。OSがUbuntu 18.04.5のLTSであることは分かりましたが、GPUの情報が上手く参照出来ていないようです。
これはまだGoogle Colaboratory上でGPUのランタイムに接続していないことが原因です。以下の通りに設定を変更して、GPUに接続しましょう。

上部メニュー>ランタイム>ランタイムのタイプを変更

画像4

ハードウェアアクセラレータ>GPU
→保存

画像5

これで、GPUのランタイムに接続できるようになりました。それでは、もう一度先程のコードセルを実行してみましょう。

画像12

すると、今度はGPUの利用状況が出てきたはずです。このように、GPUを利用する際はランタイムのタイプ変更を行わなければなりません。
それでは、GPUの情報をチェックしてみましょう。

画像12

画像の赤線部分に注目してください。CUDAのバージョンが11.2、搭載のGPUがTesla T4のようです。Google Colaboratory上では実行環境のGPUがランダムに変化します。CUDAバージョンやOSがランダムに変わることはありませんが、定期的にアップデートされることがあるため、チェックしておくと良いでしょう。こちらの情報は後ほどパッケージをインストールする際に必要な情報なので、覚えておきます。

【補足】
CUDAとは、NVIDIAが開発・提供している、GPUに関する開発時に利用する汎用的プラットフォームのこと。CUDAを介してコンパイラやAPIの提供を行っている。

TensorRTのダウンロード

NVIDIA公式HPからダウンロードします。ダウンロードにはNVIDIA Developer Programへの参加が必要のため、アカウントを作成した上で必要事項を記入してください。最終的には以下のようなページにたどり着きます。

画像12

規約に同意すると、TensorRTのバージョン一覧が表示されます。今回は実行環境のCUDAバージョンが11.2だったため、対応のTensorRT 7.xをインストールします。先程調べたOS、CUDAのバージョンに一致するDEB local repo packageをダウンロードします。

画像12

本記事上でダウンロードしたものは、Ubuntu18.04、CUDA11.2、TensorRT 7.2.3用のdebファイル(TensorRT 7.2.3 for Ubuntu 18.04 and CUDA 11.1 & 11.2 DEB local repo package)になります。

【補足】
もしCUDAバージョンがアップデートされていた場合、対応のTensorRTをインストールする必要があります。その場合、ダウンロードしたファイルに応じて記事を読み替えてください。

Google Colaboratory上にアップロード

ダウンロードしたファイルをGoogle Colaboratory上にアップロードします。ただし、Google Colaboratory上でそのままアップロードすると、先程のデータが1GBほどあるため、アップロード時間が非常に長くなってしまいます。
TensorRT実装時に毎回時間がかかってしまっては困るため、自身のDropboxやOnedriveなど、クラウド上で参照できる場所に配置し、wgetでファイルをGoogle Colaboratory内にダウンロードします。

今回はDropbox上にアップロードし、wgetでダウンロードします。-Oオプションを付け、名前は以下のように指定します。

!wget -O <debファイルの拡張子を除いた名前> <共有リンク>​w

wgetコマンドを実行し、Google Colaboratoryのファイルブラウザ内にdebファイルが入ったことを確認します。

画像11

パッケージのインストール

先程アップロードしたdebファイルから、リポジトリを追加します。

画像11

パッケージのインストールに必要なリポジトリが追加されたので、続いてapt-get コマンドを使用して、必要なパッケージをインストールします。

以下のようにバージョンを指定してパッケージをインストールしています。依存関係にあるパッケージは、バージョンによってインストールするパッケージを変更する必要があります。
ex) TensorRT 6.0.1 + cuda10.1 環境の場合

実行すると、少し時間がかかります。インストールが終わるまで待ちましょう。

インストールしたパッケージの確認

バージョン等問題なければ、この時点でTensorRT利用に必要なパッケージがすべてインストールされたはずです。問題なくインストールされているか確認します。

画像12

画像のパッケージが全てインストールされていれば、TensorRTを利用する環境は完成です。お疲れさまでした!

おわりに

今回の記事ではGoogle ColaboratoryにおけるTensorRT環境の構築を行いました。次回の記事では、今回構築した環境を用いて、機械学習の推論を行います。現在執筆中ですので、楽しみにお待ち下さい。

オルトブリッジ・テクノロジー株式会社では、CUDAやTensorRT等のGPUプログラミングに関する情報を発信しています。
企業向けのCUDAプログラミングの教育事業なども行っておりますので興味のある方は note(at)altbridge-tech.jp までご連絡ください。

この記事が気に入ったらサポートをしてみませんか?