のんびりしているエンジニアの日記

ソフトウェアなどのエンジニア的な何かを書きます。

新しくKaggle用のマシンを調達しました(2020年ver)

Sponsored Links

皆さんこんにちは
tereka114です。本日はKaggle Advent Calendar24日目の記事です。
今回はKaggle用マシンで購入したものとパーツ選びの基準をご紹介します。

qiita.com

Kaggle用マシン

Kaggle用マシンがなぜ必要か

Kaggleをするためにはノートパソコン一台でも十分です。
しかし、勝つには、最近の巨大データ、画像、NLPコンペの増加に伴いハイスペックPCが必要になってきました。
特に画像やNLPでは、CNN、BERTと呼ばれるニューラルネットワークの手法がソリューションを締めており、
普通の特徴量抽出の手法では勝てなくなってきています。

そのため、それなりの人たちの多くはGPUがあるマシンを持っていることが多くなりました。

クラウドがあるのではないか?といった疑問を持たれた方もいると思いますが、
はっきりいってオンプレ運用より高くなるので緊急時以外おすすめしません。

どのような要件のマシンが必要か

高性能なCPU、メモリ、GPUです。といっても元も子もないので、
どのようなところに影響するのかはパーツの選定の箇所で説明します。

パーツの選定

ここでは実際に組み上げたPCのパーツの紹介をしつつ、選定基準を記載していきます。

基本方針

CPU、GPU、メモリは良いものを選定するのは基本です。
しかし、意外に見落としがちなのはマザボと電源です。
この2パーツはとにかく、故障したときに原因がわかりにくいもので相当曲者です。
ここで失敗すると精神衛生が悲惨です。

各々のパーツ

CPU

lightgbmとテーブル加工の処理、画像の前処理で利用します。
画像処理のあるあるですが、良いGPUだけを準備してもCPUがボトルネックになれば高速化されないので、GPUに合わせてCPUも良くする必要があります。
可能な限りスペックをよくしたいなーと思っていたので、次のCPUを選択しました。
10コア20スレッドです。

メモリ

Kaggleでメモリが必要になるケースは概ね2パタンです。

  • 巨大なテーブルデータの場合、ほとんどのデータをメモリに載せる必要があるので
  • 高速化のためのキャッシュ、画像コンペだとすれば画像を読む、加工、廃棄をすることになりますが、廃棄せずメモリに持てると性能が向上します。

GPU

RTX3090です。私が参加するコンペの多くは画像、もしくは、ニューラルネットワーク
勝つソリューションが多いので、ここは譲れないところでした。

MSI GeForce RTX 3090 GAMING X TRIO 24G グラフィックスボード VD7347

MSI GeForce RTX 3090 GAMING X TRIO 24G グラフィックスボード VD7347

  • 発売日: 2020/09/24
  • メディア: Personal Computers

GPUの選定ですが、基本は性能とメモリです。
Kaggle界ではメモリの方が重要視されている気がします。

巨大モデルである程度のBatchsizeを担保しながら動かさないといけないので、11GBでは足りなくなってきていると感じています(MixedPrecisionも使っていますが厳しい)
そのため、24GBある3090を首を長くしてお待ちしていました。

ちなみに、普通の機械学習の勉強とかであれば、ColaboratoryにもGPUあるので、そういったところにGPUはおまかせするのも一つの手だと思います。

SSD

あまり考えずに選定していますが、最近のデータセットの規模から2TBは最低あっても良いと思います。
少ないとストレスなので、可能であれば大きめのものを買うと良いでしょう。

電源

先程簡単に説明しましたが、電源とマザボは最重要パーツの一つです。
というのも、電源とマザボが故障すると原因の調査が難しいものの一つで、問題が起こると、
一度総解体する必要も出てくるぐらい厄介なパーツです。

電源において重要なポイントとしては消費電力のギリギリのW数の電源を購入するのはいけません。
電源自体が劣化すると出力も下がり、運用していて落ちるようになります。
後々の平穏のためにも決してケチってはいけません。

そのため、200-300Wほどは余裕を持っておくことをおすすめします。

マザーボード

電源の箇所で紹介しましたが、最重要パーツの一つです。
可能な限り高めのもの(1万超え-3万程度)のものを購入するようにしています。
私のマザボ購入時のチェックはCPUの型番に対応しているか(これ対応していないと購入し直しです)。
メモリのスロットが何枚あるか、PCI-Eのスロットはどの程度あるかは確認しています。

私はよくASUSのものを購入しています。電源がついているかどうかなどわかりやすいので、気に入っています。

ASUS INTEL Z490 搭載 LGA1200 対応 ROG STRIX Z490-E GAMING 【 ATX 】

ASUS INTEL Z490 搭載 LGA1200 対応 ROG STRIX Z490-E GAMING 【 ATX 】

  • 発売日: 2020/05/21
  • メディア: Personal Computers

PCケース

タワー、ミドルタワーそしてフルタワーの種類があります。
GPU指す場合はフルタワーのものをおすすめです。でかいので余裕があります。

ファン

Intelの標準装備はあまり性能が良くないので必ず外部で購入するようにしています。
巨大ですが、それなりにコスパが良いものを使っています。
私は虎徹を購入するのが標準的なので今回もそれを買いました。

サイズ オリジナルCPUクーラー 虎徹 Mark II

サイズ オリジナルCPUクーラー 虎徹 Mark II

  • 発売日: 2017/06/02
  • メディア: 付属品

最後に

Kaggleを真面目にやりたいと思っている人は購入されることをおすすめします。
多分完成品を購入するよりも自作の方が安いです。