Help us understand the problem. What is going on with this article?

NVIDIA Visual Profiler 入門

More than 1 year has passed since last update.

はじめに

NVIDIA Visual Profilerという、CUDAに関する、描画が少しリッチなProfilerがあります。
こんな感じです。

12

ボトルネックを解析したり、Optimizationしたりするのに有効です。
リモートマシンでInstallしておいて nvvp とすると起動して、以下のようにターミナル端末からX11とかで起動することもできますが

12

動作が重くなりがちなので、 nvprof でprofilingだけリモートマシンで行なって、 scp でローカルマシンに結果を飛ばして、
ローカルの NVIDIA Visual Profilerを使う という一連の流れを紹介したいと思います。
(なお、リモートマシンは nvprofが使えることを前提としてます)

公式のドキュメントはここにあります。(英語)
http://docs.nvidia.com/cuda/profiler-users-guide/index.html#visual
http://cs.colby.edu/courses/S14/cs336/online_materials/CUDA_Profiler_Users_Guide.pdf
http://www.sie.es/wp-content/uploads/2015/12/cuda-profiling-tools.pdf
http://people.maths.ox.ac.uk/gilesm/cuda/lecs/NV_Profiling_lowres.pdf
こちらも参考になりました。
http://topsecret.hpc.co.jp/wiki/index.php/CUDA_5%E3%81%AE%E6%96%B0%E6%A9%9F%E8%83%BD(4):_nvprof%E3%83%97%E3%83%AD%E3%83%95%E3%82%A1%E3%82%A4%E3%83%A9

ローカルマシンのセットアップ

まずはここからローカルマシンにダウンロード & インストール
https://developer.nvidia.com/nvidia-visual-profiler

  1. 左側のDownload CUDA Toolkit 8.0を選択
  2. 今回、localマシンがOSXなので、OSXの最新版っぽいものを選択して、dmgとpatchをダウンロード

11

  1. まず、容量大きい方のdmgを開いて、インストーラーを起動、この時パスワードを求められる
  2. Accept and Proceedを選択
  3. Install CompleteしたらFinish

123

  1. 同様にpatchを開き、CUDA Patchを選択したまま、Next
  2. Install CompleteしたらFinish

12

これにて準備は完了。

nvvpアプリケーションを探し出して、起動すれば、NVIDIA Visual Profilerがローカル環境で使えるようになります。
Screen Shot 2017-08-23 at 16.26.33.png

使ってみる

nvprofでprofileをとる

例えばCaffe2とかで、以下のようなコマンドを、先頭に、nvprof -o profile.nvp をつけるような形でprofilingします。
nvprofに関しては、以下のサイトを
http://docs.nvidia.com/cuda/profiler-users-guide/index.html#nvprof-overview

nvprof -o profile.nvp \
      python \
          ${CAFFE2_HOME}/caffe2/python/examples/resnet50_trainer.py  \
          --train_data $TRAIN_DATA \
          --num_gpus $NUM_GPUS \
          --batch_size $32 \
          --epoch_size 4096 \
          --num_epochs 1 \
          --base_learning_rate 1.0 \
          --weight_decay 0.0001

このようにして、nvprofの結果をprofile.nvpとして、保存します。

scpなどでローカルマシンに結果を転送

このprofile.nvpscpコマンドなどを用いて、ローカルマシンにダウンロードし、NVIDIA Visual Profilerで見てみます。

$ scp username@XXX_Cluster:/hoge/profile.nvp /hoge/Desktop

NVIDIA Visual Profilerでprofile.nvpを開く

  1. まずNVIDIA Visual Profilerを起動し、importからprofile.nvpを開きます
  2. nvprofを選択し、今回はsingle processを選択します。
  3. Timeline data file から Browseを選択し、profile.nvpのパスを指定
  4. 選択したらFinishでloadする

12

12

12

12

すると、以下のような画面が表示されます。

Screen Shot 2017-08-26 at 17.52.00.png

NVIDIA Visual Profilerの機能紹介

WIP

the following kernels are ordered by optimization importance based on execution time and achieved occupacy.
Optimization of higher ranked kernels (those that appear first in the list) is more likely to improve performance compared to lower ranked kernels

以下のカーネルは、実行時間と達成された占有率に基づいて最適化の重要度によって順序付けられます。
上位ランクのカーネル(リストの最初に表示されるもの)の最適化は、ランクの低いカーネルに比べてパフォーマンスを向上させる可能性が高くなります

参考

https://gist.github.com/sonots/5abc0bccec2010ac69ff74788b265086

Hiroki11x
PhD in Computer Science at Université de Montréal, Mila / Masason Foundation/ JSPS DC/ DL Theory/ Formerly MSc at Tokyo Institute of Technology
https://hiroki11x.github.io/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした