【Stable Diffusion CPUイラスト生成対決】N100 vs i7 4770 ~10年前のハイエンドと現代のローエンド~
こんにちは、Rcatです。
いきなりですが、AIでCPU対決をします。
というのも、現在PCを3台所持しておりまして、初回作は10年前、現在のメインは5年前、そして最近サーバー専用で導入したミニPCです。
古いのはサーバー用途でLinuxを入れて使っています。
今回はその10年前のと最新のミニPCで画像生成AIを動かしたらどれくらい差があるのか試してみました
ハードウェア紹介
10年前の自作PC
ATXの自作PCです。PC欲しくて調べていたら自作できると知って組み立てちゃいました…。
CPU : Core i7 4770
MEM : DDR3-1600 8Gx2
GPU : -外した- (当時GTX760)
最新のミニPC
CPUのスコアを見ているともう4770と大して変わらないのでは?電力的にこっちサーバーにしようと考えて購入。
CPU : N100
MEM : DDR5-4800 16G
GPU : -
こちらに関しては下記記事で紹介しています
スコア比較
まずは一般的なスコアを調べておきます。
下記のサイトでスコアを調べました
ノート向け : https://pcfreebook.com/article/458775622.html
デスクトップ向け : https://pcfreebook.com/article/450856544.html
i7 4770の方が25%程スコアが高いですね。
TDPで1W当たりのスコアにするとN100の方が1100%ほど優れています。
N100
スコア : 5622
性能 : 4C4T TDP:6W
i7 4770
スコア : 7074
性能 : 4C8T TDP84W
予想
スコア的にはかなりN100が追い付いている感があり、メモリもシングルとデュアルの差があるが、速度もDDR5の方が倍以上あるため、足を引っ張るようなことにはならないと思う。
気になるのはスレッド数か。
検証開始
検証はイラスト生成AI StableDiffusionが画像を一枚生成するのにかかる時間です。
検証環境
下記記事で行っている方法でCPUを使用した画像生成を行うようにセットアップします。
OSはLinux(Ubuntu)です。
セットアップは下記記事で行っているのと同じ方法です。
この機会にi7 4770のPCをCentOS7からUbuntuに変更しました。
その他
N100 PCは使用中の為、nohupのログを参照することとします。
使用中のPCで計測すると不利になるので、双方ともにcpulimitコマンドを使用し、使用率を50%に制限します。
具体的にはこんな感じで制限します。
ps - auxでSDのプロセスを特定
cpulimitで制限開始。
adminuser@i7-4770:~$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.4 0.0 167816 12672 ? Ss 22:01 0:11 /lib/systemd/
root 2 0.0 0.0 0 0 ? S 22:01 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 22:01 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< 22:01 0:00 [rcu_par_gp]
root 5 0.0 0.0 0 0 ? I< 22:01 0:00 [slub_flushwq
root 6 0.0 0.0 0 0 ? I< 22:01 0:00 [netns]
root 45561 0.0 0.0 17428 11004 ? Ss 22:17 0:00 sshd: adminus
adminus+ 45598 2.9 0.0 21940 12584 ? S 22:17 0:39 sshd: adminus
adminus+ 45606 0.0 0.0 11272 3712 pts/1 S+ 22:21 0:00 bash ./webui.
adminus+ 45630 195 35.3 8107632 5659992 pts/1 Sl+ 22:21 36:32 python3 -u la
adminuser@i7-4770:~$ cpulimit -p 45630 -l 200
Process 45630 deteted
TOPコマンドで確認します。
4コアなのでCPUの部分が400で100%です。制限しない場合は400に近く、制限後は半分の200に近くなっています。
制限前
%Cpu(s): 45.9 us, 1.5 sy, 0.0 ni, 52.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 15642.3 total, 1517.1 free, 6561.2 used, 7564.0 buff/cache
MiB Swap: 2048.0 total, 2046.7 free, 1.2 used. 8577.7 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
45630 adminus+ 20 0 8414336 5.6g 180380 S 375.0 36.9 207:46.01 python3
制限後
%Cpu(s): 25.2 us, 0.6 sy, 0.0 ni, 74.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 15642.3 total, 1543.6 free, 6533.9 used, 7564.8 buff/cache
MiB Swap: 2048.0 total, 2046.7 free, 1.2 used. 8605.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
45630 adminus+ 20 0 8391296 5.6g 180380 S 207.6 36.8 220:28.64 pythn3
ミニPCでも同様に制限します
%Cpu(s): 60.9 us, 14.8 sy, 0.0 ni, 24.1 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
MiB Mem : 15759.1 total, 824.1 free, 10579.7 used, 4355.3 buff/cache
MiB Swap: 2048.0 total, 1593.0 free, 455.0 used. 4833.7 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
960716 rcat 20 0 9326416 6.1g 46316 T 202.7 39.7 19312:36 python3
検証結果
i7 4770が倍近く早いことが判明。
10年前の物と言えど、i7の肩書と消費電力の前にはN100も歯が立たなかったようだ…。
N100 CPU
Total progress: 100%|██████████| 20/20 [16:58<00:00, 50.91s/it]
Core i7 4770 CPU
Total progress: 100%|???????????????????????????| 20/20 [08:13<00:00, 23.92s/it]
この結果を見ると、N100は16分台であるのに対し、i7は8分台で終わっている。
※100%解放時は確かに4分程度で終わることを確認済み。N100も制限なし時は10分未満で出てきていた記憶があるので、きちんと50%制限はできているようだ。
まとめ
今回は最新のローエンドCPUと10年前のハイエンドCPUを比較しました。
スコアだけ見れば25%程度の差が出ると予想したが、実際は倍近い差になった。
何が左右したのかは正直分からないが、単純なスコアだけでは判断できないということが分かった。
それではまた会いましょう。
情報が役に立ったと思えば、僅かでも投げ銭していただけるとありがたいです。