[RISC-V技術ブログ連載第22回]QEMUを使ってRISC-Vを試す③ ~SiFive Intelligence X280編~

RISC-V

1.はじめに

 以前のブログ記事、QEMUを使ってRISC-Vを試す①QEMUを使ってRISC-Vを試す②で、QEMUを使ったRISC-Vの開発についてお伝えしたところ、大変ご好評いただきました。今回は、SiFiveが現在力を入れているSiFive Intelligence X280プロセッサの概要をお伝えした後、RISC-V Vector Extension(RVV)について簡単なご説明、そしてX280のリファレンスプラットフォーム(X280 Reference Platform)の一部として提供されるQEMUを使って、RVVの動作を確認する様子をお伝えしたいと思います。

2.SiFive Intelligence X280プロセッサとは

 SiFive Intelligence X280とは、SiFiveが提供するSiFive Intelligenceファミリの第一弾となるプロセッサで、RISC-V Vector Extension(RVV) 1.0とSiFive Intelligence Extensionsをフルサポートしたマルチコア、マルチクラスタ対応のRISC-Vプロセッサです。X280は、消費電力の制約がある中で高スループット、シングルスレッド性能を必要とするアプリケーション(例:AR、VR、センサーハブ、IVIシステム、IPカメラ、デジタルカメラ、ゲーム機器など)にも最適なプロセッサで、すでにAI推論、画像処理、データセンター・アプリケーションなど、多くの用途で採用が進んでいます。最近ではNASAが次世代高性能宇宙コンピューティング(HPSC)としてX280を採用したとするニュースも話題となりました。

 X280のユニークで重要な機能を以下に挙げます。

  • Vector Coprocessor Interface
    より容易なプログラミングを可能とするソリューションとして提供され、消費電力と面積の効率化を可能にします
  • Multi-cluster
    クラス最高のマルチトップ性能に拡張する最大4クラスタのコヒーレントなコアコンプレックスを提供します
  • WorldGuard
    人工知能(AI)/機械学習(ML)アルゴリズムを保護するためのトラステッド・エグゼキューションをもたらすハードウェア・システム・セキュリティソリューションです
  • Reference Platform
    市場投入時間を短縮するためのX280 Reference Platformが提供されます

 なお、SiFive Intelligence X280の詳細については、sifive.com/cores/intelligence-x280をご覧ください。

3.RISC-V Vector Extension(RVV) とは

X280でサポートされるRISC-V Vector Extension(RVV)について、簡単に説明します。一般的に、コンピュータは1つの命令で1つのデータしか処理ができません。これをスカラ処理、もしくはスカラ演算と言います。スカラ処理に対して、複数のデータを1つの命令で処理することができるものをベクトル処理、もしくはベクトル演算と言います。ベクトル処理を用いることで効率的に並列計算を行うことができます。

スカラ処理とベクトル処理の違い

 RVVはこのベクトル処理を行うための拡張仕様をRISC-V Internationalが正式に仕様化したもので、2011年11月にバージョン1.0(RVV 1.0)がRatified(承認)されました(※1)。なお、X280は、このRVV 1.0をいち早く採用したRISC-Vコアです。

 ※1 パブリックレビュー版の仕様は、以下からダウンロードできます。
  https://github.com/riscv/riscv-v-spec/releases/download/v1.0/riscv-v-spec-1.0.pdf

4.X280 Reference Platform

 X280 Reference Platformには、X280をFPGAに書き込んで評価するためのビットストリームファイル、ソフトウェア開発環境となる専用のFreedom Studio、Linux BSPが含まれます。ビットストリームファイルを用いて評価を行うためには、別途FPGAボード(Xilinx社製VCU118)が必要となりますが、Freedom Studioに含まれるQEMUを用いることで、より手軽に評価を行うことができます。Freedom Studioには、QEMUの他にRVVに対応したアセンブラ(ASM)、Cコンパイラ(Clang+LLVM)、デバッガ(GDB)、サンプルプログラムなどが含まれています。今回はこのFreedom Studioを使って、RVVに対応したサンプルプログラムのビルドからQEMUによる動作の様子までを見ていきます。

5.RVVの動作デモ

5.1.RVVデモ① ASM+QEMU編

 RVVに対応したASMを含むCソースコードのサンプルプログラムによる動作デモです。ビルドおよびQEMU(X280MC)による実行の様子を動画でお伝えします。以下の画像をクリックすると、通常のスカラ処理のmemcpyとベクトル処理化したmemcpyとの動作の違いをご覧になれます。

RVV動作デモ① ASM+QEMU編/(3min43sec)

5.2.RVVデモ② Clang+QEMU編

 X280 Reference Platformでは、RVVに対応したCコンパイラ(Clang+LLVM)も提供されます。これにより、通常のCソースコードからRVVに対応したASMコードを自動生成することができます。こちらのデモは、Clangに対応したCコンパイラによるサンプルプログラムのビルドおよびQEMU(X280MC)による実行の様子を動画でお伝えします。以下の画像をクリックすることでご覧になれます。

RVV動作デモ② Clang+QEMU編/(2min18sec)

6.まとめ

 いかがでしたでしょうか。今回は現在注目度の高いSiFive Intelligence X280のリファレンスプラットフォーム(X280 Reference Platform)のFreedom Studioに含まれるQEMUを用いて、RVVの動作を確認しました。メインラインのQEMUでも、バージョン7.0でRVV 1.0がサポートされたため、そちらを用いてRVVの動作確認を行うこともできますが、RVVに対応したアセンブラやコンパイラ、デバッガなど別途準備が必要です。Freedom Studioにはそれら一式が含まれており、インストールすればすぐに使える状態となっているため、環境構築の手間を大きく省くことができます。

 

著作権および商標
Linux は、Linus Torvalds の米国およびその他の国における登録商標です。
Microsoft、Windows、Windows 10は、米国Microsoft Corporationの米国およびその他の国における登録商標です。
MacOSは、米国および他の国々で登録されたApple Inc.の商標です。
RISC-V InternationalによってRatifiedされたISA仕様は、クリエイティブ・コモンズ・ライセンス(表示4.0国際)のもとに提供されています。
クリエイティブ・コモンズ・ライセンス(表示4.0国際)
 https://creativecommons.org/licenses/by/4.0/deed.ja
その他本ブログに記載する製品名は、一般に各開発メーカーの商標または登録商標です。
なお、本文中には™ および ® マークは表記していません。

■■DTSインサイトの「システムLSI設計ソリューションサービス」■■
 DTSインサイトでは、システムLSI/FPGA設計の受託も行っています。
 当社のノウハウを活かした、ソフトウェアの移行(マイグレーション)
 サービスも提供しておりますので、お気軽にご相談ください。

システムLSI設計ソリューションサービス紹介は こちら