あさりのみそしるダイアリー

ココロおだやかに暮らしてます😌

【SBC】Jetson AGX Orin vs Jetson AGX Xavier

2021年11月8日に、NVIDIAから次期Jetsonシリーズ「Orin」が正式発表されました。

asarinomisosoup.com

 

NVIDIA Jetsonは、Raspberry Pi のようなシングルボードコンピュータ(SBC)であって、特にGPUまわりの演算機能が強化された計算モジュールです。

電子機器の組み込み計算デバイスとして、各種計算処理用途で使われているほか、Jetson XavierシリーズからはTensorコアが搭載されたためAIなどの機械学習・ディープラーニング目的で利用するケースも見られます。近年では画像処理による映像中の物体認識などが盛んにおこなわれており、こうした取り組みもJetsonシリーズの位置づけ・方向づけに一役買っているものと見られます。

 

さて、前回のエントリーでは「Jetson Orin NX」と「Jetson Xavier NX」を比較しましたが、今回はそれらの上位モデル「Jetson AGX Orin」と「Jetson AGX Xavier」について触れてみたいと思います。

 

なお、Jetson AGX Orinについてはすでにプレビュー版のスペックシートが公開されているため、そちらで詳しく情報を得ることができます。※要ログイン

developer.nvidia.com

 

概要だけであればログイン無しで以下から参照できます。

https://www.nvidia.com/content/dam/en-zz/Solutions/gtcf21/jetson-orin/nvidia-jetson-agx-orin-technical-brief.pdf

 

Jetson Download Centerから、11月9日付でJetson AGX Orin Module Data Sheet や Product Design Guideなどが入手できるようになっています。ただし、いずれもプレビュー版であり今後の開発の状況によっては変更になる可能性が十分にあるため、参考程度にとどめるのがよいでしょう。

 

Jetson Orin NXに関する情報はまだ出ておらず、キャリアボードの形状も不明であることから、どんな機能が盛り込まれるか、仕様をどの程度におさめるかがまだ公表できるほど定まっていないようです。

しかし、JetPack 5.0やOrinアーキテクチャそのものに関する部分は現行Xavierシリーズや全容が定かではないOrin NXにも通じるところがあるので、見ておいて損は無いかと思います。

 

 

以下、Jetson AGX OrinとAGX Xavierの公表されている主なスペックの比較表です。

www.nvidia.com

 

  AGX Orin AGX Xavier
AI Performance 200 TOPS (INT8) 32 TOPS
GPU NVIDIA Ampere arch.
w/2048 CUDA cores & 64 Tensor cores
NVIDIA Volta arch.
w/512 CUDA cores & 64 Tensor cores
Max GPU Freq 1 GHz 1.37 GHz
CPU 12-core Arm Cortex-A78AE v8.2 64bit CPU
3MB L2 + 6MB L3 cache
8-core NVIDIA Carmel ARM v8.2 64bit CPU
8MB L2 + 4MB L3 cache
Max CPU Freq 2 GHz 2.26 GHz
DL Accelerator 2x NVDLA v2.0 2x NVDLA
Vision Accelerator PVA v2.0 2x 7-Way VLIW Vision Processor
Memory 32 GB 256-bit LPDDR5
204.8 GB/s
32 GB 256-bit LPDDR4x
136.5 GB/s
Storage 64GB eMMC 5.1 32 GB eMMC 5.1
CSI Camera Up to 6 cameras (16 via virtual channels)
16 lanes MIPI CSI-2
D-PHY 1.2 (up to 40Gbps) | C-PHY 1.1 (up to 164Gbps)
Up to 6 cameras (36 via virtual channels)
16 lanes MIPI CSI-2 | 8 lanes SLVS-EC
D-PHY 1.2 (up to 40 Gbps) | C-PHY 1.1 (up to 62 Gbps)
Video Encode 2x 4K60 | 4x 4K30 | 8x 1080p60 | 16x 1080p30 (H.265) 4x 4K60 | 8x 4K30 | 16x 1080p60 | 32x 1080p30 (H.265)
30x1080p30 (H.264)
Video Decode 1x 8K30 | 3x 4K60 | 6x 4K30 | 12x 1080p60| 24x 1080p30 (H.265) 2x 8K30 | 6x 4K60 | 12x 4K30 | 26x 1080p60 | 52x 1080p30 (H.265)
30x 1080p30 (H.264)
UPHY 2 x8 (or 1x8 + 2x4), 1 x4, 2 x1 (PCIe Gen4, Root Port & Endpoint)
3x USB 3.2
Single lane UFS
8x PCIe Gen4 | 8x SLVS-EC
3x USB 3.1
Single Lane UFS
Networking 1x GbE | 4x 10GbE 10/100/1000 BASE-T Ethernet
Display 1x 8K60 multi-mode DP 1.4a (+MST)/eDP 1.4a/HDMI 2.1 Three multi-mode DP 1.2a/e DP 1.4/HDMI 2.0 a/b
Other I/O 4x USB 2.0
4x UART, 3x SPI, 4x I2S, 8x I2C, 2x CAN, DMIC & DSPK, GPIOs
USB 2.0
UART, SPI, CAN, I2C, I2S, DMIC & DSPK, GPIOs
Power 15W | 30W | 50W 10 W | 15 W | 30 W
Mechanical 100mm x 87mm
699-pin Molex Mirror Mezz Connector
Integrated Thermal Transfer Plate
100mm x 87mm
699-pin connector
Integrated Thermal Transfer Plate

 

