- 1978 के सुपरकंप्यूटर Cray 1 को आधार मानकर, Livermore Loops, Linpack और Whetstone benchmarks में Raspberry Pi, Android डिवाइस और PC कितने आगे निकले, इसकी तुलना की गई
- आधार मान Cray 1 का 80MHz और अधिकतम 160MFLOPS hardware performance है; वास्तविक तुलना में Livermore Loops geometric mean 11.9MFLOPS, Linpack 27MFLOPS और Whetstone का अनुमानित 6MFLOPS इस्तेमाल हुआ
- 2012 का Raspberry Pi 1 Livermore Loops geometric mean के आधार पर Cray 1 से 4.6 गुना तेज था, और 2020 का Raspberry Pi 400 तीनों benchmarks में क्रमशः 78.8 गुना, 49.5 गुना और 95.5 गुना तक पहुंच गया
- 2021 के mid-range Android फोन का Kryo 570 CPU single-core आधार पर 123 गुना, 74 गुना और 151 गुना था, और Core i5 1135G7 laptop ने AVX-512 compilation में 359 गुना, 337 गुना और 226 गुना दर्ज किया
- SIMD और multithreading इस्तेमाल करने पर अंतर और बढ़ जाता है, लेकिन AVX-512 के fused operations कुछ benchmarks में पारंपरिक अपेक्षाओं से अलग numeric results दे सकते हैं
तुलना का आधार बने benchmarks और Cray 1
- तुलना के केंद्र में शुरुआती Cray 1 performance validation में इस्तेमाल हुए Lawrence Livermore Laboratory program kernels, यानी Livermore Loops हैं
- परिणाम 1990 के दशक में C code में बदले गए version का उपयोग करते हैं
- Livermore Loops प्रत्येक loop के MFLOPS और minimum, maximum व कई averages निकालता है, और आधिकारिक average geometric mean है
- सहायक तुलना में Linpack 100 और Whetstone इस्तेमाल किए गए
- Linpack, PC के लिए convert होकर Netlib में शामिल
linpack-pc.cपर आधारित है - Whetstone को मूल लेखक Harold Curnow के बाद design responsibility संभालते हुए आगे बढ़ाया गया और extended variants बनाए गए; 100% vectorized version का शुरुआती target UK में लगाया गया पहला Cray 1 system था
- Linpack, PC के लिए convert होकर Netlib में शामिल
- Cray 1 के मुख्य आधार मान इस प्रकार हैं
- 80MHz Cray 1 की अधिकतम संभव hardware performance, linked multiply and add से प्रति clock दो results देने वाली 160MFLOPS मानी जाती है
- Livermore Loops results: maximum 82.1MFLOPS, geometric mean 11.9MFLOPS, minimum 1.2MFLOPS
- Linpack 27MFLOPS है, और Whetstone को Cray XMP results के आधार पर 6MFLOPS अनुमानित किया गया है
Raspberry Pi ने Cray 1 को जहां पीछे छोड़ा
- 2013 में पहले Raspberry Pi पर Linux के लिए PC benchmark के मूलतः समान programs चलाए गए
- उस समय की तुलना में कहा गया कि 1978 के Cray 1 की कीमत 7 मिलियन डॉलर थी, उसका वजन 10,500 pounds था और उसे 115kW power supply चाहिए थी, जबकि Raspberry Pi लगभग 70 डॉलर का, कुछ ounces वजन वाला, 5W power supply इस्तेमाल करने वाला और Cray 1 से 4.5 गुना से अधिक तेज था
- यह तुलना Livermore Loops के आधिकारिक geometric mean पर आधारित है
- Pi 1 के तीन मुख्य measured values: Livermore Loops 55MFLOPS, Linpack 42MFLOPS, Whetstone 94MFLOPS
- Cray 1 की तुलना में CPU MHz 8.8 गुना
- Cray 1 की तुलना में MFLOPS क्रमशः 4.6 गुना, 1.6 गुना, 15.7 गुना
- 2020 के Raspberry Pi 400 ने 1800MHz पर 32-bit आधार में Livermore Loops 819MFLOPS, Linpack 1147MFLOPS, Whetstone 498MFLOPS दिए
- Pi 400 के 64-bit SIMD compilation results Cray 1 की तुलना में 78.8 गुना, 49.5 गुना, 95.5 गुना हैं
Android ARM CPU results
- 2012 में benchmarks को Android पर native ARM code के रूप में चलाने के लिए convert किया गया, और Java frontend program की जरूरत थी
- शुरुआती Android tablets में तेज floating-point calculation को support करने वाला hardware या software कई बार मौजूद नहीं था
- 2012 के ARM Cortex-A9 800MHz results: Livermore Loops 20MFLOPS, Linpack 11MFLOPS, Whetstone 22MFLOPS
- CPU MHz Cray 1 से 10 गुना था, लेकिन MFLOPS multipliers क्रमशः सिर्फ 1.7 गुना, 0.4 गुना और 3.7 गुना रहे
- बाद में 800MHz V7-A9 सुधरकर 115MFLOPS, 101MFLOPS, 155MFLOPS तक पहुंचा
- Cray 1 की तुलना में 9.7 गुना, 3.7 गुना, 25.8 गुना
- 2021 के mid-range फोन के Kryo 570 CPU ने 2000MHz पर Livermore Loops 1468MFLOPS, Linpack 1986MFLOPS, Whetstone 905MFLOPS दर्ज किए
- Cray 1 की तुलना में 123 गुना, 74 गुना, 151 गुना
- CPU MHz Cray 1 की तुलना में 25 गुना है
Windows और Linux PC का single-core performance
- 1990 के दशक से Intel CPU के लिए benchmarks DOS, OS/2, Windows और Linux के लिए विकसित किए गए
- औसत Cray 1 Livermore Loops score तक पहुंचने वाला पहला PC 1994 का 100MHz Pentium था
- Livermore Loops 12MFLOPS, Linpack 12MFLOPS, Whetstone 16MFLOPS
- Cray 1 की तुलना में CPU MHz और तीन MFLOPS comparisons लगभग 1.3 गुना, 1.0 गुना, 0.44 गुना, 2.6 गुना हैं
- 1995 के Pentium Pro 200MHz ने Livermore Loops 34MFLOPS, Linpack 49MFLOPS, Whetstone 41MFLOPS दिए
- Cray 1 की तुलना में 2.9 गुना, 1.8 गुना, 6.8 गुना
- 2007 के Core 2 1820MHz single core ने 413MFLOPS, 998MFLOPS, 374MFLOPS दर्ज किए
- Cray 1 की तुलना में 35 गुना, 37 गुना, 62 गुना
- 2021 के Core i5 1135G7 laptop ने 4150MHz पर 1387MFLOPS, 3541MFLOPS, 802MFLOPS दिए
- Cray 1 की तुलना में 117 गुना, 131 गुना, 134 गुना
SIMD compilation का असर
- SSE, AVX और AVX-512 SIMD options के साथ compile किए गए results की भी तुलना की गई
- SSE 128-bit, AVX 256-bit, और AVX-512 512-bit vector registers का उपयोग करते हैं
- single precision में क्रमशः 4, 8, 16 और double precision में 2, 4, 8 numbers को एक साथ process किया जाता है
- FMA इस्तेमाल होने पर maximum expected performance दोगुनी हो सकती है, लेकिन calculation result accuracy थोड़ी बदल सकती है
- benchmarks ऐसे फर्क को error के रूप में report करते हैं
- Windows SIMD results में Core i5 ने Cray 1 की तुलना में Livermore Loops 238 गुना, Linpack 190 गुना, Whetstone 182 गुना दर्ज किया
- Linux पर gcc 9.3.0 और Ubuntu environment में compile किए गए results और ऊंचे थे
- AVX results Cray 1 की तुलना में 300 गुना, 259 गुना, 179 गुना
- AVX-512 results 359 गुना, 337 गुना, 226 गुना
- AVX-512 executable को उस option के बिना पुराने CPU पर चलाने पर program failure report होती है
Vector Whetstone और पुराने supercomputers से तुलना
- Vector Whetstone scalar Whetstone जैसी ही functionality चलाता है, लेकिन vector length parameter से तय continuous memory locations पर
- Cray 1 vector length 64 words या उससे अधिक पर maximum performance तक पहुंचा और उसने sawtooth pattern दिखाया
- table में 1978 से 1991 तक 13 supercomputers के scalar और vector Whetstone results शामिल हैं
- Cray Y-MP को Cray 1 की तुलना में clock और scalar MFLOPS में लगभग 2 गुना, vector MFLOPS में 4 गुना बताया गया है
- Cray Y-MP दो vector units वाला system है
- Core i5 AVX-512 results Vector Whetstone में single precision average 28,303MFLOPS और double precision average 20,346MFLOPS हैं
- Cray 1 की तुलना में 602 गुना, 433 गुना
- maximum single precision speed 75.1GFLOPS है
- Raspberry Pi 400 का Vector Whetstone single precision average 2131MFLOPS, double precision average 1184MFLOPS है
- Cray 1 की तुलना में 45 गुना, 25 गुना
Multithreaded Whetstone और MP MFLOPS
- MP Whetstone standard Whetstone code की कई copies को एक ही program में 1, 2, 4, 8 threads पर चलाता है
- इसका उपयोग single CPU core की तुलना में multicore throughput दिखाने के लिए किया जाता है
- Performance Monitor में Core i5 laptop 1 और 2 threads पर करीब 4150MHz, 4 और 8 threads पर करीब 3800MHz पर operate करता दिखा
- MP Whetstone 8-thread results इस प्रकार हैं
- Core i5 laptop AVX-512, Cray 1 की तुलना में 1521 गुना
- Android Kryo 570 फोन 757 गुना
- Raspberry Pi 400 400 गुना
- MP MFLOPS floating-point multiplication और addition के combinations चलाकर लगभग maximum performance दिखाने के लिए बनाया गया benchmark है
- यह प्रति data word 2, 8, 32 floating point operations चलाता है
- default 8 threads है, लेकिन execution के समय parameter से अधिकतम 64 threads तक specify किए जा सकते हैं
- Core i5 laptop के MP MFLOPS peak results इस प्रकार हैं
- single precision 325,915MFLOPS, Cray 1 की तुलना में 2671 गुना
- double precision 160,641MFLOPS, Cray 1 की तुलना में 1317 गुना
- Android फोन single precision 35,686MFLOPS, Cray 1 की तुलना में 293 गुना
- Raspberry Pi 400 single precision 30,150MFLOPS, Cray 1 की तुलना में 247 गुना
Numeric accuracy और उम्मीद से तेज results
- AVX-512 का इस्तेमाल करने वाले Livermore Loops में कुछ checksum accuracy के 15~16 digits से घटकर 12~13 digits रहने के मामले दिखे
- fused operations अलग-अलग instructions पर rounding करने की बजाय सिर्फ एक बार rounding करते प्रतीत होते हैं
- Linpack AVX-512 और Whetstone SSE में भी Core i5 laptop पर non-standard sumcheck या result differences दर्ज किए गए
- SSE और AVX के कुछ results documentation में दिए expected maximum MFLOPS/MHz से अधिक निकले
- Livermore Loops का Core i5 SSE example 3.56MFLOPS/MHz है, जो FMA के बिना असंभव माने जाने वाले स्तर का है
- AVX example 4.86MFLOPS/MHz है, जो expected maximum से 21.5% अधिक है
- disassembled code की जांच में संबंधित SSE और AVX examples में fused multiply and add format instructions नहीं थे
- AVX-512 MP MFLOPS disassembled code में fused multiply/add/subtract instructions शामिल हैं
- arithmetic vector instructions 21 हैं, और fully FMA form के minimum instructions 16 हैं, इसलिए achievable speed को full FMA की तुलना में 76.19% के रूप में calculate किया गया
- इस adjustment से संबंधित function execution के समय Cray 1 की maximum speed estimate 160MFLOPS से घटकर 122MFLOPS हो जाती है
काम के प्रकार के हिसाब से बदलता अंतर
- Core i5 AVX-512, Android फोन और Raspberry Pi 400 के representative Cray 1 तुलना multipliers workload के प्रकार के हिसाब से काफी बदलते हैं
- single-core series comparison में Core i5 AVX-512: Livermore Loops average 359 गुना, Linpack 337 गुना, Whetstone 226 गुना
- Android फोन ने Livermore Loops average 123 गुना, Linpack 74 गुना, Whetstone 151 गुना दर्ज किया
- Raspberry Pi 400 Livermore Loops average 79 गुना, Linpack 50 गुना, Whetstone 96 गुना के स्तर पर है
- multiprogram, multithreaded और SIMD का इस्तेमाल करने वाले workloads में simple single-core comparison से कहीं बड़ा अंतर आता है, और modern CPU के core count, clock drop तथा big/LITTLE configuration के कारण multicore performance का अनुमान लगाना और कठिन हो जाता है
1 टिप्पणियां
Hacker News की रायें
ऐसी तुलना देखकर benchmark से पहले यह जानने की जिज्ञासा होती है कि उस समय Cray-1 पर चलाया गया सबसे “heroic” वास्तविक calculation क्या रहा होगा, और उसे आज Raspberry Pi जैसे डिवाइस पर कैसे reproduce किया जा सकता है
यह weather/climate model हो सकता है, या radiation-hydrodynamics भी हो सकता है। आधुनिक finite element analysis software से तुलना करें तो precision लगभग निश्चित रूप से बहुत कम होगी, लेकिन कोशिश अपने-आप में मज़ेदार लगेगी
पहला सिस्टम Los Alamos गया था
https://www.theatlantic.com/technology/archive/2014/01/these...
काश उस समय लिखे code तक फिर से access मिल पाता। Cray पर जिन jobs में minutes या hours लगते थे, वे आज Raspberry Pi पर कुछ seconds में चल सकती हैं
इसलिए हां, इसे weather और climate calculations में इस्तेमाल किया गया था
मैं एक ऐसे व्यक्ति को जानता था जो अपने Cray-1 supercomputer वाले national lab में काम करता था। मशीन room में रखी थी, जिसमें visitors के देखने के लिए बड़ा observation window था
उसके जान-पहचान वाले VIP बड़े tour group के आने से ठीक पहले वह Cray-1 के अंदर छिपकर इंतज़ार करने लगा। tour group के पहुंचते ही वह jeans की zip चढ़ाते हुए, राहत मिली हो और थोड़ा शर्मिंदा हो ऐसा चेहरा बनाकर Cray-1 के अंदर से बाहर निकला; फिर window के पार खुद को घूरते tour group को देखकर चौंकने का नाटक किया और जल्दी से गायब हो गया
Benchmarks के अलावा, सोचता हूं क्या कोई ऐसा software है जो इसे सच में उतना तेज़ महसूस करा सके
आज हम जो GUI, IDE, compiler, office जैसे software इस्तेमाल करते हैं, वे 386 पर चलने वाली चीज़ों के और विकसित versions जैसे लगते हैं। आज Met में इस्तेमाल होने वाला software शायद लाखों गुना तेज़ computers को ध्यान में रखकर design किया गया होगा, लेकिन उस समय Cray की ज़रूरत वाला software कहीं न कहीं तो होना चाहिए
terminal interface था, और इसे real-time interactive applications के लिए इस्तेमाल नहीं किया जाता था
जैसे matrix elements से scattering cross-section calculate करना, या बहुत सारे vectorizable linear algebra वाला workload
mechanical engineering के बारे में सोचें तो, उस समय शायद simulate किया जाता था कि crash में car कैसे deform होती है। आज similar simulations video games में मज़े के लिए real-time में की जा सकती हैं। games में physically accurate model की वास्तव में ज़रूरत नहीं होती, इसलिए मेरे हिसाब से वे लगभग करते नहीं, लेकिन यह संभव है
Rendering भी ऐसा ही है। उस समय Toy Story के हर frame को render करने में कई hours लगते थे, लेकिन आज, भले ही इस पर बहस हो सकती है, real-time में उससे बेहतर graphics बना लेते हैं
Jeff Geerling के Raspberry Pi को Cray-1 case के अंदर लगाने वाले follow-up video का इंतज़ार कर रहा हूं
Raspberry Pi के लिए छोटा version भी cool लगेगा
Vector 1.0 support वाले RISC-V से तुलना करना ज़्यादा समझ में आता है
क्योंकि Cray-1 एक vector machine था
Raspberry Pi, Cray-1 के उलट, बैठने के लिए भरपूर जगह नहीं देता
बिजली bill में बचत को भी सोचें तो और भी
ठीक से cooling करने वाले products बहुत कम हैं। flirc अच्छा है, और fan वाले बस परेशान करते हैं
अच्छा होगा अगर built-in breadboard वाला Pi case हो
या फिर ऐसा case जिस पर आराम से बैठा जा सके
2013 में मैंने उस समय का latest और सबसे महंगा Intel x86 CPU खरीदा और नया PC assemble किया
पत्नी office में आई, screen पर graphs देखकर बोली, “लगता तो नहीं कि काम कर रहे हो, पर कर क्या रहे हो समझ नहीं आ रहा?”
मैंने जवाब दिया, “calculate कर रहा हूं कि मेरा PC कब धरती का सबसे तेज़ computer रहा होगा। लगता है 1992 में यह कमरे भर के defense department के latest 90 million dollar supercomputer से ज़्यादा अच्छी computing कर लेता, यकीन होता है?”
उसने कहा, “अच्छा है। इससे हमारे card bill चुकाने में क्या मदद मिलेगी?”
मज़ाक छोड़ें तो, ऐसी calculations के लिए data काफ़ी है। जैसे यहां: https://en.wikipedia.org/wiki/TOP500
past में extrapolate करें या पुराने data खोजें, तो मेरी calculation के हिसाब से अगर इस PC को 1981 में ले जाएं तो यह धरती के सभी computers को मिलाकर भी उनसे तेज़ होगा—ऐसा बेहूदा conclusion निकला
https://www.top500.org/system/173736/
2004 में deploy होने पर Apple PowerPC 970 systems की 1100-machine वाली यह array list में 7वीं सबसे powerful computer थी
Linpack performance 12,250.00 GFlop/s थी
Cray-1 में कहीं बेहतर sofa है
Mountain View के Computer Museum में Cray-1 को lobby event catering सामान रखने की जगह के रूप में इस्तेमाल होते देखना दुखद था
संक्षेप में, 10 साल पहले Raspberry Pi और Android phones कई गुना तेज़ थे, और अब लगभग 100 गुना तेज़ हैं
यह सोचें कि यह जेब में आ जाता है, तो काफ़ी impressive है
कुछ साल पहले मैंने SPARCstation 20 Model 60 और Raspberry Pi के Raspbian की तुलना की थी। यह SPARCstation वही system है जिसे BYTE UNIX Benchmark reference के तौर पर इस्तेमाल करता है: https://news.ycombinator.com/item?id=10795324
benchmark के हिसाब से original Raspberry Pi, SPARCstation 20 की performance से 6–7 गुना तेज़ था