[ハード] NVIDIA GeForce RTX 3050(8GB) と RTX 2060(12GB) を比較する

深層学習を使った画像認識アプリを開発しているのだけど、顧客向けにデモシステムを作ることになった。処理速度を短縮するために高性能のGPUが必要だ。というわけでGPUの物色を始めたのだけど、昨今のGPU価格高騰の煽りを受けて調達は非常に難しくなっている。アメリカ中を探し回れば高くても入手できないことはなさそうだけど、聞いたことが無いオンラインショップから買うのはちょっと怖いな。

ローカルにも店舗があるMicro Centerなら値段も品揃えも上々なので、購入予算を$500として、しばらくオンラインショップの在庫状況をウォッチしたところ、以下のGPUが候補となった。

  • NVIDIA GeForce RTX 3050 (8GB)
  • NVIDIA GeForce RTX 2060 (12GB)

スペック比較

メーカーサイトから情報を拾い読みして比較する。

ASUS Dual GeForce RTX 3050 8GB GDDR6
https://www.asus.com/Motherboards-Components/Graphics-Cards/Dual/DUAL-RTX3050-8G/

GeForce RTX™ 2060 VENTUS 12G OC
https://www.msi.com/Graphics-Card/GeForce-RTX-2060-VENTUS-12G-OC/Overview

RTX 3050 (8GB)

  • インターフェース: PCI Express 4.0
  • クロック: OCモード: 1807 MHz (Boost Clock), ゲーミングモード: 1777 MHz (Boost Clock)
  • CUDAコア数: 2560

RTX 2060 (12GB)

  • インターフェース: PCI Express 3.0
  • クロック: Boost 1680 MHz
  • CUDAコア数: 2176

数字を比べる限りは、3050のほうに分がある。

ベンチマーク比較

ベンチマーク結果を公開してくれているサイトから情報収集。

GPU(グラフィックボード)性能比較表【2022年最新版】 | PC自由帳
https://pcfreebook.com/article/459993300.html

3DMark Time Spy Graphcs

  • GeForce RTX 3050: 6278
  • GeForce RTX 2060 12GB: 7996

2060のほうが格段に数値が高い。2000シリーズより3000シリーズのほうが高性能だと思っていたので意外。ゲーム用途ではなくてCUDAのベンチーマーク結果を探したら以下のサイトがヒット。

CUDA Benchmarks – Geekbench Browser
https://browser.geekbench.com/cuda-benchmarks

  • NVIDIA GeForce RTX 3050: 73493
  • NVIDIA GeForce RTX 2060: 77964

こちらのサイトでも2060のほうが数値が高い。

結論

RTX 2060のほうが高性能(たぶん)と判断して、これを購入することに決める。

あと、いろいろ調べていて、後発でラインナップに追加されたRTX 2060の12GB版は、オリジナルのRTX 2060よりもCUDAコア数が多いことが分かった。オリジナルのCUDAコア数1920に対して12GB版は2176。

参考サイト

NVIDIA GeForce RTX 2060 12GB Has CUDA Core Count Rivaling RTX 2060 SUPER | TechPowerUp
https://www.techpowerup.com/289528/nvidia-geforce-rtx-2060-12gb-has-cuda-core-count-rivaling-rtx-2060-super

NVIDIA GeForce RTX 2060 12GB to feature 2176 CUDA cores, 184W TDP – VideoCardz.com
https://videocardz.com/newz/nvidia-geforce-rtx-2060-12gb-to-feature-2176-cuda-cores-184w-tdp

[Apache] Apacheの再起動の違い

Apacheの設定変更をした後、新しい設定を適用したいけど動いているサービスは止めたくない。そういう場合はどうすべきか。

Apacheの停止と再起動

以下、公式サイトの説明より。

急な停止

  • 即座に子プロセス全てをkillしようとする。
  • 子プロセスを完全にkillし終わったら親プロセス自身が終了する。
  • 処理中のリクエストはすべて停止され、もはやリクエストに対する応答はされない。

急な再起動

  • 子プロセスをkillするが、親プロセスは終了しない。
  • 設定ファイルを再読込して、ログファイルを全て開きなおす。
  • その後、新しい子プロセスを起動して応答を続ける。

緩やかな停止

  • 親プロセスは子プロセスに現在処理中のリクエストの後に終了するようにアドバイスする。
  • その後親プロセスはPidFileを削除し、ポートでのListenを全て停止する。
  • 親プロセスはどの子プロセスがリクエスト処理中かを監視し続ける。
  • 全ての子プロセスが終了するかGracefulShutdownTimeoutで設定した時間が過ぎると、親プロセスも終了する。

穏やかな再起動

  • 子プロセスに現在のリクエストの処理の後に終了するようにアドバイスする。
  • 親プロセスは設定ファイルを再読込して、ログファイルを開き直す。
  • 子プロセスが徐々になくなるに従って、 新しい世代の設定による子プロセスに置き換えていく。
  • そして、これらが新たなリクエストに即座に応答し始める

冒頭に書いたようなシチュエーションの場合、「穏やかな再起動」が適当だな。

参考サイト

Apache HTTP Server の停止と再起動 – Apache HTTP サーバ バージョン 2.4
https://httpd.apache.org/docs/2.4/ja/stopping.html

restartとreloadの違いを調べてみた – Qiita
https://qiita.com/miyuki_samitani/items/79ddc6bf645f51aab03d