f:id:asarinomisosoup:20211111223424p:plain

スマホの方向けに画像化しました

 

AGX Orinは、AGX Xavierと同じピン数とモジュールサイズになっています。

AIパフォーマンスはXavier比で6倍近くになるほか、CUDAコア数は4倍に増えており、比較的小さな計算モジュールなのにここにきて一気にPCのミドル~ハイグレードGPU並みのコア数を備えてきました。

CPUは12コアの計算ユニットを搭載し、メモリ帯域とあわせてXavierよりも強化されています。

 

また、Orin NXではXavier NXと比べて削られていたMIPI CSIカメラインタフェースも、AGX Orinに関しては据え置きという形になっています。

しかし、ハードウェアエンコーダの性能はXavier比で半減となっています。

 

その他際立っている点としては、ネットワークインターフェースに10ギガビットイーサネットが4系統追加されている点でしょうか。1ギガビット越えの有線LANインターフェースを備えた民生用PC周辺機器が手にしやすい価格になりつつあるので、この辺もだんだん標準装備になっていくのかもしれません。複数の通信系統があることで一種のハブのような形でシステム構築することもできそうです。

 

それから、今回表には載せていませんが、概要やスペックシートのPDFファイルに記載されているように、Orinはハードウェアエンコーダが「AV1」に対応しているみたいです。エンコード能力はH.265と同程度です。

一方で、Xavier搭載のハードウェアエンコーダでは行えたVP8やVP9のハードウェアエンコード機能は削除されているのか、記載されていません。デコードの方には記載があるのですが。

しかし、AV1はさすがにまだ早すぎと言いますか、デコードですらろくにできないデバイスの方が今は多いのではないかと思います。さすがにアルゴリズムも違うでしょうし、AV1に対応していればVP9にも対応しているということは無いでしょう。というか、やはり対応していれば記載しているところだと思いますし。

同じアーキテクチャを採用しているとすれば、Jetson Orin NXもAV1のハードウェアエンコードにH.265と同程度の性能で対応していると予想できますが、やはりVP8やVP9は削除されているのでしょう。

なので、Orinシリーズ全体をとおしてハードウェアエンコード性能は半減、AV1に対応するもVP8/VP9は削除されるということを念頭に置いたほうがよいでしょう。

 

 

仕様が現時点で公表できる程度にはまとまっていることもあってか、Orin NXは1年後の製品モジュールの販売開始とありましたが、AGX Orinは来年春頃(Q1 2022)には製品モジュールも開発者キットも利用できるようになるみたいです。

開発者キットの形はすでにウェブサイトに掲載されており、現行のJetson AGX Xavierと同等の外形・外観になりそうです。

 

耐衝撃性や広い温度範囲といった、産業向けに主に物理的な防御面で強化(計算能力はやや弱化)された「AGX Orin Industrial」については、AGX Orinより後になりますが販売される計画になっていたと思います。スペック差は現行のAGX Xavier と AGX Xavier Industrial の関係に近いのではないでしょうか。

 

 

全体的に性能が大きく向上し、コア数だけ見ても2000オーバーとかなりリッチな性能を備えており、ただの組み込み用SBCとだけみるにはもったいない代物のようです。

一方で、特にハードウェアエンコード・デコードまわりで機能が従来比で半減しており、NX/AGXのいずれについても言えることですが、やはり適材適所であって、従来モデルでやってきたことをそのままのせるというわけにはいかない用途もあるでしょう。

 

