世界を動かす技術を、日本語で。

高速CPUを購入する価値がある

概要

  • CPU性能の進化 と現状のギャップ
  • AIコーディングサブスク の価格と価値
  • 高性能CPU投資 の費用対効果
  • ベンチマーク比較による 生産性向上
  • 最適な開発ツール選択 の重要性

エンジニアの生産性とCPU投資の価値

  • 近年、 CPUの性能向上 が著しい状況
  • 多くのユーザーが 旧世代モバイルチップ を使用、これが生産性の足かせ
  • AIコーディングサブスクリプション (例:Cursor)は年間約 $480 で提供
  • 他のAIサービスも同程度の価格帯、 エンジニアの生産性価値 が明確化
  • 米国シニアエンジニアの年収を考慮すると、 1%未満の効率向上 でも十分な投資効果

ハードウェア投資とコスト比較

  • AMD Ryzen 9 9950X (デスクトップ最上位CPU)は約 $500
  • 法人では開発マシンを 3年で減価償却、年間コストは約 $170
  • AIサブスクの年間コスト ($500)と比較して CPU投資の割安感 が際立つ

ベンチマークによる性能差

  • 2024年時点での 旧世代ノートPC (i7-1165G7)、 最新ThinkPad (Ryzen 7840U)、 最上位デスクトップ (Ryzen 9950X)で検証
    • Linux Kernelの TLSオペレーションのコンパイル時間 で比較
    • 10倍以上の差 が発生するケースも確認
  • 例: ビルド待機時間3秒 vs 30秒3秒 vs 300ms の差が業務効率に大きく影響

性能向上の一般的傾向

  • デスクトップCPUノートPC用CPUの約3倍 の性能
  • 最新CPU3年前の上位モデルの約3倍 の性能
  • クラウドVM でも同様、 新世代ごとに2〜3倍 の性能向上が多い
    • 価格はほぼ据え置き

結論:最適なツール選択のすすめ

  • AIサブスクを正当化できるなら、最高のCPU投資も正当化可能
  • 生産性向上 のためには、 最新・最速の開発ツール 導入が最善策

Hackerたちの意見

この記事は重要なステップをいくつか飛ばしてるね。例えば、速いCPUが開発者のパフォーマンスにどれだけ影響を与えるかってこと。コンパイル時間が短くなると、パフォーマンスが大きく向上するのには同意するよ。30秒って、開発者が気を散らしてメールチェックしたり、SNS見たりするには十分な時間だからね。要するに、30秒を3秒にできれば、開発者は集中しやすくなる。ここで見落とされてるのは、CPUの速度を上げることでコンパイル時間がどう短縮されるかってこと。もしコンパイラがIOバウンドだったら?それともメモリバウンド?ボトルネックの一つを取り除いても、次のボトルネックにぶつかるだけで、必ずしも全てのパフォーマンス向上が得られるわけじゃないよ。

IOバウンドのコンパイラって変だよね。メモリはあり得るけど、新しいCPUはRAMとの通信も早いから… LSPが2倍早く答えを返してくれるだけでも、集中力を保つのにはいいと思う。

ハードウェアのアップデートで30秒から3秒に短縮できる時代にはないと思うよ。雇用主が最初の購入で本当にケチってた場合を除いてね。記事ではノートパソコンとデスクトップを比較してるから、タイトルは「二台のコンピュータを買うべき」ってすべきだと思う。

コンパイラに縛られてたらいいのに。今は、すべてがクラウドに移行してるから、MicrosoftのMFA(携帯電話を手に取らざるを得ない、気を散らすポータル)を待ってたり、PIMから時間制限のある許可をもらったりすることが多いんだ。コンパイラのために30秒待つのが一番遅い時代はとっくに終わったよ。

コンパイルする時に覚えておくべきことは、コアを増やしてもリンク時間にはあまり効果がないってこと。リンク時間は通常、単一コアに依存していて、ボトルネックになることが多いから。

ボスに頼んで、見つけられる中で一番強力なサーバーを15000ドルくらいで手に入れてもらったんだ。ベンチマークでは、40コアを超えるとほとんど効果がなくて、時には遅くなることもある。56コアあるのにね。(52コアだったかな?今は確認できないけど)コアを増やすとビルドが遅くなることもあるって結論に至った。メモリ帯域幅が限界だって思ってるけど、どう証明するかは分からない。

