ニュース

【GTC2014】NVIDIAがGTCで公開した自動車向けTegra K1の特徴

2014年3月24日~27日開催(現地時間)

 半導体メーカーのNVIDIAは、同社のソリューションや技術などを同社の顧客や開発者に対して説明するイベント「GTC(GPU Technology Conference) 2014」を3月24日~27日(現地時間)の4日間にわたり、米国カリフォルニア州サンノゼにあるサンノゼコンベンションセンターで開催した。今回NVIDIAは、GTCで自動車関連のセッションを多数行い、世界中の自動車メーカーや自動車関連の部品メーカーのエンジニア達もこれに参加するなど自動車業界にとっても注目のイベントとなった。

 そうした中でNVIDIAがハイライトにしたのが、1月に米国ラスベガスで開催した「International CES」で同社が発表した最新製品となる「Tegra K1」だ。Tegra K1はスマートフォン、タブレット、車載情報システムなど組み込み機器向けに提供しているSoC(Sytem on Chip)「Tegra」シリーズの最新製品で、GPUで汎用演算を行うGPUコンピューティングに対応するなどGPUまわりが大幅に強化されているのが最大の特徴となっている。これにより、これまでのSoCでは処理能力が追いつかないため対応することが難しかった安全運転支援機能に対応するなど、新しい使い方が可能になる。

NVIDIAのTegra K1。現在リリースされているのは32bit クアッドコアCPUバージョン

 本記事では、GTCの技術セッションなどで明らかにされたTegra K1の技術的な詳細や、プログラミング環境、アプリケーションのデモなどについてまとめていきたい。

Tegra 2、Tegra 3、Tegra 4についで投入されたTegra K1

 NVIDIAが1月のInternational CESで発表したTegra K1は、2010年に発表されたTegra 2、2011年に発表されたTegra 3、2013年に発表されたTegra 4に続くTegraブランドのARMアーキテクチャのCPUを採用したSoCとなる。TegraシリーズのCPUは、ARMが開発したIPデザインとなるCortex-A9(Tegra 2とTegra 3)、Cortex-A15(Tegra 4とTegra K1)を採用しており、Cortex-A15のTegra K1はクアッドコア構成になっている。

 現在NVIDIAが出荷しているTegra K1はCortex-A15がCPUとして採用されているが、今年後半にはARMアーキテクチャの64bit命令セット(ARMv8)に対応したデュアルコアバージョンの投入も計画されている。ARMv8の64bit命令セットのCPUコアは、NVIDIAが自社で開発したDenver(デンバー、開発コードネーム)で知られるCPUになる。他のSoCメーカーが64bit CPUを、ARMが開発したIPデザイン(Cortex-A57ないしはCortex-A53)を利用して設計しているのに対して、NVIDIAは他社に先駆けて64bitの自社デザインを投入できると見られており、性能面で他社の64bit対応SoCを上回る可能性が高いと見られている。

 現時点でのTegra K1のCPUは、32bitのCortex-A15ベースのクアッドコアだが、NVIDIAオリジナルの拡張もされており、実際にはクアッドコア+省電力動作が可能な小型コアという構成になっている。フルパワーで動く場合にはクアッドコアのプロセッサとして動作し、省電力時には超低消費電力で動作する小型コア側(NVIDIAではこのコアをNinja[忍者]コアと呼んでいる)に切り替えて動作する。これにより、フルパワー時にはフル性能で、OSがアイドル時には必要最小限の電力でと、電力効率を上げる動作が可能になっている。

 Tegraシリーズは、コンピュータとしての機能を1チップで実現するSoCであり、CPUを含むすべての機能がチップに統合されている。Serial ATA(x1)、PCI Express(Gen2)(x4、x1)、USB 3.0×2、CSI(x4+x4)、UART(x4)、I2C(x5)、SDIO/eMMC(x4)、SPI(x4)などのコントローラが内蔵されている。

Tegra K1の特徴。Cortex-A15のクアッドコア32bit CPUとGPUが同じメモリアドレス空間をサポートする。メモリコントローラは12GB/秒を実現していることが特徴
Tegra K1の構成。SoCのため、さまざまな機能が実装されている

GPUの汎用演算を利用することができる「CUDA」に対応したことが最大の特徴

 Tegra K1の最大の特徴は、グラフィックスまわりが大幅に強化されている点にある。従来製品となるTegra 4までは、Tegra専用に設計されたGPUが採用されていたが、このTegra K1世代ではNVIDIAがPCやワークステーションなど向けに開発したGPUのアーキテクチャが採用されているのだ。具体的には、Kepler(ケプラー)の開発コードネームで知られるGPUアーキテクチャで、PC用のGPUであるGeForceやワークステーション用のQuadroなどの現行製品にも採用されている強力なGPUとなっている。と言っても、こうしたSoC用にPC用のGPUがそのまま入るのではなく、Stream Processorと呼ばれるエンジンの数をPCやワークステーション用のGPUより数を減らして搭載されている。しかし、アーキテクチャそのものは共通なので、PCやワークステーション向けに用意されている機能をSoCでも利用できるのが最大のメリットになる。

 その最大のメリットは、CUDA(クーダ)と呼ばれる、GPUを利用した汎用演算の仕組みを利用できることだ。以前は、汎用演算はCPUが、グラフィックスまわりの処理はGPUと役割分担がされてきたが、近年はその役割分担も大きく変わりつつある。GPUは、CPUに比べると小さな演算エンジンが多数搭載される仕組みになっているため、大量のデータを並列に処理する用途に向いており、そうした処理を行うと、CPUを利用して演算する場合に比べて高速に演算することができる。このため、従来CPUで実行してきた並列演算処理をGPUで行うことが数年急速に普及しており、GPUコンピューティングやGPGPUなどと呼ばれている。

 そうしたGPUコンピューティングで最も普及しているのが、NVIDIAが推進するCUDAだ。CUDAはCやC++など慣れ親しんだプログラミング言語を利用してGPUコンピューティングに対応したソフトウェアを開発することができる開発環境で、NVIDIAのPC用のGeForce、ワークステーション用のQuadro、HPC用のTeslaなどで動かすことができる。今回Tegra K1にKeplerベースのGPUが内蔵され、GPUのアーキテクチャがそれらと共通になったことで、CUDAで開発したGPUコンピューティングのソフトウェアを実行できるようになったのだ。

 さらにTegra K1では、これ以外にもISP(Image Signal Processor)やビデオのデコーダ/エンコーダに関しても強化されている。ISPはカメラから入力される映像を処理するエンジンで、Tegra K1ではこのISPが2つ搭載されている。最大で2500万画素の撮像素子をサポートすることができ、CUDAと組み合わせて利用することで、さらにカメラの数を増やすという使い方も可能だ。また、ビデオエンコーダ、デコーダの機能も標準で搭載しており、1920×1080ドット/30fpsのフルHDビデオを2つ同時にエンコードないしはデコードすることが可能になっている。

Tegra K1のGPUを説明するスライド。Keplerと呼ばれるPC/ワークステーション/HPC用のGPUアーキテクチャがモバイル用に採用されている
HPC用のTesla、ワークステーション用のQuadro、PC用のGeForce、そしてモバイル用のTegraに内蔵されているKeplerの演算ユニットの差。このように内蔵されている演算ユニットの数が異なるだけで、アーキテクチャは統一されている
Tegra K1のISP(Image Signal Processor)は2つ標準搭載されている
Tegra K1でのカメラ実装。2つのカメラを実装しても、2つのISPやCPU、GPUなどを利用してコンピュータ処理を行うこともできる
ビデオエンコーダーの詳細、1920×1080ドット/30fpsを2つ処理することができる

NVIDIAの開発ツールを利用してADASやARなどのアプリケーションを容易に開発できる

 NVIDIAはこうしたGPUコンピューティングの機能を自動車メーカーなどに提供することで、ADAS(Advanced Driver Assitance Systems:先進運転支援機能)をサポートする。GPUを利用して、先行する自動車の検出や物体検出、さらには歩行者検出などを行うことができるようになる。実際、自動車部品メーカー大手のデンソーの子会社で研究開発などを担当しているデンソーアイティーラボラトリは、GTCでGPUを利用した機械学習のデモを行い、Tegra K1を利用して歩行者の検出や歩行者が向かっている方向などを検出するデモを行い注目を集めた。

 NVIDIAは自動車メーカーがこうした機能を作成するために複数のツールを提供したり、業界標準規格のサポートを行ったりしていく。また、プログラマーがCUDAをより簡単に利用できるように、VisionWorksと呼ばれるSDKを提供する。VisionWorksには、CUDAや業界標準のAPIであるOpenVXなどを利用する機能が用意されており、ADASの機能、AR(仮想現実)、写真処理、機械学習などの機能を、より容易に実現することができる。現在はバージョン0.10がリリースされており、NVIDIAに登録したパートナーに対して提供されている。また、開発用のエディターやデバッガーなども積極的に提供しており、これまでのプログラミング知識を利用してGPUコンピューティングのソフトウェア開発ができるのがCUDAの最大の特徴だ。

 なお、そうして開発したソフトウェアは、NVIDIAが提供する開発環境で試すことができる。NVIDIAは一般の開発者向けにJETSON TK1という開発キットを192ドルで提供しているが、自動車向けにはより機能を増やしたJETSON PROという開発キットを用意している。JETSON PROの価格は非公開だが、JETSON TK1に比べて、Wi-FiやSSDなどが標準搭載されているなどの違いがあり、搭載されているTegra K1も自動車用グレード(稼働保障温度などがより広い自動車専用版)になっている。現在はCANバスには未対応だが、今年後半にリリースする予定のバージョンではCANバスへの対応が追加される予定だ。自動車メーカーのエンジニアは、このJETSON PROとVisionWorksと合わせて利用することで、実際に自動車向けのアプリケーションを容易に開発することができるようになる。そのようなアプリケーション開発を検討しているなら要注目だ。

NVIDIAが契約パートナーに対して提供しているVisionWorks。半導体だけでなく、ソフトウェアソリューションを自動車メーカーに提供するというのがNVIDIAの戦略
VisionWorksを利用することで、ソフトウェア開発者はADAS対応のアプリケーションソフトウェアを開発できる
VisionWorksのソフトウェアスタック。NVIDIA独自のCUDAや業界標準のOpenVXなどを利用してソフトウェアを開発できる
VisionWorksにはサードパーティのアドオンを組み込むことも可能で、すでに多くのソフトウェアベンダから提供されている
Tegra K1の自動車用開発キットはJETSON PRO
JETSON PROの開発ボード、車載グレードの半導体が利用されている
デンソーアイティーラボラトリのGTCでの技術セッションのデモ。2Dカメラを利用して、歩行者の進路や身長などをGPUで瞬時に計算する

(笠原一輝)