まだ半年かそれ以上は我々とは縁のないところにあるJetson Orinシリーズですが、エッジコンピューティングデバイスとして飛躍した計算機能を持つこれらが活躍する未来には、期待せずにはいられませんね(`・ω・´)

【SBC】NVIDIA Jetson Orin シリーズがついに正式発表されました!~ Jetson Orin NX / Xavier NX の比較

今日、日本時間5時すぎに「NVIDIA GTC 基調講演」がオンラインで行われ、その中で今後のNVIDIAの注力製品群についても説明がありました。

基調講演の内容は以下から視聴できます。

www.nvidia.com

 

 

今回、その講演の中で次期GPUコアモデル「Orin」についても少し触れられていたほか、午後6時ごろに次世代NVIDIA Jetsonモデル「Orin」シリーズの専用サイトやスペック情報が解放されました。

www.nvidia.com

www.nvidia.com

 

NVIDIA Jetsonシリーズは、Raspberry Piのようなシングルボードコンピュータ(SBC)であって、特にGPUまわりの演算性能が強化された計算モジュールになります。

ロボットや精密機械などの組み込みコンピュータとして使われているほか、開発者キットをそのまま使ってPCと同じようにAIなどの機械学習やプログラミングに役立てることができます。

 

今回発表されたのは、すでにロードマップで示されていた下記の2製品です。

  • Jetson Orin NX (Jetson Xavier NXの後継)
  • Jetson AGX Orin (Jetson AGX Xavierの後継)

 

ロードマップや今後提供されるJetson向けソフトウェアパッケージ「JetPack 5.0」については別の投稿で触れています。

asarinomisosoup.com

asarinomisosoup.com

 

 

本エントリーでは、Jetson Orin NXについて触れてみたいと思います。

まず、基本性能の比較を下記の表にまとめました。

 

  Orin NX Xavier NX
AI Performance 100 TOPS (INT8) 21 TOPS
GPU NVIDIA Ampere arch.
w/1024 CUDA cores & 32 Tensor cores
NVIDIA Volta arch.
w/384 CUDA cores & 48 Tensor cores
Max GPU Freq 1 GHz 1.1 GHz
CPU 8-core Arm Cortex-A78AE v8.2 64bit CPU
3MB L2 + 6MB L3 cache
6-core NVIDIA Carmel ARM v8.2 64bit CPU
6MB L2 + 4MB L3 cache
Max CPU Freq 2 GHz 1.9 GHz
DL Accelerator 2x NVDLA v2.0 2x NVDLA Engines
Vision Accelerator PVA v2.0 7-Way VLIW Vision Processor
Memory 12 GB 128-bit LPDDR5
102.4 GB/s
8 GB 128-bit LPDDR4x
59.7 GB/s
Storage Supports external NVMe 16 GB eMMC 5.1
CSI Camera Up to 4 cameras (8 via virtual channels)
8 lanes MIPI CSI-2
D-PHY 1.2 (20 Gbps)
Up to 6 cameras (24 via virtual channels)
12 lanes (3x4 or 6x2) MIPI-CSI-2
D-PHY 1.2 (up to 30 Gbps)
Video Encode 1x 4K60 | 2x 4K30 | 6x 1080p60 | 14x 1080p30 (H.265) 2x 4K60 | 4x 4K30 | 10x 1080p60 | 22x 1080p30 (H.265)
2x 4K60 | 4x 4K30 | 10x 1080p60 | 20x 1080p30 (H.264)
Video Decode 1x 8K30 | 2x 4K60 | 6x 4K30 | 12x 1080p60 | 24x 1080p30 (H.265) 2x 8K30 | 6x 4K60 | 12x 4K30 | 22x 1080p60 | 44x 1080p30 (H.265)
2x 4K60 | 6x 4K30 | 10x 1080p60 | 22x 1080p30 (H.264)
UPHY 3 x1 + 1 x4 PCIe Gen 4
3x USB 3.2 Gen2
1 x1 (PCIe Gen3) + 1 x4 (PCIe Gen4), total 144 GT/s
4x USB 3.1
Networking 1x GbE 10/100/1000 BASE-T Ethernet
Display 1x 8K60 multi-mode DP 1.4a (+MST)/eDP 1.4a/HDMI 2.1 2 multi-mode DP 1.4/eDP 1.4/HDMI 2.0
Other I/O 3x USB 2.0
3x UART | 2x SPI | 4x I2C | 1x CAN | DMIC | DSPK | 2x I2S | 15xGPIOs
USB 2.0 Micro-B
GPIO, I2C, I2S, SPI, UART
Power 10W | 15W | 25W 10 W | 15 W | 20 W
Mechanical 69.6mm x 45mm
260-pin SO-DIMM connector
69.6 mm x 45 mm
260-pin SO-DIMM connector

 

f:id:asarinomisosoup:20211111223517p:plain

スマホの方向けに画像化しました

 

モジュールサイズは完全互換で、ピン数もサイズも一致しています。

そしてOrin NXのCUDAコア数はXavier NXの2倍以上!AIパフォーマンスは4倍以上!

画像処理に特化させてどんどん学習データを集めていく用途に向いていそうな気がします。

ただ、MIPI CSI接続が可能なインタフェースの数が、Orinは少なく設定されているため、たとえば6台のMIPI CSIカメラを接続して計算するという使い方はOrinではできなくなっています。

 

また、ハードウェアエンコーダやデコーダの性能が半分に低下しており、Xavier NXでは2ストリーム同時に処理できていた4K60p映像のH.265エンコードも、Orin NXでは1ストリームまでしか対応できないようです。

Xavier NXではH.264よりもH.265の方が処理性能が高いことから、たとえH.264であったとしてもOrin NXのハードウェアエンコーダの性能にほとんど差異はなく、同様にVP8/VP9に関してはこれよりも低いと言えそうです。AV1が1ストリーム4K60pでエンコードできる可能性はワンチャンありそうですが。

 

と考えると、カメラの数やエンコード性能よりも、エッジコンピューティング用途など末端の計算デバイスとしての計算能力の強化をはかったモデルと考えるのが妥当でしょうか?

従来のJetson Xavier NXやNanoが各種データの取得や簡単な計算処理までを担っていたのに対して、Orinシリーズでは機械学習や推論などのさらに高度で高速な計算を要する処理にも対応させようと意図しているのかもしれません。

 

先述のとおり、CUDAコア数が倍以上に増えているほか、CPUもコア数が2つ増え、メモリ帯域幅も2倍近く高速化しています。まさにコンピュータとしてゴリゴリに並列計算させるのに適したアーキテクチャになっているように見えます。

 

ストレージに関しては、Orinシリーズは内蔵ストレージ(eMMC)を持たず外部ストレージ(NVMe SSDなど)へのシステム書込みのみに対応しているようです。

最近、NVIDIA SDK ManagerがXavierシリーズでSDカードやeMMC以外の、NVMeやUSBストレージにシステムをフラッシュ(書き込み)できるように対応(JetPack 4.6~)しましたが、OrinシリーズではそもそもNVMeがないとシステムの書き込みができないということになるのでしょうか。

 

 

最後にOrin NXシリーズの出荷時期についてですが、ウェブサイトでは1年後のこの時期(Q4 2022)にモジュール版(製品組み込み版)を提供開始すると記載されています。開発者キットについては来年春頃(Q1 2022)になりそうです。

ただし半導体不足の昨今ですので、それが解消されない限りは入手しづらい状況にあるかもしれません。

また、PCIeまわりのインタフェースが強化されたことや、NVMe SSDが事実上必須であるという状況を見ても、現行のXavier NXとはまた違ったキャリアボードになりそうな予感がしています。もしかするとTX2のようなクソデカキャリアボードになるかもしれません。

 

Jetson Nanoシリーズの後継については、2023年にNano Nextシリーズが予定されているので、新しい情報が出てくるまであと1年くらいは待つ必要がありそうです。

 

次回は AGX Orin について同様に比較してみます。

▼以下の記事を追加しました!

asarinomisosoup.com

 

 

はやく試してみたいですね!(`・ω・´)

【プログラミング】画像処理ライブラリ「OpenCV」4.5.4がリリースされました!

ここのところ四半期(3カ月)に1度、定期的にバージョンアップしている画像処理ライブラリ「OpenCV」ですが、2021年10月もまた秋のアップデートがあり、Ver.4.5.4がリリースされました!

opencv.org

github.com

 

 

個人的な見どころは正直あまりないですが、ハイライトとしては・・・

  • GSoC 2021(Google主催のオープンソースソフトウェア界隈の世界的なコンテスト)で発表されたいくつかの機能・改善がOpenCVに吸収された
    • DNNモジュールの8bit量子化とONNXインポーター
    • プログラミング言語「Julia」向けOpenCVバインディングの改善
    • 会話認識のサンプル
    • RISC-Vアーキテクチャ向けのOpenCV DNNモジュールの最適化
    • クロスプラットフォームでのUniversal Intrinsicsおよびparallel_for_のチュートリアル(いずれも並列計算のCPU命令レベルの効果的な計算手法・思想)
  • DNNモジュールにいくつかのパッチが適用された
    • 計算モデルの追加サポートや特定のメモリ問題の修正
    • SoftNMS実装の追加
    • OpenVINO 2021.4.1 LTSのサポート
    • and more!!
  • G-API関連で実装や関数の追加や不具合の修正が行われた
  • opencv_contribにDNNベースの顔検出・顔認識などが追加された

 