雇用主、特にFANGみたいな金持ち企業でも、開発者のハードウェアにはかなりケチだよね。モニターの数やサイズを制限したり、エルゴアクセサリーに評価や医者の診断書を必要にしたり。強力なハードウェアに特別な承認を求めたり、旅行に特別な承認を必要としたり、インフレに対応してないホテルや航空券の上限を設定したり。正直言うと、ウェブ開発や500個のChromeタブを開くために最高スペックのMacBookを注文する人もたくさん知ってるよ。確かに乱用はあるけど、その乱用も数千ドルのラップトップやモニター、ワークステーションに収まる程度で、高スペックでも開発者の年収のほんの一部に過ぎないんだよね。

おそらく、数万から数十万の従業員に対する制約のないハードウェアや出張の総コストを過小評価していると思うし、メリットを過大評価しているんじゃないかな。支出にはある程度の制限やハードルが必要だよ。さもないと、数人の無頓着な従業員が大金を使っちゃうから。

私が働いてきた資金が潤沢なスタートアップは、従業員がほぼ何でも要求できる時期を経てきた。新しいコンピュータ、モニター、特別な椅子、立ち机、SaaSソフトウェア、遅くまで働いているときのDoorDashなどね。エンジニアが必要だと言えば、手に入る。だけど、しばらくすると支出を詳細に見始めて、25%くらいの人がその可能性を悪用しているのを見て驚くんだ。そしたら、制限がかかるようになる。>「悪用がある。でも、その悪用は高性能のノートパソコンやモニター、ワークステーションでも数千ドルに制限されている。」と思うかもしれないけど、6,000ドルのフルスペックMacBook Pro、2,000ドルのモニター、3,000ドルの立ち机、1,500ドルのiPadに100ドルのAppleペンシル、300ドルのキーボードケース、1,000ドルの椅子、ライセンスが積み重なるSaaS、そして(許可されていれば)「特別な状況」のための食事配達サービスが常態化していると、個人が数万ドルの支出をするのは普通のことだった。自分の支出を抑えている人には信じがたいことだよ。ある人たちは、会社の方針を隠れた限界に達するまで利用するものだと見なしている。想像以上の規模でソフトな詐欺も始まる:誰でも新しいノートパソコンを簡単に手に入れられると、古いのが「盗まれる」率が高くなったりする。遅くまで働くために食事配達を提供したとき、多くの人が食事が届くまでスマホを見ながらちょっと遅くまで残って、その後食事を持って帰るようになった。

ウェブ開発だけのため?私はノートパソコンで必要なものをすべて動かすためにスワップすることがよくあるよ。理想を言えば、VScode、webpack、jestを常に動かしておきたい。たまにplaywrightも必要になる。それは、Chromeのタブを開く前の話だけどね。

仕事に関係あるなら、500個のChromeタブを開くのは虐待じゃないよ。それで生産性が上がるならね。俺はノートパソコンの100倍の価値があるから、ノートパソコンができることは全部、ノートパソコンにやらせるべきだと思う。

これを測るのは簡単だよ。コンパイル待ちやノートパソコンがIDEやブラウザを動かすためにスワップしてるときにフローが中断されるたびにストップウォッチをスタートさせて、再びフロー状態に戻ったら止めるんだ。俺たちは失った時間を推定して、小さなスタートアップでは影響を受けた開発者たち(約1/3)にデフォルトの16GBの代わりに48GBか64GBのMacBookを提供してくれたよ。時給100ドル(失った作業が他の誰かをブロックしないと仮定して)だと、アップグレードの元はすぐに取れる。影響を受けた開発者たちは、時には1日1時間待ってたからね。これはCI/CDパイプラインにも当てはまるよ。時間の削減がほぼ線形にスケールする限り、ワーカーのCPU/RAMを増やす価値はほぼ常にあるし、ほとんどのワーカーはどうせ分単位で課金されるからね。

あるFAANG企業のIT部門は、ここ数年、250GB以上のSSDが「在庫切れ」だって言ってるんだ。彼らはそれをグローバルな市場の問題だと言ってるけど、実際はそうじゃない。ローカルでコンパイルしてる人たちのチャットでは常に文句が出てる。エンジニアたちは年収30万ドル以上だから、Amazonで二つ目のSSDをクレジットカードで買って、自分で取り付けてるけど、IT部門には何も言わないんだ。エンジニアにノートパソコンやデスクトップを供給するチームの慢性的な無能さ以外に「不足」の合理的な説明を聞いたことがないよ。一方で、100TBのクラウドVMを立ち上げるのには全く問題がないんだ。まあ、働きやすい場所だから、みんなが知ってるおかしな部分を受け入れてるけどね。

