CPU MUSEUM
(1987-2024.4.11) 🖊
このページの最後に掲載した, 四則演算と関数計算を含んだ FORTRAN/C プログラムを n=1000000 で,コンパイラで最適化せずに様々な機種で実行して,実行時間を計測しました.(2007年以降はn=100000000で実行して時間を1/100にした)
| 機種 | year | CPU Clock | 時間 | (sec) | MIPS | 値 | OS Compiler | ||
| (PC9801) | |||||||||
| EPSON PC286L | 1987 | i286 10MHz | 8000 | 0 | .04 | MS-DOS | FOR | ||
| NEC PC9801NS | 1990 | i386SX 12MHz | 5000 | 0 | .06 | MS-DOS | FOR | ||
| NEC PC9801RX | 1988 | i286 12MHz | 3700 | 0 | .08 | MS-DOS | FOR | ||
| +486GTR+S87R | 60 | 4 | MS-DOS | FOR | |||||
| EPSON PC-386GS | 1991 | i386DX 20MHz +486SLC | 2700 | 0 | .1 | MS-DOS | FOR | ||
| NEC PC9801BX | 1993 | i486SX 20MHz | 1500 | 0 | .19 | MS-DOS | FOR | ||
| NEC PC9801NS/T | 1992 | 386SL(98)20MHz+387 | 90 | 3 | MS-DOS | FOR | |||
| (DOS/V) | |||||||||
| IBM PS/V 486DX2 | 1993 | i486DX2 66MHz | 12 | 22 | MS-DOS | FOR | |||
| Idexon 486/66VLB | 1993 | i486DX2 66MHz | 11 | 26 | Win95 | VC4 | |||
| Fujitsu FMV-499D2 | 1994 | i486DX4 99MHz | 9 | 31 | MS-DOS | FOR | |||
| Toshiba PV3000 5100 | 1995 | Pentium 100MHz | 3 | 94 | Win95 | VC4 | |||
| Fujitsu FMV-5120NU2/W | 1996 | Pentium 120MHz | 2 | .6 | 108 | Win95 | VC4 | ||
| Toshiba PV3000 5100 | 1997 | PentiumODP MMX166MHz | 1 | .9 | 148 | Win95 | VC4 | ||
| Fujitsu FMV-6200D7 | 1997 | PentiumPro 200MHz | 1 | .3 | 217 | WinNT4.0 | VC4 | ||
| Fujitsu FMV-6300T7 | 1998 | Pentium2 300MHz | 0 | .6 | 469 | Win95 | VC5 | ||
| AOpen AX6BC ProII | 2000 | Pentium3 450MHz | 0 | .39 | 722 | Win2000 | VC6 | ||
| FSB 100->133MHz | 0 | .29 | 957 | Win2000 | VC6 | ||||
| SONY PCG-SR9M/K | 2001 | Pentium3 750MHz | 0 | .24 | 1180 | Win2000 | VC6 | ||
| AOPEN AX3S PRO | 2001 | Celeron 800MHz | 0 | .22 | 1272 | Win2000 | VC6 | ||
| Intel D850MD | 2001 | Pentium4 1.7GHz FSB400MHz | 0 | .2 | 1406 | Win2000 | VC6 | ||
| Panasonic CF-R3 | 2008 | PentiumM 1.1GHz | 0 | .196 | 1438 | WinXPSP3 | VC8 | ||
| Panasonic CF-R7 | 2008 | Core2 Duo 1.06GHz U7500 | 0 | .196 | 1439 | WinXPSP3 | VC8 | ||
| AOPEN AX4B PRO-533 | 2002 | Pentium4 2.0AGHz | 0 | .17 | 1684 | Win2000 | VC7 | ||
| ASUS P4P800SE | 2008 | Pentium4 3.0GHz | 0 | .127 | 2214 | WinXPSP3 | VC8 | ||
| ASUS N4L-VM-DH | 2007 | Core Duo 1.83GHz | 0 | .118 | 2397 | WinXP | VC8 | ||
| FOXCONN G31MX-K | 2008 | Core2 Duo 3.16GHz E8500 | 0 | .056 | 5020 | WinXPSP3 | VC8 | ||
| FOXCONN G31MX-K1 | 2009 | Core2 Duo 3.16GHz E8500 | 0 | .042 | 6673 | CentOS5 | gcc | ||
| 0 | .063 | 4456 | CentOS5⁶⁴ | gcc | |||||
| FOXCONN G31MX-K | 2008 | Core2 Duo 3.33GHz E8600 | 0 | .052 | 5412 | WinXPSP3 | VC8 | ||
| Dospara Monarch | 2010 | Core i7-920 2.67GHz | 0 | .051 | 5528 | WinXPSP3 | VC8 | ||
| Dospara Monarch | 2011 | Core i7-2600 3.40GHz | 0 | .04 | 6987 | Win7SP1 | VC10 | ||
| NEC LZ750HS | 2012 | Core i7-3517U 1.90GHz | 0 | .05 | 5613 | Win7SP1 | VC10 | ||
| Dospara Galleria¹ | 2013 | Core i7-4771 3.50GHz | 0 | .038 | 7452 | Win7SP1 | VC10 | ||
| 0 | .04 | 7026 | VC14⁶⁴ | ||||||
| Dospara Monarch LK | 2016 | Core i7-6700K 4.00GHz | 0 | .036 | 7736 | CentOS7 | gcc | ||
| Gigabyte 990FXA-UD3⁴ | 2014 | AMD FX-8320 4.4GHz | 0 | .042 | 6704 | Win7SP1 | VC10 | ||
| SONY VJP1111 | 2014 | Core i5-4210U 1.70GHz | 0 | .056 | 5070 | Win7SP1 | VC10 | ||
| Gigabyte GA-X99⁵ | 2015 | Core i7-5820K 4.2GHz | 0 | .033 | 8356 | Win8.1 | VC10 | ||
| Gigabyte GA-X99⁵ | 2015 | Core i7-5820K 3.3GHz | 0 | .042 | 6664 | Win8.1 | VC10 | ||
| Dospara MagnateGE | 2015 | Core i7-4790K 4.0GHz | 0 | .033 | 8557 | Win7SP1 | VC10 | ||
| DG-M01IW | 2015 | Atom Z3735F 1.33GHz | 0 | .147 | 1913 | Win10 | VC10 | ||
| Dospara Galleria | 2018 | Core i9-7900X 4.3GHz | 0 | .036 | 7728 | Win10 | VC14 | ||
| 0 | .025 | 11 | k | WSL2 | gcc | ||||
| 0 | .0098 | 29 | k | WSL2 | gcc -O3 | ||||
| Fujitsu WU2/D2 | 2019 | Core i7-8565U 1.80GHz | 0 | .036 | 7931 | WSL2 | gcc | ||
| Dospara Monarch ZH | 2019 | Core i9-9900K 5.0GHz | 0 | .029 | 9785 | Win10 | VC14 | ||
| - ASRock Z390 Phantom | 0 | .040 | 7072 | Win10 | JDK15 | ||||
| Gaming 4 | 0 | .041 | 6941 | WSL2 | JDK11 | ||||
| 0 | .023 | 12 | k | WSL2 | gcc | ||||
| 0 | .011 | 25 | k | WSL2 | gcc -O3 | ||||
| ASRock B760M-HDV/M.2 D4 | 2023 | Core i9-13900K 5.8GHz | 0 | .0058 | 48 | k | WSL2 | gcc -O0 | |
| 0 | .0042 | 67 | k | WSL2 | gcc -O3 | ||||
| MSI PRO B760M-A DDR4 II | 2024 | Core i9-14900KF 6GHz | 0 | .0056 | 51 | k | WSL2 | gcc -O0 | |
| 0 | .0041 | 69 | k | WSL2 | gcc -O3 | ||||
| (MAC) | |||||||||
| MacPlus³ | 1986 | 68000 7.83MHz | 18 | k | 0 | .02 | Sys6.0.7 | MPW | |
| PowerMac 7100/66AV² | 1997 | PowerPC 601 66MHz | 3 | .7 | 77 | MacOS7.5 | |||
| iMac(Rev.B)³ | 1998 | PowerPC 750 233MHz | 1 | .4 | 201 | LinuxPPC | gcc | ||
| 0 | .46 | 603 | MacOS8.5 | MPW | |||||
| MacBook Air⁴ | 2012 | Core i7-3667U 2GHz | 0 | .049 | 5637 | OSX10.9⁶⁴ | LLVM | ||
| (WS) | |||||||||
| SUN 4/1+ | 1991 | 12 | .8 | 22 | SunOS | cc | |||
| SUN Sparc Classic | 1992 | 8 | .7 | 32 | SunOS | cc | |||
| SUN Sparc5 | 1994 | 3 | 94 | SunOS | cc | ||||
| Toshiba AS4035 | 1995 | Sparc 110MHz | 4 | .9 | 57 | SunOS | gcc | ||
| Fujitsu S-7/7000U 300 | 1997 | UltraSparc 167MHz | 2 | .2? | 128 | Sola2.5.1 | gcc | ||
| DELL PowerEdge T105 | 2007 | Opteron 1210 1.8GHz | 0 | .078 | 3606 | CentOS5 | gcc | ||
| DELL PowerEdge1950 | 2008 | Xeon E5335 2.00GHz | 0 | .073 | 3873 | CentOS5 | gcc | ||
| DELL PowerEdge T300* | 2009 | Xeon E3113 3.00GHz | 0 | .044 | 6342 | CentOS5 | gcc | ||
| DELL PowerEdge T320* | 2014 | Xeon E5-2440 2.40GHz | 0 | .054 | 5186 | CentOS6 | gcc | ||
| DELL PowerEdge T330* | 2018 | Xeon E3-1270v6 3.80GHz | 0 | .038 | 7469 | CentOS7 | gcc | ||
| DELL PowerEdge R340 | 2020 | Xeon E-2174G 3.80GHz | 0 | .023 | 12 | k | CentOS8 | gcc | |
| 0 | .009 | 30 | k | CentOS8 | gcc -O3 | ||||
| (大型汎用機) | |||||||||
| FACOM M760/8 | 1991 | 6 | 47 | UNIX | cc | ||||
| FACOM M1800@RIKEN | 1990 | 1 | 280 | UNIX | cc | ||||
| FACOM M1700@静岡 | 1994 | (RAM128MB, HDD32GB) | 5 | 56 | UNIX | cc | |||
| Cray-f@Livermore | 1991 | 0 | .003 | 91 | k | UNIX | cc | ||
- 機種名が斜体のものはノート(ラップトップ)型。
- 上付き添え字は,コンパイラ/OSのビット数。添え字のないものは,CentOS6,Win7以降は64ビット,それ以前は32ビット。
- OSの横はコンパイラ。 FOR:MS-FORTRAN Ver4, VC4:Visual C++4.0, VCx:Visual C++ x.0, JDK15:bellsoft-jdk15.0.2+10-windows-amd64, JDK11:OpenJDK 11.0.17。
- UNIXでのコンパイルは,cc -lm -O0 cpu.c。そして,time ./a.out とやると,実行時間が正確に測れます。
- Linuxでのコンパイルは,gcc -O0 cpu.c -lm。gccがインストールされていない場合は,CentOSならyum install gcc,Ubuntuならapt install gcc。
- WSL2の導入方法はここ。
- MIPS値とは,Million Instructions per Secondsの頭文字で,1秒間に実行できる命令数(100万単位)。岩波情報科学辞典より。表のMIPS値は,SUN4/1+の22MIPSを既知として比例計算したもの。この値xをインテルi286からPentium 4までのMIPS値yと比較すると,そう大きくは違っていない。回帰分析するとy=1.27x,
R²=0.989となり,30%ほどの違いである:
- ?WorkStationでこのプログラムを実行する時間は, nには比例しないようです???
- ²Kozeki様 (National Research Institute of Fire and Disaster)より。 コンパイラはSYMANTECH C++ Ver8.02。メールありがとうございます(1997/6/2)。
- ³中西様(卒業生)より.MPW=Apple 純正の開発環境。メールありがとうございます(1999/6/23)。
- ⁴千葉様(北里1年生)より。LLVM=Apple LLVM version 5.1 (clang-503.0.40)。(2014/4/23)
- ⁵山本様(北里大学一般教育部情報科学単位TA)より。4.2GHzはオーバークロック。(2015/2/7)
- *kilin
計測用プログラム
| FORTRAN |
implicit real*8(a-h,o-z)
write(6,*) 'n ?'
read(5,*) n
do 10 i=1,n
x=i
y=sin(x)/x+x
10 continue
write(*,*) 'y=', y
end |
| C |
#include "stdio.h"
#include "math.h"
#include "time.h"
void main()
{
int i,n=100000000;
double x,y,t;
clock_t start,finish;
start=clock();
for(i=1;i<=n;i++){
x=i;
y=sin(x)/x+x;
}
finish=clock();
t=(double)(finish-start)/CLOCKS_PER_SEC;
printf("y=%f\n", y);
printf("cpu time=%lfsec, about %lfMIPS\n",t,22*12.8/t*n/1000000);
getchar(); getchar();
} |
| Java |
public class CpuTimex
{
public static void main(String args[])
{
long t1=System.currentTimeMillis();
int i, n=100000000;
double x,y=0;
for(i=1;i<=n;i++){
x=i;
y=Math.sin(x)/x+x;
}
System.out.println("y="+y);
long t2=System.currentTimeMillis();
double t=(t2-t1)/1000.0;
System.out.println(t+"sec, about "+22*12.8/t*n/1000000+"MIPS");
}
} |
cpu.zipは,上のソースをコンパイルしたWindows95-10用実行ファイルたちです。
| コンパイラ | オプション | 実行ファイルx86 | x64 |
| Visual Studio 2015 (VC14) | /Od/GS- | cpu.2015.32.exe | cpu.2015.64.exe |
| Visual Studio 2010 (VC10) | cpu.2010.32.exe | ||
| Visual Studio 2008 (VC9) | cpu.2008.exe | ||
| Visual Studio 2005 (VC8) | cpu.2005.exe | ||
| Visual Studio.NET 2002 (VC7) | cpu.exe | ||
| Visual C++ 6.0 Sp4 (VC6) | cpu.vc6.exe |
関連ページ
コメントまたは連絡フォームでCPU MUSEUMへの情報をお寄せください。