OpenCV version.3世代に対しても、3.4.16がリリースされています。

ただし、今後OpenCV 5.0に向けて開発していく中で、3.xのサポートは縮小していくことになります。

 

ライブラリのダウンロードはこちらから。

github.com

 

アップデートが魅力的であったり、ハイライトまわりでよく使っている機能に不都合があれば更新して試してみてはどうでしょうか?

一方、OpenCV 5.0についてはまだまだマイルストーンも道半ば・・・ですらなく、期限も切られていませんが、数年のうちに移行することは既定路線ですので、広がっていくOpenCVワールドに期待していましょう。

【NVIDIA】Jetson向けOSパッケージ「JetPack」にメジャーアップデート!JetPack 4.6 がリリースされました!

NVIDIA版Raspberry Piとも呼べるシングルボードコンピュータ「NVIDIA Jetson」について、Jetson向けに提供されているOSパッケージ「JetPack」のメジャーアップデートがありましたので触れておきます。

 

昨日までは、JetPack 4.5.1 が提供されていましたが、本日より JetPack 4.6 の提供が開始されました!

developer.nvidia.com

 

今回のアップデートは、ロードマップの7月提供開始予定分として掲載されていたものになります。8月に入りたてなので滑り込みセーフ!?

asarinomisosoup.com

 

キーハイライトは NVIDIA Developer Forum でNVIDIAモデレーターの方が書いているとおりです。

forums.developer.nvidia.com

 

Linux for Tegra (L4T) 32.6.1 のドキュメントはこちら。

https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/

 

NVIDIA Jetson Nano 2GB 開発者キットもアップデート対象です。

イメージのダウンロード等は、JetPack SDKのサイトからおこなってください。

 

本稿では、アップデート内容について触れたいと思います。

 

NVIDIA JetPack SDK 4.6 / Linux for Tegra (L4T) 32.6.1 / Linux Kernel 4.9

 

概要:

JetPack 4.6 は、現在のJetPackにおける最新のプロダクションリリースバージョンです。

最近リリースされた「Jetson AGX Xavier Industrial モジュール」(産業用途に特化したAGX Xavier)を含むすべてのJetsonモジュールがサポート対象です。

※AGX Xavier Industrial モジュールにとっては、これが最初のサポートバージョンです。

JetPack 4.6 では、Triton Inference Serverをサポートするほか、CUDA, cuDNN, TensorRT の新しいバージョンや、VPI 1.1 では新しい画像処理アルゴリズムと Python言語向けバインディングを提供します。

L4Tバージョンは 32.6.1 になり、Over-The-Air アップデート機能、セキュリティ機能と、Jetson に接続された内部/外部メディアからシステムを書き換え可能な新しいフラッシュツールに対応します。

 

主な機能:

<OS>

  • Jetson AGX Xavier Industrial モジュールをサポート
  • Jetson Xavier NX モジュールに新しく「20Wモード」(※1)が追加された。これはハードウェアビデオエンコード、デコード、JPEG処理(NVENC/NVDEC/NVJPEG)のパフォーマンスを向上し、またメモリ帯域もより広くする。パフォーマンスの比較表はこちら。従来の10W/15Wモードについては同じ設定値・パフォーマンスで引き続き利用可能。カスタムで作成したモード(nvpmodel)があれば、JetPack 4.6 向けに再作成する必要がある。
  • Over-The-Air (OTA) アップデートに対応。TX2 / Xavier NX / AGX Xavierシリーズ のみサポート。OTAはファームウェアアップデートの仕組みのようなもの。
  • A/B Root ファイルシステムによるシステムに冗長性(バックアップ)を持たせる機能をサポート。今までは起動画面にdisableと出ていたもの。Aで問題が発生してもBで復旧できる。OTAと組み合わせて使いそう。TX2 / Xavier NX/ AGX Xavierシリーズ のみサポート。
  • TX2でセキュアブートが強化され、kernel, kernel-dtb, initrdの暗号化をサポート
  • 外部メディアのディスク暗号化によるデータ保護のサポート。TX2 / Xavier NX/ AGX Xavierシリーズ のみサポート。
  • Xavier NX / AGX Xavierシリーズ向けCBootにNVMeドライバが追加された。これは起動時のkernel, kernel-dtb, initrd の読み込みをNVMeからおこなうことを可能にする。つまりNVMeからOSを起動できるということか。
  • カメラヘッダーインタフェース向けの調整のために、Jetson-IOツールが強化された。デバイスツリーオーバーレイによるカメラデバイスの動的なデバイスツリーへの追加が可能になった。
  • Raspberry Pi IMX219モジュールや、高精度なRaspberry Pi IMX477モジュール向けにMIPI CSI-2 ピン配列の再構築をおこなうことが、Jetson IOツールを使うことで可能になった。これは Nano / Nano 2GB(※2) / Xavier NX 開発者キットで利用可能。従来はRaspberry Pi向けIMX219カメラモジュールはJetsonでは使えなかったが、JetPack 4.6 の Jetson-IOでCSIピンの挙動を変更すれば使えるということだろうか?
  • 後からSDK等の個別のパッケージをインストール可能な、Debian APTサーバー用のダイレクトダウンロードリンクを追加。

 

※1: 20Wモードの導入で、Jetson Xavier NXについてDRAM速度とハードウェアエンコード/デコード速度のデータシート上の仕様が変更になります。対比はフォーラムの以下のエントリーに記載されています。公式のデータシートの更新はまだです。ハードウェア変更なく、現行モデルのファームウェア変更だけでスペックアップできるなんてすごいですね!

forums.developer.nvidia.com

 

※2: ドキュメントを見ると、Xavier NX / Nano 4GB のみに有効とある。設定内容もデュアル動作を前提としたピン配列に再構成されそうな様子。2GBモデルだとそもそもキャリアボードに1系統しかMIPI CSI-2インタフェースを搭載していないが、それでも同じように設定しさえすれば、1台のラズパイカメラでちゃんと動くのだろうか? 

 

<SDK>

  • TensorRT 8.0.1 をサポート。詳細は割愛。
  • cuDNN 8.2.1 をサポート。同上。
  • CUDA 10.2 をサポート。同上。

 

<Multimedia API(動画関係)>

  • H.264ハードウェアエンコードで、Scalable Video Coding (SVC) がサポートされた。
  • ビデオエンコード、デコードで、カラースペース YUV444 8bit / 10bit 画像がサポートされた。

 

<Computer Vision(画像処理関係)>

  • Vision Programing Interface (VPI) 1.1 をサポートした。YUV422 packed カラースペースをVICでサポート。OpenCVとのインテグレーションも容易に。追加された画像処理アルゴリズムは以下のとおり。
  1. オプティカルフロー(CPU/GPUサポート)
  2. ラプラシアンピラミッド
  3. イメージヒストグラム
  4. ヒストグラム均等化
  5. 背景差分
  • OpenCV 4.1.1 をサポート。んー、今やだいぶ古い感が(´・ω・`)
  • Visionworks 1.6 をサポート。

 

<開発者ツール/SDK>

  • NVIDIA DeepStream SDK 6.0(次のメジャーリリース)は JetPack 4.6 をサポートする予定。AIベースの動画像解析ツール。
  • NVIDIA Triton Inference Server Release 21.07 をサポート。これもAI系のツール。
  • Jetsonのパワーモード(10Wモードとかのやつ)を作成するときに、電力消費の見積もりなどに役立つ「PowerEstimator v1.1」ウェブアプリをサポート。

 

さらに細かい内容は、リリースノートをご確認ください。

docs.nvidia.com

その他、ドライバレベルの細かな変更や既知の不具合はこちら。

https://docs.nvidia.com/jetson/Jetson_Linux_Release_Notes.pdf

 

 

かなり興味深い内容も含まれていますね。

Jetson Nano (2GB) を持っている方だと、いくつかは無関係な(というかNanoがサポートされていない)変更もありますが、IMX219なラズパイカメラが使えないとあきらめていた方はちょっと試してみては?私はJetson向けIMX219しか持ってないので試せませんが。

 

Jetsonが気になるという方は、手ごろな2GB版からはじめてみては?

キャンペーンがまだ続いているかは不明。Amazonで買うよりも、RYOYOか秋月で買った方が安いです。RYOYOはネット通販/クレカ決済で送料無料。

asarinomisosoup.com

 

 

なお、経験的に補足している部分も多く、細かいところでもしかしたら間違っているかもしれないので、原文を読むことをおすすめします。

 

おわり。

【Arduino】中華のArduino互換機をWindows10 PCで使用する

メモ書きです。

 

中国製Arduino互換機について、Windows10 PCにUSB接続しても認識しなかったので、ドライバをダウンロードしてインストールしました。

 

▼デバイスマネージャーを見ると、"USB2.0-Serial"に警告がついています。

f:id:asarinomisosoup:20210803030334p:plain

 

▼Arduino IDEからも見えません (COM1と3は無関係です)

f:id:asarinomisosoup:20210803030457p:plain

 

ドライバはメーカーウェブサイトからダウンロードしました。

www.wch-ic.com

 

「CH341SER.ZIP」をダウンロードします。

f:id:asarinomisosoup:20210803030610p:plain

 

Microsoft Defender でウイルススキャンしましたが、特に問題ありませんでした。

f:id:asarinomisosoup:20210803030757p:plain

 

ZIPファイルを展開します。

f:id:asarinomisosoup:20210803030736p:plain

 

「SETUP.EXE」を実行します。

f:id:asarinomisosoup:20210803030829p:plain

ユーザーアカウント制御がでてくるので「はい」。

ちゃんと署名されたドライバでした。

 

「INSTALL」をクリックします。

f:id:asarinomisosoup:20210803030915p:plain

 

インストールが完了しました。

そしたらセットアップ画面は閉じてOKです。

f:id:asarinomisosoup:20210803030953p:plain

 

デバイスマネージャーを見ると、「USB-SERIAL CH340」としてCOM4で認識されていることが分かります。

f:id:asarinomisosoup:20210803031024p:plain

 

Arduino IDEからも見えます。

f:id:asarinomisosoup:20210803031148p:plain

 

ちなみに今回接続したのは、中華Arduino互換機で作ったATMEGA328P書き込み装置です。

「書込装置」を「Arduino as ISP」にして(上図はAVRISP mkIIになっているので変更します)、「書込装置を使って書き込む」を実行してみます。

 

f:id:asarinomisosoup:20210803031616p:plain

成功しました!

 

んー、一度はドライバをインストールしていた気がしたのですが、もしかしたら前に持っていたワークステーションZ600では使ったことがあるけど、今運用中のZ820でははじめてなのかもわからんね。

 

とりあえず備忘録と言うことで。

【プログラミング】NVIDIA Optical Flow SDK 3.0 がリリース!

2021年7月、NVIDIA開発者サイトに「Optical Flow SDK 3.0」がリリースされました!

developer.nvidia.com

 

NVIDIAのグラフィックボードを使用して、オプティカルフローによる動画像中の動きの計算やオブジェクトトラッキングなどを行うことができます。

 

SDKのダウンロードはこちらから。(要NVIDIAアカウント)

developer.nvidia.com

 

今回の大きな更新内容は以下のとおり。

 

1.DirectX 12 Optical Flow APIのサポート

MicrosoftのローレベルプログラミングAPIであるDirectX12が提供するAPIを使って、NVIDIA Optical Flow APIが使えるようになりました。

これにより、DirextX12アプリケーションから、NVIDIA GPUが搭載するパワフルなOptical Flowエンジンを利用することができ、3Dゲームや動画のフレームレートアップやスムーズなアニメーション表現を可能にします。

 

2.フォワード/バックワード Optical Flowのサポート (FBフロー)

従来のSDKでは、例えば連続する2フレームの画像1,2のオブジェクトの動きから、0番目(1の直前)と3番目(2の直後)の画像を推定したい場合、Forward方向(1→2)とBackward方向(2→1)の2回のオプティカルフローAPI呼び出しをしなければなりませんでした。

f:id:asarinomisosoup:20210727225721p:plain

 

この時、API呼び出しや重複する計算によって計算リソースのオーバーヘッドが発生し、計算の効率が良くありません。

今回サポートされた、Forward/Backward Optical Flow APIにより、1回のAPI呼び出しでForward/Backwardの両方向の計算ができるようになりました。

これにより、オーバーヘッドもなくなり、計算リソースを効率よく使用することができます。

 

3.Global Flow Estimation

カメラを固定したまま、カメラを水平・垂直方向に移動させる動作をパンと呼びますが、グローバルフローは連続するビデオ動画像やゲームのフレームにおけるカメラ/視点のパンによって発生します。

画像中のあるオブジェクトではなく、カメラ画角中の背景成分が画面全体にわたって移動するようなときに、グローバルフローベクトルを計算して背景の動きを推定することで、これをフレーム補間に利用でき、フレーム内のピクセル衝突の計算などに利用することができます。

 

 

主な変更点は以上です。

 

Optical Flow APIは、ホビープログラミングや商用製品、教育などを問わず利用できます。

対応OSはWindowsとLinuxの決められたバージョンです。詳しくはNVIDIAのウェブサイトからご確認ください。

OpenCVのAPIからもOptical FlowのGPU計算系の機能からNVIDIA Optical Flow APIを呼び出せた気もしますが、3.0で動作させるには自前でビルドする必要があるかもしれません。ちょっと分からないです(´・ω・`)

 

それと、これ先に書いとけって内容かもしれませんが、Optical Flow SDKはNVIDIAのGPUがないと動作しませんが、特にTuring世代以降(RTX20xxなど)でないと動作しません

もう少し言及すると、Turingアーキテクチャ、AmpereアーキテクチャのGPUでのみ動作します。

たとえばPascal系や、それ以前のアーキテクチャでは動作しません。

 

というのも、NVIDIA Optical Flow APIによるオプティカルフロー計算は、GPU上のCUDAコアではなく、NVOFA (NVIDIA Optical Flow Accelerator) と呼ばれる専用のハードウェアアクセラレーターによって行われるからです。

動画のハードウェアエンコードをGPU上のNVENCで行うように、オプティカルフロー計算も専用のハードウェア回路で計算しています。なのでCUDAコアとは無関係であり、専用回路が搭載されたTuring/AmpereアーキテクチャのGPUでのみサポートされるというわけです。

docs.nvidia.com

 

私も昨年、オプティカルフロー計算をやろうとして、「おっいいのあるじゃーん」と思ったらGPUが対応していなくて断念した記憶があります(´・ω・`)←まだGTX1060で戦ってるやつ

 

なので、Turing/AmpereアーキテクチャのGPUがある方は、ハードウェアアクセラレーションが効いた高速なオプティカルフロー計算をSDKで実装してみてください(`・ω・´)

 

