Delphi.cz

Český portál Delphi

Scimark numeric benchmark

Scimark je klasický numerický benchmark a já si tak pro zajímavost jednou za čas pouštím jeho Delphi port variantu, abych si ověřil jak je na tom 32bit Delphi a 64bit v jednotlivých verzích. Nikdy jsem neskrýval, že obecně mám radši 32bit kompilátor.

Předem upozorňuji, že je to jeden a ten samý kód, jen překládaný různými verzemi jak 32bit, tak 64bit. Jedná se o lehce upravený původní Delphi port, moje verze je 64bit kompatibilní a je tady ke stažení scimark.zip (200 kb).

Takže ještě jednou: stejný kód, takže teoretické chyby jsou stejné. A jedná se o numerický benchmark, ne obecný. Berte to prosím jako zajímavost, jak s tím naložíte je na Vás.

Bechmark obsahuje pět "kernelů", tj. testů (podrobnosti na prvním odkazu, ve zkratce):

Fast Fourier Transform (FFT) provede jednorozměrnou dopřednou transformaci 4K komplexních čísel. Toto jádro procvičuje komplexní aritmetiku, promíchávání, nekonstantní odkazy na paměť a trigonometrické funkce.

Jacobi Successive Over-relaxation (SOR) na 100x100 mřížce cvičení typických přístupových vzorů v aplikacích s konečnými diferencemi, například řešení Laplaceovy rovnice ve 2D s Drichletovými okrajovými podmínkami.

Monte Carlo aproximuje hodnotu PI výpočtem integrálu čtvrtkruhu y = sqrt(1 - x^2).

Sparse matrix mutiply používá nestrukturovanou řídkou matici uloženou ve formátu komprimovaných řádků s předepsanou řídkou strukturou.

dense LU matrix factorization vypočítá LU faktorizaci husté matice 100x100 pomocí částečného otáčení. Procvičuje jádra lineární algebry (BLAS) a operace s hustými maticemi.

(pozn. popis algoritmu je přes deepl s minimem oprav)

Nahoře je vždy celkové skóre, pod tím jednotlivé testy (vše mobilní AMD Ryzen 5 4500U, vše je single thread)

Delphi 2007

Delphi 2007 jako nejstarší verzi co mám a kterou sem tam použiji. D2007.jpg

Delphi XE

xe.jpg

Delphi XE8

32Bit

DX8_32.jpg

64Bit

DXE8_64.jpg

Pozn. 32bit je plus minus jako DXE, které je trochu lepší než D2007

Delphi 11.3

32Bit

D11_32.jpg

64Bit

D11_64.jpg

Lehký vývoj hlavně v 64bit verzi.

Delphi 12.1

32Bit

D12_32.jpg

64Bit

D12_64.jpg

WTF? SOR 2x lepší a LU výrazně lepší v 64bit než v předchozí verzi. Nevím proč, resp. jsou jisté optimalizace, ale až tak?

Jinak následující nemá moc význam (existuje jen v 64bit).

{$FINITEFLOAT OFF}
{$EXCESSPRECISION OFF}

Obecně je ale velmi poznat rozdíl v numerice mezi 32bit, kde se používá klasické FPU asi pořád k vůli kompatibilitě (bohužel, velká škoda) a 64bit, kde se používají SSE2 instrukce.

Datum: 2024-04-24 19:05:00 Tagy: