システム

ROSスケジューラ

自動運転のようなリアルタイムシステムでは時間制約を満たしつつ、依存関係のあるタスクをスケジューリングする必要がある。この依存関係を有向非巡回グラフ(DAG:Directed Acyclic Graph)に適用することで、一つのDAGタスクとして扱うことができる。しかし、個々のタスクを優先度によりスケジューリングする場合、重要なタスクの時間制約を満たすことは困難である。著者は、グルーピングを用いたDAGタスクのリアルタイムスケジューリングフレームワークを提案する。提案スケジューリングフレームワークは、個々のタスクの時間制約ではなくグループ単位の時間制約を優先することで、重要なタスクの時間制約を満たすことができる。Robot Operating SystemのリアルタイムスケジューリングフレームワークであるROSCHを改変することで、従来のスケジューリングより多くの重要なタスクのデッドラインミスを削減することを示す。




非対称マルチコア向けOS

同一の命令セットをもつ、計算性能に重点をおいた「大のコア」と、電力効率に特化した「小のコア」を組み合わせた非対称マルチコアアーキテクチャは、要求される負荷の範囲が広いシステムにおいて重要になっている。このアーキテクチャ上で全体のスループットを改善するため、従来、スレッドスケジューラに関する研究がおこなわれてきた。しかし、このアプローチでは、スケジューリングやタスクマイグレーションによるオーバーヘッドが問題になる。本研究では”the multikernel” モデルを取り入れたオペレーティングシステム(OS)設計を提案する。大のコアや他の計算資源をアイソレーションし、高速化したいプロセスに専有的に割り当てる。これにより、スケジューリングやタスクマイグレーションによるオーバーヘッド、および共有資源へアクセスする際の排他制御を回避し、スループットを改善する。著者は提案するOS 設計をARM big.LITTLE アーキテクチャの実機上に実装し評価した。評価の結果、共有資源に頻繁にアクセスするプロセスにおいてスループットの改善が見られた。




メニーコア向けOS

次世代のプロセッサアーキテクチャとして期待されている、メニーコアに対する研究を行っています。OSやデバイスドライバといったシステムプログラムの観点から、メニーコア上でのスケーラビリティの検証と、更なる性能向上を模索する事が主なテーマです。現在はIntel Xeon Phi Knights Landingに代表される、タイル構造のメニーコアアーキテクチャに対象を絞って研究を進めています。




SLAMアクセラレータ設計

3次元スキャンのマッチングは空間内での自己位置推定を行う有効な手法である。効率的な手法として知られる3D-NDTは入力点の数N に依存しO(N)でマッチングを計算できる。入力点群はレーザーレンジファインダーによるスキャンで得られ、その解像度は増加傾向にある。また、高速に移動する物体が自己位置推定を行う場合、ミリ秒オーダーのターンアラウンドタイムが要求される。自己位置推定はロボットや自動車などのモバイルデバイスに要求されることが多いが、これらは消費電力の制限が大きい。現在、CPUやGPUを用いたNDTの実装が存在するが、計算能力や消費電力を組み込み機器に適した形で導入することは難しい。本研究では、NDTのハードウェア化を目指す上で扱うデータ量を減らしても精度が保たれることを示した。将来的には、本結果がASICの生成へ応用されることが期待される。




フュージョン型CNN

畳み込みニューラルネットワーク(CNN)の並列化は近年多く研究されており、GPGPUやMPIによる様々な並列化実装がなされてきた。一方で、マルチコアCPUによる並列化についての研究はあまりなされていない。そこで、OpenMPとMPIによって複数のマルチコアCPUによるCNNの並列学習処理を実装し、そのスケーラビリティをスーパーコンピュータ上で評価した。複数の並列化手法と畳み込み手法を実装、比較することで、プロセッサの性能をより引き出せるよう模索した。