NVOFAというハードウェア回路がTuring/AmpereアーキテクチャGPUで完成しているところを見ると、将来的にJetsonの新シリーズOrinなどで導入される可能性もありそうですね。素人考えなので分かりませんが。

 

Ampere世代はPCの電源まわりがついていけてないのであれですが、Turing系だったらワンちゃんありそうなんだけど・・・

ぼくもお金あったら買うんだけどなー(´・ω・`)←金欠

 

おわり。

またNVIDIAまわりでおもしろそうなSDKのアップデートが入ったら、触れられる範囲でここでも取り上げてみたいと思います。

【プログラミング】OpenCV 4.5.3 / 3.4.15 がリリースされました!

f:id:asarinomisosoup:20210725151412p:plain

 

画像処理によく利用され、最近だとAIを用いた画像処理まで取り扱うようになっている、オープンソースでフリーなライブラリ「OpenCV」。

 

7月19日に、新しいバージョン「4.5.3」がリリースされました。

※3.x系では、3.4.15がリリースされました。ただし、今後OpenCV5.0への移行とともに、3.x系のサポートも徐々に終了していきます。

 

だいたい4半期に1回、新作アニメの放送が始まりだす月に次のバージョンがリリースされています。

これと並行して、今後、5.0に向けて作業が進んでいる段階でもあります。

 

更新履歴は以下に掲載されています。

github.com

 

日本語の記事はこちら。

codezine.jp

 

ハイライトとしては、

  • highgui: UIバックエンドを追加
  • videoio: UMat/OpenCLについて、FFmpegバックエンド越しにハードウェアアクセラレーション(GPU)が有効なビデオデコード/エンコードをサポート
  • video: DaSiamRPNトラッカー(ビデオトラッキング用のが、OpenCVアルゴリズムとして実装された

DaSiamRPNトラッカーは、画像中のオブジェクト追跡を行うための機械学習モデルです。国際学会で発表された手法で、最近では新しいオブジェクト追跡手法を既存手法と比較する際に、比較対象としてこのトラッカーが用いられることが多いようです。

DaSiamRPNトラッカー自体は、Pythonで記述されたコードがGitHub上で公開されており、デモ動画も同ページにて掲載されています。

github.com

 

今回のOpenCVアップデートで、このトラッカーがOpenCVで利用可能なトラッカーとして導入された形です。

 

たぶん(´・ω・`)

 

  • DNNモジュールまわりでは、CUDAバックエンドでMatMul(行列積の計算)がサポートされたほか、いくつかの不具合修正が適用された
  • Intel Inference Engine バックエンド(OpenVINO)まわりでは、OpenVINO 2021.4 LTSリリースがサポートされたほか、IE clDNN プラグインで OpenCLカーネルキャッシュが有効化された
  • G-APIモジュールまわりでは、新しいPythonオペレーションAPIや、Pythonバインディングがサポートされた、など。

 

Contribの方では、1次元バーコードがサポートされるなどしています。

 

今まで使ってきたOpenCVライブラリのバージョンをアップデートするほどではないかもしれませんが、気になる方は、試してみてはどうでしょうか?