※ 本記事は、Praveen Coca, Yan Sunによる”Graphics rendering with NVIDIA A10 GPU shapes on OCI“を翻訳したものです。

2023年6月15日


3Dグラフィックス・レンダリング、アニメーション、レイ・トレーシング機能を備えた新しいOracle Cloud Infrastructure(OCI)GPUシェイプの駆動テストにご参加ください。Blenderのクラスルーム・サンプルを使用した単純なレンダリングおよびアニメーション・タスクの実行、パフォーマンス結果の概要、およびCPUベースのレンダリングに関連するGPUベースのレンダリングの紹介を行います。

OCI上のNVIDIA A10シェイプ

OCIは、NVIDIA RTX Virtual Workstationソフトウェアと組み合せた場合に、人工知能(AI)、機械学習(ML)推論、計算流体力学(CFD)、仮想デスクトップなど、様々な加速ワークロードに適したNVIDIA A10 Tensor Core GPUを搭載した複数のベア・メタルおよび仮想マシン(VM)インスタンスを提供しています。

このブログに特に興味があるのは、NVIDIA A10 Tensor Core GPUに基づくOCI GPUコンピュート・シェイプです。これは、4Kビデオ、ゲーム、およびStable DiffusionやNVIDIA Omniverseなどの関連AIアプリケーションに最も適しています。OCIネットワーク・インフラストラクチャ上のこれらのシェイプは、リアルタイムのビデオ本番および再生アプリケーション用のSMPTE ST 2110非圧縮ビデオ・トランスポートもサポートしています。A10-based GPUシェイプは優れた価格パフォーマンスを提供し、従量制料金(PAYG)インスタンスに対してGPUあたり1時間あたり$2のリスト価格を提供します。

A10 GPUは、クワッドA10 GPUを搭載したベア・メタル・シェイプ(BM.GPU.A10.4)で使用でき、Intel Xeon Platinum 8358プロセッサを搭載したシステムで、合計64 OCPU (128 vCPUs相当)、1TBのCPUメモリー、2つのNVMeドライブ(合計7.68TBのローカル・ストレージ、および2つの50Gbpsネットワーク帯域幅)の96 GBのGPUでサポートされています。

A10 GPUは、次の機能および利点を備えたVMインスタンスとしても使用可能です。:

  • VM.GPU.A10.1 (15 OCPU、240 GBのCPUメモリ、24Gbpsのネットワーク帯域幅でサポートされる1 GPUと24 GPUメモリ)

  • VM.GPU.A10.2 (30 OCPU、480 GBのCPUメモリ、48 Gbpsのネットワーク帯域幅でサポートされる2つのGPUと48 GPUメモリ)

  • VMシェイプにはブロック・ストレージのみが付属しています。

Jeff DaviesによるOracle Cloud InfrastructureでのBlenderの実行に関する優れたブログ投稿を確認してください。次の方法論を使用して、サンプル・レンダリング・タスクのメトリックを収集するために、OCI上の新しいA10 GPU VMシェイプをテストしました。:

  • Ubuntu 20.04を選択したオペレーティング・システムとして、目的のコンピュート・シェイプ(VM.GPU.A10.1およびVM.GPU.A10.2)をプロビジョニングしました。

  • NVIDIAドライバをインストールしました。

  • Blender 3.5.0をインストールしました。

  • BlenderのWebサイトからクラスルームのデモ・プロジェクトをダウンロードしました。

  • Blenderコマンドを実行して、CYCLESおよびNVIDIAのOptiXレイ・トレース機能を使用するクラスルーム・オブジェクトの単一フレームおよび複数のフレームをレンダリングします。

A10 GPUベースのシェイプは、メトリックによって証明されるレンダリング・タスクで優れ、GPUベースのレンダリングとCPUベースのレンダリングの速度の違いを示しています。Blenderコマンドライン・インタフェースでは、次のPythonスクリプトを使用して、OptiXをレイ・トレースのレンダリング・エンジンとして設定し、レンダリングにGPUを使用します。:

rendersettings.py

import bpy

prop = bpy.context.preferences.addons['cycles'].preferences

prop.get_devices()

prop.compute_device_type = 'OPTIX'

for device in prop.devices:

    if device.type == 'OPTIX':

        device.use = True

    else:

        device.use = False

bpy.context.scene.cycles.device = 'GPU'

for scene in bpy.data.scenes:

    scene.cycles.device = 'GPU'

Blenderコマンドライン ヘッドレス呼び出しを使用したシングルフレーム・レンダリングでは、CPUベースのレンダリングで次のコマンドを実行しました。:

blender -b classroom.blend -o //classroom -f 1 -F PNG -noaudio > blender-CPU-F1.log

A10 GPUベースのVMでのGPUベースのレンダリングでは、次のコマンドを実行しました。:

blender -b classroom.blend -o //classroom -f 1 -F PNG -noaudio -E CYCLES -- --cycles-device OPTIX --cycles-print-stats -P ~/rendersettings.py --debug-cycles > blender-GPU-F1.log

また、Blenderコマンドラインのヘッドレス呼び出しを使用して複数フレーム・レンダリングを実行しました。複数のフレームのCPUベースのレンダリングでは、次のコマンドを実行しました。:

blender -b classroom.blend -o //classroom -s 1 -e 6 -F PNG -noaudio -a > blender-CPU-F6.log

次に、複数のフレームに対してGPUベースのレンダリングを実行しました。:

blender -b classroom.blend -o //classroom -s 1 -e 6 -F PNG -noaudio -a -E CYCLES -- --cycles-device OPTIX -P ~/rendersettings.py > blender-GPU-F6.log

これらのコマンドを実行すると、次の情報が収集されました。この表では、OCPUは、ハイパースレッドが有効になっているプロセッサの1つの物理コアと同等です。1 OCPUは、2つのハードウェア処理スレッドまたはvCPUsに対応します。

インスタンス・タイプ

GPU/CPU

フレーム

レンダリング時間

VM.Standard.E4.Flex

16 OCPU

1

3分48秒

VM.Standard.E4.Flex

32 OCPU

1

1分55秒

VM.GPU.A10.1

One A10 GPU

1

19.3 秒

VM.GPU.A10.2

Two A10 GPUs

1

11.4秒

VM.Standard.E4.Flex

16 OCPU

6

22分42秒

VM.Standard.E4.Flex

32 OCPU

6

11分30秒

VM.GPU.A10.1

One A10 GPU

6

1分56秒

VM.GPU.A10.2

Two A10 GPUs

6

1分7秒

 

GPUベースのレンダリングによるパフォーマンスの向上:

GPUシェイプ

16 OCPUでE4.Flexよりもパフォーマンスが向上

32 OCPUでE4.Flexよりもパフォーマンスが向上

VM.GPU.A10.1 (1 フレーム)

91.5%

83.2%

VM.GPU.A10.2 (1 フレーム)

95%

.90.1%

VM.GPU.A10.1 (6 フレーム)

91.5%

83.2%

VM.GPU.A10.2 (6 フレーム)

95%

90.3%

まとめ

これらのベンチマークは、OCI上のNVIDIA A10-based GPUシェイプによって提供された、グラフィックス・レンダリング、アニメーション、ビデオ、MLのワークロードとソリューションのパフォーマンス、速度、価格上の利点に役立つことを願っています。Oracle Cloud Infrastructureを無料で試し、その機能を確認してください。

詳細は、次のリソースを参照してください。: