私の4つのXeon E7は、1つの第8世代i5よりもパフォーマンスが低いです

私の4つのXeon E7は、1つの第8世代i5よりもパフォーマンスが低いです

あなたに質問があります。

私はオフィスに中古のサーバーを設置し、MLモデルのトレーニングに使用しています。このサーバーには4つのXeon E7 4820(https://ark.intel.com/products/53675/Intel-Xeon-Processor-E7-4820-18M-Cache-2_00-GHz-5_86-GTs-Intel-QPI) - 2,00GHz、8 コア、各 16 スレッド、128Gbs の RAM、128GB の SWAP (SSD スワップ)。

しかし、私はこれで最初のテスト学習を行ったところ、非常に驚​​いたことに、驚くほど遅いことがわかりました。8GB の RAM と 8GB のスワップを搭載した第 8 世代 i5 CPU (1.6GHz、4 コア、8 スレッド) ではトレーニングに 5 分かかるのに、トレーニングには 11 分もかかりました。

Htop によると、並列コンピューティングがオンになっていて、CPU 負荷スパイクは i5 では約 3、4 E7 では 22 です。では、なぜこのようなパフォーマンスの差があるのか​​、何かお分かりですか? ムーアの法則は抗えない現象であることは知っていますが、1 年前のミドルエンド CPU が 4 7 年前の Xeon E7 よりもパフォーマンスが優れているというのは、私には理解できません。お力添えいただければ幸いです。:)

PS: すでに Cuda と CuDNN をインストールしましたが、まだ動作せず、CPU のみで学習を実行しました。結果に非常に困惑したため、問題に対処するために GPU アクセラレーション (サーバーにインストールした小型の 1050 Ti があります) の作業を完全に中止しました。両方のコンピューターでまったく同じコードが実行されていることも確認しました。

前もって感謝します ! :)

答え1

あなたの問題は(ほとんどの機械学習の問題と同様に)おそらくメモリ帯域幅に関係しています。

機械学習は特に CPU 計算を集中的に行うわけではなく、多くの「簡単な」計算を行いますが、メモリの帯域幅によって大きく制限されます。これが、グラフィック カードのストリーム プロセッサが機械学習に適している理由の 1 つです。各ストリーム プロセッサは (CPU と比較して) 比較的制限されていますが、より単純な操作の場合、その膨大な帯域幅とプロセッサの数が制限を補って余りあります。

ランダムに選ぶ第8世代i5:

Max Memory Bandwidth    41.6 GB/s

CPUボス第一世代のE7-4820のメモリ帯域幅は23GB/秒(23,464 MB/秒)であると思われる。

マルチプロセッサ マシンでは、CPU 間でメモリを常にコピーするか、CPU 間でメモリへのアクセスを共有する必要があります。

共有メモリと大幅に低い帯域幅の組み合わせが、古いシステムに悪影響を与えていると考えられます。

新しい Xeon は 85GB/秒以上の帯域幅を主張します。

関連情報