3 पॉइंट द्वारा GN⁺ 2024-10-13 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 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 टिप्पणियां

 
GN⁺ 2024-10-13
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 की ही लगती है

    • Discrete event simulation भी अच्छा उदाहरण है। Spiking neural networks जैसी चीज़ें अगर सटीक simulate करनी हों तो pending spike queue के ज़रिए serialize होती हैं, इसलिए वे मूल रूप से single-threaded जैसी होती हैं
      सारी state को local cache में रखना और सबसे तेज core चुनकर चलाना सबसे अच्छा setup है। अगर 16 को parallel में चला सकें तो search space उतना ही घटाया जा सकता है
      ऐसे problems में CCDs के बीच latency की चिंता लगभग नहीं करनी पड़ती। अगर genetic algorithm जैसा कुछ चलाएँ जो समय-समय पर physical cores के बीच crossover करता हो, तब भी cores के बीच bandwidth की ज़रूरत कम होती है
    • Single-threaded applications बहुत हैं, और code को parallelize करने के लिए programmer पर दसियों हज़ार dollars खर्च करने की तुलना में अल्ट्रा-फास्ट CPU पर कुछ हज़ार dollars खर्च करना अक्सर सस्ता पड़ता है
      जैसा कहा गया, अगर वह third-party code है जिसका source या rights आपके पास नहीं हैं, तो कई मामलों में उसे दोबारा लिखना शुरू से ही संभव नहीं होता
    • 512MB cache सुनकर हैरानी होती है। कुछ साल पहले इस्तेमाल किए गए Xeon का cache मेरे बचपन में इस्तेमाल किए system की RAM जितना बड़ा था, यह देखकर अजीब लगा था; मैं millennial हूँ, इसलिए वह Commodore जैसी प्राचीन machine नहीं बल्कि Quake चलाने वाला असली PC था
      लेकिन 512MB तो काफ़ी आरामदेह है। सोचता हूँ कि शायद पूरा Puppy Linux L3 cache में रखा जा सके
    • MATLAB Parallel Server भी per-core licensing इस्तेमाल करता है
      https://www.mathworks.com/products/matlab-parallel-server/li...
    • कई algorithms memory bandwidth से constrained होते हैं। 16-core workstation पर भी मैंने कई बार ऐसे workloads चलाए हैं जिनमें 16 threads से कम पर सबसे अच्छी performance मिली
      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 बहुत बढ़ गए हैं

    • AMD performance/W में भी जीतता है, जो उन लोगों के लिए काफ़ी meaningful result है जो मानते थे कि X86 कभी ARM/RISC की efficiency की बराबरी नहीं कर सकता
      आजकल कई datacenters में available power और उससे जुड़ी cooling भी बड़ी limitation बन जाती है, इसलिए यह Turin के लिए अच्छा संकेत है
    • performance/dollar comparison में सबसे महंगे Turin list-price model से comparison किया जा रहा है। वह model best performance/dollar वाला product नहीं है, बल्कि density या performance per watt maximize करने वालों के लिए है, और इस मामले में यह Ampere से आगे है
      अगर सिर्फ performance/dollar देखना है, तो Zen5c नहीं बल्कि कम core count वाले Zen5 models देखने चाहिए, और इस तरफ performance/dollar 192-core 9965 से दोगुना है
      Ampere पर वही तरीका उतना काम नहीं करता, क्योंकि 192-core 3.2GHz model पहले से ही लगभग best performance/dollar के करीब है
    • फर्क यह है कि EPYC CPU उपलब्ध मिल जाता है, लेकिन Ampere CPU हासिल करना मुश्किल है
    • Ampere का list price उस कीमत के काफी करीब है जो ज़्यादातर system vendors वास्तव में देते हैं। इसके उलट, माना जा सकता है कि अधिकतर vendors EPYC या Xeon को list price से लगभग 50% discount पर खरीद सकते हैं
    • वाकई दिलचस्प समय है, और Intel का गिरना बहुत अफ़सोसजनक है। हालांकि जैसा कई लोग चेतावनी देते रहे हैं, Intel को यह स्थिति पहले से भाँप लेनी चाहिए थी
  • यह सच में बहुत बड़े पैमाने की बात है। 20 साल पहले तक प्रति CPU 1–2 core होते थे, इसलिए dual-socket server में 4 core मिलना भी अच्छी बात मानी जाती थी
    अब एक single server में लगभग 400 core हो सकते हैं। बेशक ARM core इस्तेमाल करें तो इससे ज़्यादा भी हो सकते हैं, लेकिन कम-से-कम अभी वे इस स्तर की performance नहीं देते

    • 2 chips पर 700 से ज़्यादा threads से 2 400GbE NICs को saturate करना, और प्रति chip 500W होने से प्रति thread 2W से कम। यह सब 2U package में आ जाता है
      20 साल पहले यह कई racks भर equipment होता
    • उलटकर देखें तो उस समय 20 साल की प्रगति से उम्मीद होती कि cores 1000 गुना तेज़ हो जाएंगे, लेकिन असल में यह करीब 5 गुना के आसपास है
    • cluster पर चलने वाले big data jobs में से कितना हिस्सा अब Spark के बजाय duckdb इस्तेमाल करने वाली एक single बड़ी machine पर कहीं ज़्यादा तेज़ होगा, यह जानने की उत्सुकता है
    • आजकल ज़्यादातर services single server में समा सकती हैं और फिर भी रोज़ लाखों users संभाल सकती हैं
      अगर महीने के 1000 डॉलर से कम में एक powerful dedicated server किराए पर लेकर दसियों हज़ार डॉलर बचाए जा सकते हैं, तो बहुत महंगी cloud services पर इसका क्या असर पड़ेगा, यह सोचने वाली बात है। उस पैसे में तो full-time admin रखकर भी बचत हो सकती है
    • सही है। पहले dual-core server chips 2005 के आसपास 90nm Denmark/Italy/Egypt Opteron और Paxville Xeon के रूप में आए थे, और मेरी जानकारी में Intel की तरफ़ से यह 2007 के बाद ही सच में mainstream हुआ
  • Hetzner पर AMD Turin bare-metal server उपलब्ध होते ही deploy करके देखना चाहूंगा। पिछली generation भी value-for-money थी, और यह generation एक कदम और बेहतर लगती है

  • मैं अभी भी 12 साल पुराने Dell PowerEdge पर dual Xeon चला रहा हूं। सोच रहा हूं कि पहली-generation EPYC server eBay पर कब cheap listings में मिलने लगेंगे

    • पहली से तीसरी generation तक के EPYC बहुत सस्ते मिल सकते हैं, लेकिन motherboard महंगे हैं
      अगर आपका मुख्य उद्देश्य PCIe lanes और RAM capacity नहीं है, तो 3rd gen से नीचे की चीज़ें मैं ज़्यादा recommend नहीं करूंगा। मौजूदा generation के consumer CPU में cores भले आधे या एक-चौथाई हों, compute performance बेहतर है और power भी बहुत कम लेते हैं
    • निजी तौर पर 1st gen EPYC मुझे खास अच्छा नहीं लगता, क्योंकि 2nd gen मौजूद है, ज़्यादा widely used है और काफ़ी सस्ता है। मैं अपने homelab में सच में epyc 7302 और MZ31-AR0 motherboard इस्तेमाल कर रहा हूं
      per-core performance बहुत कम है, NUMA से जुड़ी समस्याएं हैं, और process भी खराब है। 2nd gen compute die TSMC 7nm है
    • EPYC chips के बारे में तो नहीं जानता, लेकिन Ryzen 5 series की machines उस हफ्ते Amazon पर लगभग मुफ्त जैसी मिल रही थीं
      मैंने 9 5950X को 242 pounds में खरीदा
    • ज़्यादा value नहीं है। eBay पर 9654 को 2000 डॉलर में खरीदिए और motherboard पर 1000 डॉलर खर्च कर दीजिए। पूरा system करीब 7000 डॉलर का होगा
      या फिर Epyc 7282 जैसी combo भी आसानी से मिल जाती है और ठीक रहती है
    • ऐसा पहले ही हो चुका है, और performance कुछ खास नहीं है
  • ChipsAndCheese नए tech media में उन गिने-चुने outlets में से है जिन्हें सच में विषय की समझ है। खासकर ऐसे deep benchmark में यह मजबूत है
    Anandtech, TechReport, HardOCP जैसी पुरानी tech sites के गायब हो जाने के बाद, पुराने style की गहराई वाली writing के बराबर पहुंचने वाला नया media देखना अच्छा लगता है

    • दिलचस्प बात है कि Slashdot असल में Chips & Dips नाम की site से शुरू हुआ था। शायद inspiration कुछ मिलती-जुलती रही हो
    • शायद आप HardOCP कहना चाह रहे थे
    • Chips and Cheese मुझे सबसे ज़्यादा अब बंद हो चुकी LostCircuits की याद दिलाता है। ज़्यादातर tech sites application benchmark की lists पर focus करती हैं, लेकिन C&C, LC की तरह architecture पर लंबे लेखों को subsystem microbenchmarks के साथ जोड़ता है
  • जिन्हें Substack पर shift होना पसंद नहीं है, उनके लिए https://old.chipsandcheese.com/2024/10/11/amds-turin-5th-gen... है
    कम-से-कम अभी तो उपलब्ध है

  • सिर्फ 16 cores लेकिन L3 cache 512MB वाला part निश्चित रूप से किसी खास workload के लिए है

    • Oracle EE और options के लिए प्रति core 40,000–100,000 डॉलर से ज़्यादा, और फिर उस पर 0.5 multiplier लगाकर charge कर सकता है, और कुछ workloads cache के प्रति बहुत sensitive होते हैं
      इसलिए 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-...
    • इस part की topology सच में अजीब है। Physically यह 128-core part जैसे ही silicon पर आधारित है, लेकिन हर compute chiplet में सिर्फ एक core छोड़कर बाकी सब disabled हैं
      cache को जितना संभव हो बचाए रखने के लिए 112 cores बंद करके सिर्फ 16 cores छोड़े गए हैं
      हालांकि cores के बीच latency अच्छी नहीं होगी, क्योंकि हमेशा अपेक्षाकृत धीमी inter-chiplet bus से गुजरना पड़ेगा
    • सोच रहा हूं कि क्या नए AMD chips L3 cache को map करके उसे cache नहीं, बल्कि TCM की तरह इस्तेमाल कर सकते हैं
      पुराने 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 के लिए हैं

    • हां। servers सिर्फ ECC RAM इस्तेमाल करते हैं