誰かがウェブ開発を例に出してるのを見ると、いつも面白いなと思う。ウェブ開発は、必要なスペックの面でゲーム開発とほぼ同じレベルだよ。そうじゃないなら、実際のウェブ開発はあまりやってないと思う。むしろ、ちょっとしたJavaやPythonのサーバーを動かしてるエンジニアは、仕事をするのにPIと二色の外部ディスプレイがあれば十分なんだ。

コンパイラ開発の仕事では、低スペックのマシンでも問題ないよ。ただし、大きなモニターが必要だけどね。(俺のは3840x2160で、拡張用にサテライトモニターを買った。)追記:サテライトモニターは、リサイクルショップで10ドルで買えることが多いよ。俺が買ったやつも10ドルだった。中古のキーボードは汚れてて掃除が難しいから買わないんだ。

ハードウェアの過剰支出を防ぐための良いインセンティブ戦略って何だろう?予算を設定して、使わなかった分を支給するってのも考えたけど、給料が高いとあんまり意味ないかも。あと、みんなのハードウェアの支出が見える内部ダッシュボードを作るのもいいかも。そうすれば、無駄に注文するのが気まずくなるし。

全体的な意見には同意だけど、

でも、その悪用は数千ドルに制限されてるって言うけど、実際には数万ドル、さらには数十万ドルに達することもあるよ。小さな店でもね。Appleのストアをちょっと見てみたけど、すごい!私が設定できる一番高い14インチのMacBook Pro(ソフトウェアは別として)は、7000ドルを少し超えるんだ!一番安いのは1600ドルで、開発作業には十分なスペックの中価格帯のモデルは2600ドルで手に入る。これを3000ドルに丸めてもいいよね。高級モデルより4000ドルも安い。たった一台の高スペックのノートパソコンを買っただけで、「数千ドルに制限されてる」っていう数字は超えちゃうよ。しかも、いつも悪用の話をしてるわけじゃないんだ。従業員は、4000ドルのスペックリストがあれば生産性が大幅に上がると真剣に思ってるかもしれないけど、実際には3000ドルのものでもほぼ同じなんだよね。この個々の選択を20人、40人、60人のチームに広げると、実際の金額になるし、特に小さなスタートアップには大きな影響がある。モニターや高級なエルゴノミックチェアの話もまだしてないしね。60人が平均して2000ドル余分に使うと、12万ドルかかるよ。(150人以上の従業員がいるところで「必要だと思うものは何でも買っていい」って方針をなくすまで働いてたことがある!)

著者が言及しない重要な注意点があるよ。ノートパソコンのCPUについて話してるからね。ハイエンドノートパソコンの制約は熱の問題なんだ。よりパワー効率の良いCPUを手に入れたら、ちゃんとした熱対策を設計してるブランドを選ぶべきだよ。

ノートパソコンにデスクトップの高性能CPUと同じ世代のものを詰め込むのは物理的に無理だよ。スペースが足りないからね。液冷のループポートを背面に付けて、デスク下の冷却ループに接続するっていう方法くらいしか近づけないと思うけど、そんなことしてる人はいないと思う。だったら、普通にデスクトップPCを買った方がいいし、周辺機器や複数のモニターなどの便利さも得られるからね。正直、なんでそんなに多くの開発者がノートパソコンで作業を続けたがるのか理解できない。私の予想では、これは主にAppleのユーザー層だと思う。Appleの「デスクトップ」は、ほとんどが同じハードウェアを大きな箱に入れただけで、実際には違うクラスのマシンじゃないから。熱管理は少し良くなってるけど、AMDやIntelのノートパソコンとデスクトップの間の劇的な違いはないよ。

  • 開発用に使っているファンなしのMBAを恥ずかしそうに隠している... *

C/C++のコンパイルみたいなマルチコア処理には恩恵があるかも。16コアのAMD Ryzen 9 9950Xのシングルスレッド性能は、古い4コアi5のノートパソコンの1.8倍しかないんだ。https://www.cpubenchmark.net/compare/6211vs3830vs3947/AMD-Ry... 1024コア以上のARMデスクトップが出るのを待ってるよ。1TB以上の統合GPUメモリで大きなLLMを動かせるようになるのを楽しみにしてる。誰か作ってくれたら教えてね :)

そうだね、i3770(12年前!)から9900xに変えたばかりなんだ。シングルコア性能が倍になるのを待ってからアップグレードすることが多いから(386/486時代にたくさんのPCを使ったからね!)。実際にはcpubenchmarkによると50%速くなっただけだけど、ローカル使用では2倍速く感じるよ(マルチスレッドは約3倍速いって報告されてる)。最近Mac Mini M4も手に入れたけど、これらのシステムと比べると遅く感じる。おそらくUIやソフトウェアの問題(M4はxcode用にしか使ってない)で、CPUの生の性能が原因じゃないんだ。 [0] https://www.cpubenchmark.net/compare/Intel-i9-9900K-vs-Intel...

新しいノートパソコンを手に入れたとき、Intelの世代を5世代も飛び越えたんだけど、性能はあんまり変わらなかった。でも、10ポンドもあるワークステーションの怪物から、ファンもほとんど回らないスリムな13インチのノートパソコンに変わったのは価値があったよ。小さなUSB-Cのアダプタで動くし、速さも同じくらいだからね。

ワークロードによるね。24コアのCPUで新しいマシンを作るのに数千ドル使ったけど、gccのDockerビルドはかなり速くなった。でも、コアのAngularアプリは、数年前のMacBook Proよりも数秒遅くビルドされるんだ。ライブラリをすべて分割して、Turboでビルドして、他の最適化をしてもね。エディタからブラウザにCSSの変更が反映されるまで6〜10秒かかるのは、数時間、数日、数週間、数ヶ月、数年経つと本当に耐えられない。

ウェブ開発は本当にクレイジーだね。Java/Cのコードベースから、TSを使うウェブ開発会社に移ったんだけど、後者はビルドに数分かかる。前者は数秒でビルドできて、ウェブアプリが準備できる前にシミュレーションバックテストを実行できた。マジで驚いたよ。本当に、これは取引ソフトウェアよりも複雑だね。

新しいデスクトップを組むときは、いつも最高性能に近いものを選んで、キャッシュや消費電力にも考慮してるよ(昔はみんなそれを気にしてたよね?笑)。デュアルペンティウムプロから、今のデスクトップ - Xeon E3-1245 v3 @ 3.40GHz、2012年末に32GBの最高級RAMで組んだやつで、最近ようやくちょっともたつきを感じるようになったのは、主にWindowsに追加されたCPUセキュリティ対策のせいだと思う。だから、最初に数百ドル余分に出すことで、後々何年も余裕ができるんだ。

ちょっとした性能向上の価値を過大評価してる人が多いと思う。最近9700XのゲーミングPCを組んだんだけど、9800X3Dはベンチマークで18%の性能向上があるのに、消費電力は倍なんだ。俺はCPUをフル稼働させることはあまりないけど、常に電力を消費してる。消費電力が高いと、熱が出やすくなって、電源や冷却システムに負担がかかる。だから、もっと控えめなシステムの方が、ずっと長持ちすると思う。

古いCPUを持っておく価値はあるかな?俺は2016年製の6600(ピーク65W)を日常的に使ってる。SSDは一度交換した(MLCは5年持ったけど、2011年のSLCドライブは永遠に持ってくれるといいな)、32GBのDDR4メモリを2本(Kingston Micronは8年持ったけど、AliExpressの「Samsung」メモリは50ドルで買った)とモニター(Eizo FlexScan 1932は15年持った!RIP、Eizo RadiForce 191M、f.lux/redshiftと一緒に使うと青色光なしで素晴らしい画質になるからおすすめ)を使ってる。今でも、今年リリースされたゲームを60FPSでプレイできるくらいのパワーはあるよ(2024年のロー・プロファイル3050を使ってる)。バloatをコンパイルするのも問題ないしね。古いCPUは壊れるまで、完全に壊れるまで持っておくべきだよ…実際にはマザーボードが壊れるまでね。6600が死ぬのを待ってるKaby Lake 35Wの代替品があるんだ。

2011年の純SLCよりも大きくて、たぶん安いSLCキャッシュ付きのSSDを買えるよ。

使い方によるね。私は今でも17年前の2.4GHz Core 2 Duoに4GBのRAMを搭載したマシンを日常的に使ってるけど、全然壁にぶつからないよ。ここにいるほとんどの人はそれを受け入れないだろうけど、彼らの仕事の負荷がもっと要求してるからなんだ。

