周知のとおり、現在、x86 アーキテクチャ プロセッサは PC およびサーバー市場を支配しており、一方、Arm アーキテクチャ プロセッサはモバイル市場を支配し、IoT 市場で大きな市場シェアを占めています。しかし、近年、RISC-V アーキテクチャは、オープンソース、合理化された命令、拡張性などの利点により、エネルギー効率に重点を置いたモノのインターネットの分野で非常に人気が高まっています。

RISC-V International および関連チップ メーカーの主導により、RISC-V はより高いパフォーマンス要件を備えたサーバー市場にも参入し始めています。

2023 年初頭、RISC-V International は HPC を RISC-V 成長の戦略的優先分野として特定し、最近承認されたベクター拡張機能や主要な HPC ライブラリとツールを移植する多数の HPC ソフトウェアの取り組みと相まって、この分野の勢いが急速に高まっていることは明らかです。

ヨーロッパの eProcessor プロジェクト、数千の RISC-V コアを備えたエスペラント CPU、RISC-V の主要なソフトウェア コンポーネントのサポート開発を目的としたマルチベンダー RISE プロジェクトなど、世界中の多くのプロジェクトは、HPC を含むハイエンド コンピューティングにおける RISC-V の人気を促進し、最終的にコミュニティがこのテクノロジをベースにしたスーパーコンピュータを構築できるようにする可能性があります。

さらに、初期のアプリケーション研究により、RISC-V が高性能ワークロードにもたらす利点が裏付けられています。

2022 年 12 月、チップ新興企業の Ventana Microsystems は、RISC-V サミットで世界初の RISC-V アーキテクチャ ベースの 192 コア CPU-VeyronV1 をリリースしました。

レポートによると、VeyronV1 は、Ventana が自社開発した高性能 RISC-V コア、8 パイプライン設計に基づく高度な 5nm プロセス テクノロジーを使用し、最大 3.6 GHz のメイン周波数でアウトオブオーダー実行をサポートし、各クラスターは最大 16 個のコアを持ち、複数のクラスターは最大 192 個のコアをサポートでき、48MB の共有 L3 キャッシュを備え、高度なサイドチャネル攻撃軽減策を備えています。 IOMMU と Advanced Interrupt Architecture (AIA) は、包括的な RAS 機能とトップダウンのソフトウェア パフォーマンス調整方法をサポートし、データセンターのさまざまなニーズに対応します。

Ventana が SPECint2017 テストで開示したデータによると、VeyronV1 の 128 コア バージョンの消費電力は 300 W で、64 コア AMDEPYCMilan7763 (280 W) よりも大幅に優れており、64 コア AWS Graviton G3 (Neoversev1 コア) および 40 コア Intel Xeon Ice Lake8380 (270 W) の 2 倍の強力です。もちろん、これはコア数が競合製品の2倍に達していることが主な要因です。

VeyronV1 には SIMD またはベクトル実行ユニットがないため、AVX-512 を搭載した Intel または AMD サーバー プロセッサにとって非常に不利になることに注意してください。

なお、VeyronV1は現在量産されていません。これまでは今年の第2四半期か第3四半期に顧客にサンプルを提供すると約束されていた。したがって、上記の公式に発表されたデータはまだ紙の上にあります。

これに対し、国内メーカーが今年3月に発売した64コアRISC-Vサーバーチップ「SG2042」は少量ずつ出荷されている。

最近、外国人研究者の Nick Brown 氏が RAJAPerf ベンチマーク スイートを通じてこのチップの実際のテストを実施したところ、広く入手可能な最新の RISC-V チップと比較して、コアあたりの平均パフォーマンスが 5 ~ 10 倍向上していることがわかりました。ただし、マルチスレッドのワークロード下では、x86 高性能 CPU の平均パフォーマンスは依然として 4 ~ 8 倍高くなります。

研究レポートによると、64コアのRISC-Vプロセッサは2GHzで動作し、4つの高性能C920コアで構成され、12レベルのアウトオブオーダー・マルチイシュー・スーパースカラ・パイプライン設計を採用している。

C920 は、3 つのデコード、4 つの名前変更/スケジュール、8 つの発行/実行、および 2 つのロード/ストア実行ユニットを備えた RV64GCV 命令セットを提供します。ベクトル化標準拡張 (RVVv0.7.1) をサポートし、ベクトル幅は 128 ビットで、データ型 FP16、FP32、INT8、INT16、INT32、INT64 をサポートします。ただし、C920 は FP64 ベクトル化をサポートしていません。

倍精度浮動小数点は高パフォーマンスのワークロードの大部分の基盤であるため、これらの演算のベクトル化をサポートできるコアは HPC により高いパフォーマンスを提供する可能性があると研究では述べています。各 C920 コアには、64KB の L1 命令 (I) およびデータ (D) キャッシュ、4 コアのクラスター間で共有される 1MB の L2 キャッシュ、クラスター内のすべてのコアで共有される 64MB の L3 システム キャッシュも含まれています。 4 つの DDR4-3200 メモリ コントローラーと 32 の PCIeGen4 レーンも利用可能です。

HPC ワークロードの重要な考慮事項はベクトル化です。C920 コアは RVVv0.7.1 のみをサポートしているため、コンパイラのサポートは課題です。 RISC-VGNU コンパイラの現在のアップストリーム バージョンは、ベクター拡張機能のどのバージョンもサポートしていません。 GNU リポジトリには rvvv1.0 をサポートするように設計された rvv next ブランチが含まれていますが、研究者が研究を書いた時点では積極的にメンテナンスされていませんでした。

さらに、rvvv0.7.1 には rvv-0.7.1 ブランチがありましたが、このブランチは削除されました。メインライン GCC がサポートされていないため、T-Head はプロセッサ向けに最適化された GNU コンパイラー (Xuantie GCC) の独自のフォークを提供します。

T-Head のカスタム コンパイラは、RVVv0.7.1 と独自のカスタム拡張機能の両方をサポートしています。このコンパイラにはいくつかのバージョンが提供されていますが、20210618 リリースの一部としての GCC8.4 は最高の自動ベクトル化機能を提供するため、研究者が実施したベンチマーク実験にはこのバージョンが選択されました。

このバージョンのコンパイラは、C920 の 128 ビット ベクトル幅に固有のベクトル長固有 (VLS) RVV コンポーネントを生成します。すべてのカーネルは最適化レベル 3 でコンパイルされ、報告されたすべての結果は 5 回の実行で平均化されています。

他の高性能RISC-Vコアとの比較

研究者らは、SG2042 のパフォーマンスを StarFive 開発ボード VisionFiveV1 および VisionV2 と比較しました。 V1 には StarFive JH7100SoC が含まれており、V2 には StarFive JH7110SoC が含まれています。

JH7100 と JH7110 はどちらの SoC も 64 ビット RISC-VSiFiveU74 コア上に構築されており、JH7100 には 2 つのコアが含まれ、JH7110 には 4 つのコアが含まれます。 SoC は 1.5GHz で動作すると記載されており、U74 コアには 32KB (D) および 32KB (I) の L1 キャッシュが含まれています。どちらの SoC モデルにも、コア間で共有される 2MBL2 キャッシュが含まれています。

ただし、SiFiveU74 は RV64GC のみを提供するため、RISC-V ベクトル拡張をサポートしません。

△図 1 は、VisionFiveV2、V1、および SG2042 のシングルコア性能を倍精度 (FP64) と単精度 (FP32) で比較したものです。ここで、バーはカテゴリ全体で速くなったまたは遅くなった平均回数を表し、線は最大から最小までの範囲になります。

図 1 からわかるように、単一の C920 コアは倍精度と単精度の両方で V2 および V1 の U74 コアよりも優れています。

倍精度での C920 コアの平均パフォーマンスは、倍精度で実行される V2 の U74 の平均パフォーマンスの 4.3 ~ 6.5 倍です。さらに、単精度では、C920 はベンチマーク平均パフォーマンスの 5.6 ~ 11.8 倍のパフォーマンスを発揮しました。これはパフォーマンスの大幅な向上であり、C920 には U74 よりも動作が遅いコアはありません。

C920 の一部のコアのパフォーマンスは非常に優れており、たとえば、アルゴリズム グループのメモリ セット ベンチマークは、U74 と比べて FP32 で 40 倍、FP64 で 18 倍高速に実行されます。

このベンチマークは、可能な限り最良の構成のこれらのコアで行われることを強調することが重要です。つまり、ベクタリングは C920 で利用されますが、ベクタリングは U74 ではサポートされていないため、V1 または V2 では使用できません。

SG2042 では FP32 と FP64 の間に大きなパフォーマンスの違いがあり、実際には C920 ベクトル演算が FP64 をサポートしていないことを示しています。比較すると、V2 で倍精度と単精度を実行する場合のパフォーマンスの違いははるかに小さくなります。

研究者らを驚かせた図 1 の結果の 1 つの側面は、VisionFiveV1 が V2 よりも大幅に遅かったことです。テストがシングル コアで RAJAPerf を実行しているだけであることを考えると、チップのデュアル コアとクアッド コアの性質はどちらも同じ U74 コアを搭載しているため、問題ではないため、パフォーマンスはかなり似ているはずです。

ただし、V1 は倍精度では V2 より 6 ~ 3 倍遅く、単精度では 1 ~ 3 倍遅くなります。 V1 は V2 よりも低いクロック周波数で動作していると考えられますが、データシートではどちらも 1.5​​ GHz で動作していると記載されていますが、これを確認するドキュメントやマシンの出力はありません。

図 1 からわかるように、単一の C920 コアによって達成されるパフォーマンスは、既存の一般に入手可能な汎用 RISC-V コアと比較して優れています。 T-Head は、このコアを高性能 RISC-V プロセッサーと説明しています。

また、テストでは、HPC ワークロードの実験に広く使用されている RISC-VCPU の中で最良の選択であると以前考えられていた U74 と比較して、ベンチマーク スイート全体のパフォーマンスが大幅に向上していることも示されています。

シングルコアのパフォーマンスに加えて、SG2042 はコア数の点でも V1 の JH7100 および V2 の JH7110 SoC を大幅に上回っています。

x86サーバーのCPU性能との比較

では、他の商用 x86 サーバー チップと比較して、SG2042 は HPC ワークロードでどのようにパフォーマンスを発揮するのでしょうか?

この点に関して研究者らは、現行世代のサーバーで使用されている他の CPU、つまり 64 コア AMD RomeEPYC7742、18 コア Intel Broadwell Xeon E5-2695、28 コア Intel Ice Lake Xeon 6330、および 4 コア Intel Sandy Bridge Xeon E5-2609 と比較しました。

すべての SMT がデフォルトで無効になっているため、テストはこれらの x86CPU の物理コアでのみ実行されました。

AMDEPYC7742 には 4 つの NUMA 領域に 64 個の物理コアが含まれており、それぞれに 16 個のコアがありますが、メモリ コントローラーは 8 個あります。各コアには、32KB (I) および 32KB (D) の L1 キャッシュ、512KB の L2 キャッシュ、および 4 つのコア間で共有される 16MB の L3 キャッシュが含まれています。 EPYC7742 は AVX2 のサポートを提供し、SG2042 の 2 倍である 256 ビット幅のベクトル レジスタを備え、FP64 のベクトル化をサポートします。

