AMD का Turin: 5वीं पीढ़ी का EPYC लॉन्च
(chipsandcheese.com)- AMD EPYC 9575F के वास्तविक माप Zen 5 कोर की दोहराई गई व्याख्या से आगे बढ़कर सर्वर-उन्मुख memory subsystem में बदलावों पर फोकस करते हैं, जिससे Turin का वास्तविक अंतर सामने आता है
- single-thread bandwidth लगभग पढ़ने में 52GB/s, लिखने में 48GB/s, और add में 95GB/s है, जबकि पूरे socket की read bandwidth सैद्धांतिक 576GB/s के लगभग 99% तक पहुंचती है
- सर्वर-उन्मुख Turin, CCD और I/O die के बीच GMI3-W के साथ 2 GMI links का उपयोग करता है, और write link width भी प्रति link 32B तक बढ़ी है, इसलिए desktop Zen 5 की तुलना में CCD bandwidth अधिक है
- memory latency बिना लोड के Genoa जैसी है, लेकिन core-to-core latency बढ़ गई है: Intra-CCD लगभग 45ns, Inter-CCD लगभग 150ns, और socket-to-socket लगभग 260ns
- 9575F के 64 cores single-thread में अधिकतम 5GHz तक पहुंचते हैं और 128-thread Cinebench 2024 में लगभग 4.3GHz बनाए रखते हैं, जिससे यह साफ होता है कि यह high-frequency, relatively low-core-count enterprise SKU है
EPYC 9575F से Turin में आए बदलाव
- Turin का विश्लेषण AMD EPYC 9575F के वास्तविक मापे गए डेटा पर केंद्रित है
- StorageReview के Jordan के माध्यम से इस CPU का परीक्षण किया जा सका
- Zen 5 core पर पहले ही mobile, desktop और variant तुलना में चर्चा हो चुकी है, इसलिए इस बार फोकस memory subsystem पर रखा गया है
- AMD की Turin launch slides Serve the Home पर देखी जा सकती हैं, लेकिन यहां स्वतंत्र मापन डेटा को अधिक महत्व दिया गया है
CCD bandwidth बढ़ाने वाली GMI configuration
- 1T परिणामों में EPYC 9575F की single-thread memory bandwidth इस स्तर की है
- पढ़ना: लगभग 52GB/s
- लिखना: लगभग 48GB/s
- add, यानी Read-Modify-Write: लगभग 95GB/s
- एक single core भी पूरे CCD memory bandwidth का बड़ा हिस्सा इस्तेमाल कर सकता है
- read, पूरे CCD read bandwidth के आधे से थोड़ा कम है
- write, पूरे CCD write bandwidth का लगभग 55% है
- add, पूरे CCD add bandwidth का दो-तिहाई से अधिक है
- यह अंतर सर्वर-उन्मुख Turin की GMI3-W configuration से आता है
- EPYC 9575F में I/O die से जुड़ने वाले 2 GMI links हैं
- Ryzen 9950X एक single GMI link का उपयोग करता है
- सर्वर GMI write link प्रति link 32B है, जो desktop Zen 5 के प्रति link 16B से बड़ा है
12-channel memory और पूरे socket का प्रदर्शन
- Turin 12-channel memory को सपोर्ट करता है और अधिकतम DDR5-6400MT/s तक जा सकता है
- DDR5-6400MT/s केवल कुछ verified systems में समर्थित है
- यह speed सिर्फ per-channel 1 DIMM configuration में संभव है
- test system DDR5-6000MT/s पर चल रहा था
- अधिकांश systems per-channel 1 DIMM configuration में DDR5-6000MT/s सपोर्ट करते हैं
- per-channel 2 DIMMs उपयोग करने पर memory speed घटकर 4400MT/s हो जाती है
- जिन motherboards में प्रति channel 2 DIMM slots हैं, वहां per-channel 1 DIMM उपयोग करने पर 5200MT/s की उम्मीद की जा सकती है
- पूरे 9575F socket की read bandwidth सैद्धांतिक 576GB/s के लगभग 99% तक पहुंचती है
- write: 435GB/s
- add: 453GB/s
- AMD Volcano Platform पर 2 x 9575F के बीच socket-to-socket bandwidth भी मापी गई
- इस platform में दोनों CPUs के बीच केवल 3 GMI links हैं
- परिणाम Bergamo परीक्षण से बहुत मिलते-जुलते थे, और Bergamo system में भी यही 3 GMI links configuration थी
लोड latency और core-to-core latency
- Turin की no-load memory latency, Genoa के बहुत समान है
- Hot Chips 2024 में Ampere Computing ने AmpereOne chip और AMD Genoa CPU की load-state memory latency graph प्रकाशित की थी, और उसी को संदर्भ बनाकर ऐसा ही load latency test तैयार किया गया
- इस test में memory bandwidth benchmark से IOD-CCD link या पूरे memory system को भरने के बाद, बचे हुए cores या CCD पर memory latency मापी गई
- single CCD test में एक CCD के 7 cores पर memory bandwidth benchmark चलाया गया और 8वें core पर latency मापी गई
- full-system test में 9575F के 7 CCDs पर memory bandwidth benchmark चलाया गया और 8वें CCD पर latency मापी गई
- load की स्थिति में 9575F की memory latency में बढ़ोतरी अलग-अलग परिस्थितियों में लगभग समान रही
- single CCD load में no-load की तुलना में लगभग 39ns बढ़ोतरी हुई
- full-system load में no-load की तुलना में लगभग 31ns बढ़ोतरी हुई
- core-to-core latency, Genoa की तुलना में अधिक हो गई है, और खासकर CCD के अंदर की बढ़ोतरी उल्लेखनीय है
- Intra-CCD latency: लगभग 45ns
- Inter-CCD latency: लगभग 150ns
- Socket to Socket latency: लगभग 260ns
clock speed और product positioning
- EPYC 9575F single-thread tests में अपने सभी 64 cores पर अधिकतम 5GHz तक पहुंच सका
- memory bandwidth tests में एक CCD के सभी 8 cores को 5GHz पर चलाया जा सका
- Cinebench 2024 में सभी 128 threads का उपयोग करने पर यह लगभग 4.3GHz रेंज बनाए रखता है
- Level1Techs के Wendell ने web server/TLS transaction workload में लगभग 4.9GHz all-core देखा, और यह workload कम vectorized प्रकार का काम है
- Turin lineup में high-core-count और high-frequency, दोनों तरह के SKUs शामिल हैं
- AMD के पास 9755, 9965 जैसे high-core-count SKUs हैं
- 9575F जैसे low-core-count लेकिन बहुत high-frequency वाले SKUs भी उपलब्ध हैं
- 64 cores को ही 'low core count' माना जाना, server CPU बाजार में आए बदलाव को दिखाता है
- Turin, Naples से Rome में हुए नाटकीय बदलाव जैसा नहीं है, बल्कि Milan से Genoa की तरह memory bandwidth में बढ़ोतरी, core count में बढ़ोतरी, और core update के संयुक्त विकास के अधिक करीब है
1 टिप्पणियां
Hacker News की राय
AMD EPYC 9175F सबसे अलग है: 16 cores के साथ 512MB L3 cache—लगता है यह उन customers के लिए है जो per-core licensing cost घटाना चाहते हैं
वरना इतने महंगे chip में इतने कम cores रखना ज़्यादा समझ में नहीं आता। पता नहीं Oracle अब भी ऐसा licensing model इस्तेमाल करता है या नहीं, लेकिन अगर करता है तो अब बंद कर देना चाहिए
HFT जैसे use cases में पूरा algorithm L3 में रखकर absolute lowest latency हासिल करने के लिए भी यह काम आ सकता है, या फिर हर chiplet पर केवल सबसे अच्छे cores इस्तेमाल करने की मंशा हो सकती है। फिर भी सबसे ज़्यादा संभावना software licensing की ही लगती है
सारी state को local cache में रखना और सबसे तेज core चुनकर चलाना सबसे अच्छा setup है। अगर 16 को parallel में चला सकें तो search space उतना ही घटाया जा सकता है
ऐसे problems में CCDs के बीच latency की चिंता लगभग नहीं करनी पड़ती। अगर genetic algorithm जैसा कुछ चलाएँ जो समय-समय पर physical cores के बीच crossover करता हो, तब भी cores के बीच bandwidth की ज़रूरत कम होती है
जैसा कहा गया, अगर वह third-party code है जिसका source या rights आपके पास नहीं हैं, तो कई मामलों में उसे दोबारा लिखना शुरू से ही संभव नहीं होता
लेकिन 512MB तो काफ़ी आरामदेह है। सोचता हूँ कि शायद पूरा Puppy Linux L3 cache में रखा जा सके
https://www.mathworks.com/products/matlab-parallel-server/li...
algorithm को अलग-अलग thread counts पर test करके optimal thread count इस्तेमाल करना आम तरीका है। Memory-intensive algorithms में peak performance अक्सर अपेक्षाकृत कम core count पर मिलती है
Phoronix ने हाल ही में 196-core Turin Dense और AmpereOne 192-core की comparison review की
Ampere का list price 5.5 हज़ार dollars था, EPYC का 15 हज़ार dollars, Turin 196 की performance 1.6 गुना बेहतर थी, और Ampere की power efficiency 1.2 गुना बेहतर थी
Phoronix review के आधार पर वास्तविक performance/dollar देखें तो Ampere 192-core, Turin Dense 196-core से 1.7 गुना बेहतर है। यानी 5.5 हज़ार dollars में आप AmpereOne 192-core CPU (274W) खरीद सकते हैं या Turin Dense 48-core CPU (300W)
Ampere अगले साल 256-core, 3nm, 12-channel memory product launch करने वाला है, इसलिए raw performance के मामले में वह Turin Dense और Sierra Forest से बेहतर मुकाबला कर सकता है। अभी इसकी ताकत performance/dollar है
Qualcomm के Nuvia-based server chip की performance को लेकर भी बहुत उत्सुकता है। अगर ARM client cores में सुधार कोई संकेत है, तो यह देखना दिलचस्प होगा कि AWS Graviton, Google Axion, Microsoft Cobalt, Nvidia Grace, Alibaba Yitian जैसे in-house chips बेहतर Neoverse cores से कैसे मुकाबला करेंगे। यह Nuvia बनाम ARM बनाम AmpereOne की स्थिति है
अभी शायद server CPUs का golden age चल रहा है। 7 साल पहले तक बस Intel Xeon था, अब options बहुत बढ़ गए हैं
आजकल कई datacenters में available power और उससे जुड़ी cooling भी बड़ी limitation बन जाती है, इसलिए यह Turin के लिए अच्छा संकेत है
अगर सिर्फ performance/dollar देखना है, तो Zen5c नहीं बल्कि कम core count वाले Zen5 models देखने चाहिए, और इस तरफ performance/dollar 192-core 9965 से दोगुना है
Ampere पर वही तरीका उतना काम नहीं करता, क्योंकि 192-core 3.2GHz model पहले से ही लगभग best performance/dollar के करीब है
यह सच में बहुत बड़े पैमाने की बात है। 20 साल पहले तक प्रति CPU 1–2 core होते थे, इसलिए dual-socket server में 4 core मिलना भी अच्छी बात मानी जाती थी
अब एक single server में लगभग 400 core हो सकते हैं। बेशक ARM core इस्तेमाल करें तो इससे ज़्यादा भी हो सकते हैं, लेकिन कम-से-कम अभी वे इस स्तर की performance नहीं देते
20 साल पहले यह कई racks भर equipment होता
अगर महीने के 1000 डॉलर से कम में एक powerful dedicated server किराए पर लेकर दसियों हज़ार डॉलर बचाए जा सकते हैं, तो बहुत महंगी cloud services पर इसका क्या असर पड़ेगा, यह सोचने वाली बात है। उस पैसे में तो full-time admin रखकर भी बचत हो सकती है
Hetzner पर AMD Turin bare-metal server उपलब्ध होते ही deploy करके देखना चाहूंगा। पिछली generation भी value-for-money थी, और यह generation एक कदम और बेहतर लगती है
मैं अभी भी 12 साल पुराने Dell PowerEdge पर dual Xeon चला रहा हूं। सोच रहा हूं कि पहली-generation EPYC server eBay पर कब cheap listings में मिलने लगेंगे
अगर आपका मुख्य उद्देश्य PCIe lanes और RAM capacity नहीं है, तो 3rd gen से नीचे की चीज़ें मैं ज़्यादा recommend नहीं करूंगा। मौजूदा generation के consumer CPU में cores भले आधे या एक-चौथाई हों, compute performance बेहतर है और power भी बहुत कम लेते हैं
per-core performance बहुत कम है, NUMA से जुड़ी समस्याएं हैं, और process भी खराब है। 2nd gen compute die TSMC 7nm है
मैंने 9 5950X को 242 pounds में खरीदा
या फिर Epyc 7282 जैसी combo भी आसानी से मिल जाती है और ठीक रहती है
ChipsAndCheese नए tech media में उन गिने-चुने outlets में से है जिन्हें सच में विषय की समझ है। खासकर ऐसे deep benchmark में यह मजबूत है
Anandtech, TechReport, HardOCP जैसी पुरानी tech sites के गायब हो जाने के बाद, पुराने style की गहराई वाली writing के बराबर पहुंचने वाला नया media देखना अच्छा लगता है
जिन्हें Substack पर shift होना पसंद नहीं है, उनके लिए https://old.chipsandcheese.com/2024/10/11/amds-turin-5th-gen... है
कम-से-कम अभी तो उपलब्ध है
सिर्फ 16 cores लेकिन L3 cache 512MB वाला part निश्चित रूप से किसी खास workload के लिए है
इसलिए high-cache, high-bandwidth, high-clock, large-memory वाला 16-core CPU[1] 2-socket configuration में 10 लाख डॉलर से ऊपर की license cost के मुकाबले सबसे efficient हो सकता है
[1] https://www.amd.com/en/products/processors/server/epyc/9005-...
cache को जितना संभव हो बचाए रखने के लिए 112 cores बंद करके सिर्फ 16 cores छोड़े गए हैं
हालांकि cores के बीच latency अच्छी नहीं होगी, क्योंकि हमेशा अपेक्षाकृत धीमी inter-chiplet bus से गुजरना पड़ेगा
पुराने non-X86 processors इसे support करते थे, और memory controller initialize कर सकें इसलिए कई बार उसी mode में boot करते थे। अगर आज भी यह संभव हो, तो DRAM-less बड़े systems जैसे दिलचस्प embedded use cases बन सकते हैं
एक जगह लिखा है, “जिस system तक access था, उसमें memory 6000MT/s पर चल रही थी, और DDR5-6000 MT/s को ज़्यादातर systems 1 DIMM per channel configuration में support करते हैं। 2 DIMMs per channel इस्तेमाल करने पर memory speed 4400 MT/s तक गिर जाती है, और 2-DIMM-per-channel motherboard पर 1 DIMM per channel इस्तेमाल करने पर 5200 MT/s की उम्मीद करें”; सोच रहा हूं कि क्या ये सभी speeds ECC memory के लिए हैं