でも、プレイするゲームによってかなり変わるよね。7700kからアップグレードした時、Factorioのワールドで苦戦してたけど、AMD 5700X3Dは全くスムーズに動いてる。ただ、Path of Exile 2では、大きな戦闘中にCPUが30fpsを維持するのがやっとだよ。

2年前にRyzen 5700にアップグレードしたんだ。5800じゃなくて、TDPが低いからね。コアを最大限に使うことはほとんどないし、冷却システムのおかげでファンがうるさく回ることも滅多にないよ。

私は中国製のmATXマザーボードにE5-2650v2を使ってる。数年前にeBayでサーバーから引き抜いたCPUを50ドルくらいで手に入れたんだ。970 Evo SSD、24GBのバラバラなDDR3。家のサーバーや開発環境(Incusでコンテナ化)を動かしてる。毎年、新しいRyzenを手に入れようと思うけど、正直言って、今のでも十分動いてるし、特に遅くもならないんだよね。

前のFAANGでの仕事では、実際の業務に基づいて16GBと64GBの開発者用マシンの配分を計算したんだ。待機時間の節約がどれくらいできるかを見積もって、開発者の時間のコストで掛け算したら、シニア開発者の給料で数週間で見込める合理的なROIが出たよ(ジュニアだと数ヶ月かかるけど)。これを踏まえて、ソフトウェアエンジニアにハードウェアを提供するなら、最高スペックのMacbook Proを買って、2〜3年ごとにアップグレードするのがほぼ必須だと思ってる。デスクトップ以外や他の職種についてはコメントできないけど、参考までに。

数学的には間違いないけど、開発者の生産性をそんなに簡単に定量化できるのかな?人には一日の認知能力がある程度固定されているっていう研究がたくさんあって、私の経験とも合ってると思う。コンピュータが終わるのを待つのは、次の深い思考のためのエネルギーをためるミクロブレイクみたいに感じることが多い。

FAANGはマシンを管理してるよ。このレベルの監視の倫理は置いといて、OSのメモリ使用量をソフトリミットして、PRの数やキーボードを使っている時間などのメトリクスを追跡してみたいな。

あなたの意図は分かるよ。場合によっては明らかだしね。低メモリのマシンじゃ特定のドキュメント設定ができないとか。実際には、プロジェクトの完了までの時間を正確に予測することなんてできないよ。速いコンピュータが「時間を節約する」ことはほとんどない。バイナリ的に「これがあれを動かせるか」か、作業環境の問題で「開発者が、たった1000ドルで解決できる問題のために毎日10分余計に待たなきゃいけないって知ってイライラするか」ってことだね。

FAANGの友達のほとんどは、リモートでサーバー上で作業してるよ。リモート編集、リモートビルド。ビルドは巨大なネットワーク化されたクラウドビルダーで行われて、1回のビルドで何百台から何千台も使う。彼らに速いローカルマシンを与えても、ほとんど意味がないんだ。だって、ローカルで何もやらないから。

最高スペックのMacbook Pro以外を買う意味はほとんどないよ。 マジで、雇い主がMacbook Proを買うのをやめて、ちゃんとしたLinuxデスクトップで作業させてくれたらいいのに。真面目な作業マシンにクソみたいな熱制限のある遅いスマホチップなんてもううんざりだよ。

長期的なCPUの価値にはピークがあるよ。つまり、1) 一般的な計算を10年間こなせる性能があり、2) 後のチップよりも長い間優れているCPUのこと。i7-4770はその一つだった。10世代目くらいまで、後のIntel CPUよりも安定して優れていたよ。今でも使ってる店を知ってる。これに相当する最初の代替品はi7-12700だけど、i5-12400もいい買いだね。13世代では、IntelはEコアとPコアを入れ替えたけど、彼らにはそれぞれの役割がある。でも、新しいデスクトップには12世代を好むかな。それを超えると、著者が言ってるAMD Ryzen 9950xについては正しいよ。すごく優れたチップだ。友達のカスタムビルド(ビジネス用、ローカルLLM)で使ったけど、2035年まで使われるだろうね。

これ面白いね。うちの会社、最近古いハードウェアのガレージセールをやったんだけど、今度は4つの異なるハードウェアと4つの言語をまとめたものを投稿しようと思ってるんだ。MシリーズのMacも入れるつもりなんだけど、これをやろうと思った主な理由は、彼らのモバイルパフォーマンスが驚くほどすごいからなんだよね。