GPU Boost for Tesla K20

出典: トータル・ディスクロージャ・サイト(事実をありのままに)

目次

GPU Boostとは

Tesla K40の新機能として発表されたGPU Boost。Tesla K40は、定格クロックは745 MHzであるが、温度や消費電力に余裕がある場合は875 MHzまでクロックが動的に変化する。もっともTesla K40は工場出荷時はGPU Boostは無効化されており、有効化するには管理者権限のコンソールからnvidia-smiコマンドを使って有効化する必要がある。

# nvidia-smi -q -d SUPPORTED_CLOCKS

==============NVSMI LOG==============

Timestamp                           : Thu Jan  1 00:00:00 1970
Driver Version                      : 319.37

Attached GPUs                       : 1
GPU 0000:00:00.0
    Supported Clocks
        Memory                      : 3004 MHz
            Graphics                : 875 MHz
            Graphics                : 810 MHz
            Graphics                : 745 MHz
            Graphics                : 666 MHz
        Memory                      : 324 MHz
            Graphics                : 324 MHz

とコマンドを入力し、設定すべきMemoryクロックが3004 MHz、Graphicsクロックが875 MHzであることを確認する。

# nvidia-smi -pm 1
Enabled persistence mode for GPU 0000:00:00.0.
All done.
# nvidia-smi -ac 3004,875
Applications clocks set to "(MEM 3004, SM 875)" for GPU 0000:00:00.0
All done.

とこれらのクロックを実際に入力すると、GPU Boostは有効化され、状況次第でクロックが875 MHzまで上昇するようになる。

たとえばCUDA 5.5付属のnbodyのベンチマークを比較すると、

Boost無効

Run "nbody -benchmark [-numbodies=<numBodies>]" to measure perfomance.
	-fullscreen       (run n-body simulation in fullscreen mode)
	-fp64             (use double precision floating point values for simulation)
	-hostmem          (stores simulation data in host memory)
	-benchmark        (run benchmark to measure performance) 
	-numbodies=<N>    (number of bodies (>= 1) to run in simulation) 
	-device=<d>       (where d=0,1,2.... for the CUDA device to use)
	-numdevices=<i>   (where i=(number of CUDA devices > 0) to use for simulation)
	-compare          (compares simulation results running once on the default GPU and once on the CPU)
	-cpu              (run n-body simulation on the CPU)
	-tipsy=<file.bin> (load a tipsy model file for simulation)

> Windowed mode
> Simulation data stored in video memory
> Single precision floating point simulation
> 1 Devices used for simulation
GPU Device 0: "Tesla K40c" with compute capability 3.5

> Compute 3.5 CUDA device: [Tesla K40c]
15360 bodies, total time for 10 iterations: 33.316 ms
= 70.816 billion interactions per second
= 1416.322 single-precision GFLOP/s at 20 flops per interaction

Boost 875 MHz

Run "nbody -benchmark [-numbodies=<numBodies>]" to measure perfomance.
	-fullscreen       (run n-body simulation in fullscreen mode)
	-fp64             (use double precision floating point values for simulation)
	-hostmem          (stores simulation data in host memory)
	-benchmark        (run benchmark to measure performance) 
	-numbodies=<N>    (number of bodies (>= 1) to run in simulation) 
	-device=<d>       (where d=0,1,2.... for the CUDA device to use)
	-numdevices=<i>   (where i=(number of CUDA devices > 0) to use for simulation)
	-compare          (compares simulation results running once on the default GPU and once on the CPU)
	-cpu              (run n-body simulation on the CPU)
	-tipsy=<file.bin> (load a tipsy model file for simulation)

> Windowed mode
> Simulation data stored in video memory
> Single precision floating point simulation
> 1 Devices used for simulation
GPU Device 0: "Tesla K40c" with compute capability 3.5

> Compute 3.5 CUDA device: [Tesla K40c]
15360 bodies, total time for 10 iterations: 28.294 ms
= 83.386 billion interactions per second
= 1667.724 single-precision GFLOP/s at 20 flops per interaction

と、ベンチマーク値が1416 GFLOP/sから1667 GFLOP/sに向上しているのが確認できる。

Tesla K20におけるGPU Boost

以上が、Teslaシリーズに関するGPU Boostの扱い方として、NVIDIAが公式に発表している情報である。ただ、ご存じの方はご存じであろうが、GPU Boost機能そのものはKepler世代のGPUに共通して実装されている機能であり、Tesla K20やK20Xの情報をnvidia-smiコマンドでクエリすると、このGPU Boost機能の名残と思われるクロックが表示される。

# nvidia-smi -q -d SUPPORTED_CLOCKS

==============NVSMI LOG==============

Timestamp                           : Thu Jan  1 00:00:00 1970
Driver Version                      : 319.37

Attached GPUs                       : 2
GPU 0000:00:00.0
    Supported Clocks
        Memory                      : 2600 MHz
            Graphics                : 784 MHz
            Graphics                : 758 MHz
            Graphics                : 732 MHz
            Graphics                : 705 MHz
            Graphics                : 666 MHz
            Graphics                : 640 MHz
            Graphics                : 614 MHz
        Memory                      : 324 MHz
            Graphics                : 324 MHz

GPU 0000:00:00.0
    Supported Clocks
        Memory                      : 2600 MHz
            Graphics                : 758 MHz
            Graphics                : 705 MHz
            Graphics                : 666 MHz
            Graphics                : 640 MHz
            Graphics                : 614 MHz
        Memory                      : 324 MHz
            Graphics                : 324 MHz

定格732 MHzのK20Xであるが、Supported Clocksの最大値として表示されるクロックは784 MHzであり、K20でも定格705 MHzに対して最大値758 MHzが表示されている。そして、この表示されるブーストクロックは実際に設定できる。ここから先はNVIDIAの想定していない設定であり、自己責任で設定してください。

# nvidia-smi -pm 1
Enabled persistence mode for GPU 0000:00:00.0.
Enabled persistence mode for GPU 0000:00:00.0.
All done.
# nvidia-smi -i 0 -ac 2600,784
Applications clocks set to "(MEM 2600, SM 784)" for GPU 0000:00:00.0
All done.
# nvidia-smi -i 1 -ac 2600,758
Applications clocks set to "(MEM 2600, SM 758)" for GPU 0000:00:00.0
All done.

さらに、nbodyのベンチマーク値も向上するのを確認した。

Tesla K20X (732 -> 784 MHz)
1645 -> 1735 GFLOP/s(Tesla K40より速い理由は不明)
Tesla K20 (705 -> 758 MHz)
1437 -> 1567 GFLOP/s

この設定時の動作の安定性は保証されたものでないとはいえ、性能向上そのものははっきり確認できる。繰り返しますがNVIDIAの想定していない設定であり、自己責任で行ってください。


この記事へのコメントをお寄せください

  • サイトへの書き込みに差し支えございましたら トータルディスクロージャーサイトサポート係へメールをお送りください
  • トータル・ディスクロージャ・サイトに投稿された文章と画像は、すべてその著作権がHPCシステムズ株式会社に帰属し、HPCシステムズ株式会社が著作権を所有することに同意してください。
  • あなたの文章が他人によって自由に編集、配布されることを望まない場合は、投稿を控えてください。
  • コメントを書き込む場合は名前にひらがなを織り交ぜてください。
  • あなたの投稿する文章と画像はあなた自身によって書かれたものであるか、パブリック・ドメインかそれに類する自由なリソースからの複製であることを約束してください。あなたが著作権を保持していない作品を許諾なしに投稿してはいけません!

<comments hideform="false" />


Comments

ノート:GPU Boost for Tesla K20

個人用ツール