Intel Xeon E5-2695 の 18 個の物理コアは NUMA 領域に配置されており、コア間で共有される 32KB (I) および 32KB (D) の L1 キャッシュ、256KB の L2 キャッシュ、および 45MB の L3 キャッシュを提供します。 AMD EPYC7742 と同様に、Xeon E5-2695 は AVX2 をサポートし、4 つのメモリ コントローラーを備えています。

Intel Xeon 6330 は、NUMA 領域内に 28 個の物理コアすべてを備え、8 個のメモリ コントローラー、32KB (I) および 48KB (D) の L1 キャッシュ、コアあたり 1MBL2 キャッシュ、および 43MB の共有 L3 キャッシュを備えた最新の CPU です。 Xeon6330 は AVX512 をサポートし、512 ビット幅のベクトル レジスタを提供します。

Intel Xeon E5-2609 は、このテストで最も古い CPU です。 2012 年にリリースされ、物理コアは 4 つだけ提供されます。各コアには、64KB (I) および 64KB (D) の L1 キャッシュ、256KB の L2 キャッシュ、および共有 10MBL3 キャッシュがあります。この E5-2609 は AVX のみをサポートしているため、AVX は FP64 をサポートしていますが、ベクトル レジスタの長さは SG2042 と同じ 128 ビットです。

すべてのテストにおいて、研究者らは、x86 物理コアでのハイパースレッディングを無効にしました。研究者らは、ARCHER2 を除くすべてのシステムで GCC バージョン 8.3 を使用し、コンパイルは常に最適化レベル O3 で実行されました。すべてが最高パフォーマンスのスレッド数で実行されるシステム。

△図 4 は、FP64 上のベンチマーク スイートを実行する各チップのシングルコア パフォーマンスを示しています。ここで、バーはカテゴリ全体で速くなったまたは遅くなった平均回数を表し、線は最大から最小までの範囲になります。 SG2042 は平均ベースラインです。

テスト結果から、古い Xeon E5-2609 コアを除いて、すべての x86 コアは C920 よりも優れたパフォーマンスを示しました。ただし、ストリーミングおよびアルゴリズム ベンチマーク カテゴリで平均パフォーマンスが低下していました。

AMD EPYC7742 および Intel Xeon6330 CPU は、Intel XeonE5-2695 よりもパフォーマンスが優れている傾向があります。XeonE5-2695 は 3 つの CPU の中で古いモデルであるため、これは当然のことです。

△図 5 は、ベースラインと比較した、FP32 上のベンチマーク スイートを実行した各チップのシングルコア パフォーマンスの回数を示しています。

図 5 からわかるように、AMD EPYC7742 は単精度と倍精度で実行するとかなり精彩を欠きますが、Intel プロセッサの平均パフォーマンスは同様に良好です。実際、FP32 を使用すると、古代の Xeon E5-2609 コアは、あらゆるレベルで平均して C920 よりも優れたパフォーマンスを発揮します。

ただし、図 5 の平均棒グラフは全体像を示していません。

C920 は FP32 のベクトル化のみをサポートしており、実際、図 5 と図 4 の線からわかるように、FP32 の多くのベンチマーク クラスの最大速度は FP64 の最大速度よりも高速です。

さらに、FP32 上の C920 よりも x86 CPU 上でパフォーマンスが遅い最も遅いコアが多数存在します。これらのコアは自動ベクトル化が効果的に適用される場所であり、実際、lcals ベンチマーク クラスでは、すべての x86 CPU の少なくとも 1 つのコアのパフォーマンスが C920 よりも悪いことがわかります。

要約すると、シングルコアのパフォーマンス比較に関して、FP32 での AMD EPYC7742 の平均パフォーマンスは C920 の 3 倍、Intel XeonE5-2695 は 2 倍、Intel Xeon6330 も 4 倍、XeonE5-2609 は 2 倍、FP64 でのこれらの数値はそれぞれ 4 倍、4 倍、5 倍、20% 高速です。

△FP64 マルチスレッドのパフォーマンス比較。ベースラインよりも速いまたは遅い回数をレポートします。

図 6 に倍精度 FP64 の性能比較を示します。

Basic、lcals、polybench、および stream クラスのテストは、より多くのコアから最も恩恵を受けることがわかります。そのため、SG2042 の平均パフォーマンスは、古い Xeon E5-2609 の平均パフォーマンスよりも優れています。

△FP32 マルチスレッドのパフォーマンス比較。ベースラインよりも速いまたは遅い回数をレポートします。

図 7 は FP32 のマルチスレッド パフォーマンスの比較を示しており、これらの結果には最大の違いが含まれています。読みやすさを向上させるために、研究者らは縦軸を制限し、その値を超える実際の値にラベルを付けました。

マルチスレッド FP32 に関しては、SG2042 は x86 CPU に対して FP64 よりわずかに優れたパフォーマンスを示す傾向がありますが、ポリベンチ クラスは 3 つの最新の x86 CPU ではるかに優れたパフォーマンスを示し、Intel Xeon E5-2609 のパフォーマンスははるかに悪いという点で外れ値です。

要約すると、SG2042 のマルチスレッド パフォーマンスを x86 CPU と比較すると、FP32 および FP64 で実行されるすべてのベンチマーク タイプにおいて、64 コアの平均パフォーマンスは 4 コアの Intel Xeon E5-2609 よりも優れています。

FP32 および FP64 における 64 コア AMD EPYC7742 のパフォーマンスは、それぞれ SG2042 の 8 倍および 5 倍です。 18 コアの Intel Xeon E5-2695 は、単精度で平均 6 倍、倍精度で平均 4 倍を達成します。最後に、28 コア Intel Xeon6330 は、FP32 と FP64 でそれぞれ 6 倍と 8 倍優れたパフォーマンスを発揮します。

結論は:

現在、多くの企業が高性能のRISC-Vハードウェアプロトタイプを開発しているが、市販のRISC-Vソフトウェアでワークロードを実行しようとする場合、これまで選択肢は非常に限られていたと研究者らは述べた。

いずれにしても、これらのソリューションは RISC-V の実験を可能にしますが、高性能のワークロードを生成するために必要な機能をアーキテクチャ的に提供するものではありません。そのため、HPC コミュニティは RISC-V に関心を持っていますが、このテクノロジに対する準備はまだ整っていません。

もちろん、SG2042 は、世界初の広く利用可能な HPC 用マルチコア RISC-V サーバー チップとして、HPC コミュニティにおける RISC-V への関心と採用を大幅に高める可能性があります。ただし、重要な問題は、現世代のスーパーコンピューターで普及している x86 CPU よりも依然として大幅に遅れていることです。

それでも、これは非常にエキサイティングな RISC-V サーバー チップであり、現在市販されている RISC-V ハードウェアと比較していくつかの重要な変更が加えられています。

パフォーマンスはまだ x86 サーバー CPU のレベルには達していませんが、RISC-V ベンダーが短期間で大きな進歩を遂げたことは強調すべきです。対照的に、x86 CPU には長い歴史があり、長年にわたる開発の恩恵を受けています。

現在、サーバー CPU 市場における RISC-V の主な競合相手は Arm サーバー CPU です。結局のところ、理論的には、RISC-VCPU は Arm CPU よりもコストが低く、カスタマイズ性と拡張性が高くなります。

次世代の高性能 RISC-V プロセッサにとって、ベクトル化コードのコンパイルにメインライン GCC と Clang を使用できるようになるため、RVVv1.0 の提供は非常に役立つと研究者らは考えています。

さらに、FP64 のベクトル化、より広いベクトル レジスタ、L1 キャッシュの増加、NUMA 領域ごとのメモリ コントローラーの増加により、パフォーマンスに大きなメリットがもたらされ、x86 高性能プロセッサとのギャップを埋めるのに役立つ可能性があります。


アクセス:

京東モール