NVIDIA - Mahdottoman mahdollistaja

Tämä on totta. On tässä kierroksessa selvästi lihaa luiden ympärillä. Ja näistä sovelluksista on esimerkiksi Microsoftin tutkimusten perusteella tarjolla niin koettua kuin mitattavaa hyötyäkin, mikä tietysti tarkoittaa sitä, että käyttäjän kannattaa niistä maksaa:

Ja todennäköisesti hyötyjä saadaan vielä enemmän, mitä paremmin työkaluja opitaan / totutaan hyödyntämään.

5 tykkäystä

Havahduin siihen, että NVIDIAn uudet GPUt kuluttaa 40% enemmän energiaa. Eli Jensen lienee soittanut Charles Liangille, tarvitaan isommat jäähdyttimet. Onko muuten kellään tuntumaa millaiset nuo B100 ja B200 prosessorit oikein ovat?

Nvidia’s next-gen AI GPUs could draw an astounding 1000 Watts each, a 40 percent increase — Dell spills the beans on B100 and B200 in its earnings call | Tom’s Hardware (tomshardware.com)

6 tykkäystä

Nvidian osakkeessa on kyllä poikkeuksellista vahvuutta. Ei yhtään anna dippiä. Ei se minusta huoju niin kuin yleensä ATH:ssa pitäisi huojuilla. En graafeja osaa tutkailla, mutta oliko @DayTraderXL llä jotain tarinan tynkää siitä, että mitä tuo osake nyt oikein juonii?

7 tykkäystä

No nyt yksi nvidia johtaja myynyt osan osakkeistaan.

2 tykkäystä

Eli kyseinen herra Coxe myi 5% omistuksestaan. Edelleen omistaa 3.7M osaketta, jotka tämän päivän kurssilla arvoltaan 3.5 MILJARDIA. Sanoisin, että ei nyt hirveästi aiheuta ainakaan itsessäni epäilyksen tuntemuksia, jos johto edelleen mukana kyydissä omaisuuserillä, jollaisia esim. meillä Suomessa ei ole kuin Antti Herlinillä.

21 tykkäystä

Palaan hieman tähän aiempaan keskusteluun, joka sivuaa NVidian vallihautoja GPU-laskennan ympärillä.

ZLUDA lienee kuollut hevonen tässä kisassa (ZLUDA:n GitHub-linkistä):

Shortly thereafter I got in contact with AMD and in early 2022 I have left Intel and signed a ZLUDA development contract with AMD. Once again I was asked for a far-reaching discretion: not to advertise the fact that AMD is evaluating ZLUDA and definitely not to make any commits to the public ZLUDA repo. After two years of development and some deliberation, AMD decided that there is no business case for running CUDA applications on AMD GPUs.

AMD:n tulokulma GPU:n ohjelmointiin vähän CUDA:n tyylisesti on ROCm:

ROCm is an open-source stack, composed primarily of open-source software, designed for graphics processing unit (GPU) computation. ROCm consists of a collection of drivers, development tools, and APIs that enable GPU programming from low-level kernel to end-user applications.

ROCm is powered by Heterogeneous-computing Interface for Portability (HIP); it supports programming models, such as OpenMP and OpenCL, and includes all necessary open source software compilers, debuggers, and libraries. It’s fully integrated into machine learning (ML) frameworks, such as PyTorch and TensorFlow.

Toisin kuin varsin suljettu CUDA, ROCm on rakennettu pääasiassa avoimen lähdekoodin / rajapintojen päälle. Periaatteessa ROCm ei tuota samanlaista vendor lock-in:ia kuin NVidian CUDA, joten kaikilla GPU-valmistajilla on ainakin teoriassa mahdollisuus tukea ROCm:ää helpommin kuin CUDA:aa.

Tämä on totta ja se herättää myös kysymyksen siitä, miten syvät NVidian vallihaudat CUDA:n kanssa oikeastaan ovatkaan? Voi olla, että esimerkiksi ML/AI-puolella vallihaudat ovat varsin matalat, sillä ainakin AMD väittää jo tukevansa esim. PyTorchia ja TensorFlow:ta. Ja uusia kirjastoja varmasti on tulossa.

Vallihauta lienee syvä nyt ja jatkossa lähinnä niillä käyttäjillä, jotka käyttävät paljon CUDA:aa suoraan ilman laajalti käytössä olevia välikirjastoja. Tai sitten jos kirjastot nojaavat johonkin sellaisiin NVidian hardware-toteutuksiin, joita AMD:lla ei vielä ole saatavilla. En tiedä, miten yleisiä nuo erikoisominaisuudet ovat ML/AI-puolella, mutta esimerkiksi grafiikkapuolella noista on joskus tullut jotain vallihautoja erityisesti vähän valtavirrasta poikkeavia ratkaisuita tehdessä. Pelkkä rinnakkaistettu matriisi-/tensorilaskenta yms. perustoiminnallisuus ei kuitenkaan tällaisia rajoitteita aseta ja on suoraviivaisesti toteutettavissa kummalla tahansa raudalla (NVidia vs AMD).

Tuoreehko AMD:tä koskeva kirjoitus Seeking Alphasta sivuaa tätä asiaa. Pari poimintaa artikkelista:

The company is making impressive progress in encouraging large data center customers, as well as rising AI companies, to adopt AMD’s GPUs and ROCm software for their AI workloads, as CEO Lisa Su shared on the Q4 2023 AMD earnings call:

"The additional functionality and optimizations of ROCm 6 and the growing volume of contributions from the Open Source AI Software community are enabling multiple large hyperscale and enterprise customers to rapidly bring up their most advanced large language models on AMD Instinct accelerators.

For example, we are very pleased to see how quickly Microsoft was able to bring up GPT-4 on MI300X in their production environment and roll out Azure private previews of new MI300 instances aligned with the MI300X launch. At the same time, our partnership with Hugging Face, the leading open platform for the AI community, now enables hundreds of thousands of AI models to run out of the box on AMD GPUs and we are extending that collaboration to our other platforms."

Additionally, Meta Platforms, Inc. (META) is also a big customer of AMD’s “MI300X,” and amid its launch in December 2023, analysts at Raymond James highlighted that:

“Meta’s comment that MI300X based OCP accelerator achieved the “fastest design to deployment in its history” suggests that AMD’s software is maturing fast.”

Nämä lienevät käypäisiä esimerkkejä siitä, että ainakaan isoilla ohjelmistotaloilla ei liene vaikeuksia portata AI-stackiaan käyttämään AMD:n rautaa. Ja jos teesinä on se, että suurin osa GPU-asiakkaista on suuria ohjelmistotaloja ja pilvipalveluiden tarjoajia

niin voi olla, että CUDA:n oletettu vallihauta ei tosiaan ole vallihauta ensinkään näissä ML-touhuissa ja se ei välttämättä tuo NVidialle sellaista kilpailuetua, josta on monessa yhteydessä mainittu.

Tuosta samaisesta Seeking Alphan artikkelista tarttui silmään myös tämä kohta:

Furthermore, in terms of net profitability, Nvidia has been able to deliver incredible profit margin expansion relative to AMD over the past year, thanks to its enviable pricing power for its AI chip “H100,” reportedly selling for around $40,000 per GPU.

Although from a positive perspective, Nvidia’s high price tags enable AMD to price its own chips more aggressively as well, with Citi analyst Christopher Danely estimating that:

“It appears as if Microsoft and Meta are the largest customers for the MI300, … with the average selling price at roughly $10,000 for Microsoft and $15,000 or more for other customers”

Mistä tulee mieleen, että millaiset GPU:iden yksikköhinnat lopulta ovat taustalla erilaisissa kassavirtalaskelmissa, joita NVidian osalta esitetään? Jos siis tilanne on se, että AMD tarjoaa suorituskyvyltään kilpailukykyisen GPU-raudan n. 1/3 hinnalla ja GPU:ta lähellä oleva softa (esim. ML/AI framework tai kirjasto) ei lopulta muodosta juuri minkäänlaista vallihautaa ainakaan näissä himotuimmissa ML/AI-käyttökohteissa, niin mitä tämä tarkoittaa NVidian kannalta? AMD saattaa hyvinkin ottaa markkinaosuuksia ja toisaalta NVidia saattaa joutua aivan lähiaikoina mukaan hintakilpailuun, jonka seurauksena aiempia varsin tukevia katteita ei ole enää tarjolla.

Onko tilanne siis mahdollisesti se, että AMD:ta aliarvioidaan, tai se, että NVidian kassavirtalaskelmat ja tulevaisuuden kasvuodotukset perustuvat toistaiseksi sellaisiin katteisiin, jotka eivät ole ylläpidettävissä edes lähitulevaisuudessa?

10 tykkäystä

Tätä on pakko lainata ja kommentoida, sillä mielestäni tämä on aivan keskeistä CUDA:n vallihaudoista keskustellessa ja olen tullut samaan lopputulokseen. 99 prosentilla datatieteilijöistä CUDA-osaaminen rajoittuu tähän python lauseeseen

torch.device('cuda' if torch.cuda.is_available() else 'cpu')

Itsekin olen ottanut annettuna, että Nvidialla olisi CUDA:n kautta ML-laskentaan massiivinen vallihauta. Toki vallihauta on olemassa, mutta se syntyy ennen kaikkea siitä, että näidne suosituimpien kirjastojen kanssa skriptiä kirjoittaessa CUDA-tuki on ihan ylivertainen AMD:hen nähden. Jos PyTorch viritetään todella joskus toimimaan ROCm:n kanssa yhtä hyvin kuin CUDA:lla, tuota vallihautaa ei enää ole, koska devaajalle CUDA:n toiminta on totaalisesti abstraktoitu tuonne kirjastojen sisälle.

6 tykkäystä

Lisäksi aiemmin on ollut se tilanne, että ROCm ei ole ollut tuettuna kuluttaja-GPU:lla / peli-GPU:illa. Tähänkin on tullut viime vuoden loppupuolella muutos:

Tämä osaltaan madaltaa edelleen kynnystä AMD:n tuotteiden käyttämiseen / kokeiluun ML-puolella, vaikka ei toki ole konesalien kannalta niin merkittävä asia.

Tässä on yksi blogientry, jossa on kokemuksia viime vuoden kesältä pykälää vanhemman AMD:n MI250 kortin osalta ja suorituskykyvertailua NVidian A100-kortin kanssa.

https://www.databricks.com/blog/amd-mi250

Training LLMs with AMD MI250 GPUs and MosaicML

With the release of PyTorch 2.0 and ROCm 5.4, we are excited to announce that LLM training works out of the box on AMD MI250 accelerators with zero code changes and at high performance!

Today’s results are all measured on a single node of 4xMI250 GPUs, but we are actively working with hyperscalers to validate larger AMD GPU clusters, and we look forward to sharing those results soon! Overall our initial tests have shown that AMD has built an efficient and easy-to-use software + hardware stack that can compete head to head with NVIDIA’s.

Under the hood, PyTorch is mapping every floating point operation, every GPU command, and every distributed operation like torch.matmul(), torch.cuda.current_device(), inputs.to('cuda:0'), torch.dist.all_gather(), etc. call to the appropriate ROCm and RCCL operations on the AMD system. See Figure 1 for screenshots of what this looks like. We agree, it’s funny to run torch.cuda on an AMD machine, but it works!

The benefit of this approach is that existing PyTorch code requires no changes when switching from NVIDIA to AMD. Since our LLM Foundry codebase is built on top of pure PyTorch, it also works with no code changes. Even advanced distributed training algorithms like Fully Sharded Data Parallelism (FSDP) work seamlessly. In Figure 2 you can see what it looks like in your terminal when training an MPT model on an AMD system with LLM Foundry – it’s exactly the same as on an NVIDIA system.

The results are plotted in Figure 3 with raw data available in Table 2. Overall we find that AMD MI250 achieves an average of ~80% of the per-GPU training throughput of A100-40GB and ~73% of A100-80GB across the different MPT models. We predict that AMD performance will get better as the ROCm FlashAttention kernel is improved or replaced with a Triton-based one: when comparing a proxy MPT model with n_heads=1 across systems, we found a substantial lift that brings MI250 performance within 94% of A100-40GB and 85% of A100-80GB.

Given the consistent performance we see across many MPT model sizes, we believe that at the right price, AMD and NVIDIA systems are interchangeable for LLM training and we would recommend to use whichever one has higher availability or performance per dollar.

Sikäli kun tämä on hyvässä hengessä tehty blogientry, vaikuttaisi siltä, että PyTorch on toiminut jo viime kesänä varsin kunnolla AMD:n raudan kanssa. Tässä esitetyn kokemuksen perusteella suosittavat käyttämään sitä rautaa, jossa on parempi saatavuus tai josta saa enemmän suorituskykyä per dollari.

Edelliseen blogientryyn on jatko-osa viime syksyltä:
https://www.databricks.com/blog/training-llms-scale-amd-mi250-gpus

Training LLMs at Scale with AMD MI250 GPUs

One of the most popular libraries for ML programmers is PyTorch, and as we reported in our last blog, PyTorch runs seamlessly in eager mode on AMD GPUs like MI250. Even advanced distributed training techniques like Fully-Sharded Data Parallelism (FSDP) work out of the box, so if you have a PyTorch program (like LLM Foundry) that works on NVIDIA GPUs, there is a high chance that it will also work on AMD GPUs. This is made possible by PyTorch’s internal mapping of operators like torch.matmul(...) to either CUDA or ROCm kernels.

Another exciting software improvement to the AMD platform is its integration with the Triton compiler. Triton is a Python-like language that allows users to write performant GPU kernels while abstracting away most of the underlying platform architecture. AMD has already added support for its GPUs as a third-party backend in Triton. And kernels for various performance critical operations, like FlashAttention-2, are available for AMD platforms, for both inference and training, with competitive performance (See Figure 3).

In this blog, we’ve demonstrated that AMD MI250 is a compelling option for multi-node LLM training. Our initial results show strong linear scaling up to 128 x MI250, stable convergence, and thanks to recent software improvements, the MI250 is closing the performance gap with the A100-40GB.

We believe these results strengthen the AI training story for AMD GPUs, and thanks to the interoperability of PyTorch, Triton, and open-source libraries (e.g., Composer, StreamingDataset, LLM Foundry), users can run the same LLM workloads on either NVIDIA or AMD or even switch between the platforms, as we demonstrate in Figure 7.

Toki varoituksen sana, että en ole itse kokeillut toistaa tämän tyyppisiä testejä, koska ei ihan niin paljoa lompakossa ole ylimääräistä täytettä, että voisi itselle hankkia mainittua rautaa kokeiluun. Mennään siis vahvasti toisen käden tietojen varassa.

Mielenkiintoista olisikin nähdä vertailu MI300-kortin ja NVidian nykyisen ja tulevan kortin kanssa. Epäilemättä niitä on kohta tarjolla.

3 tykkäystä

NVIDIAn katteet pelastaa se että AMD ei pysty mitenkään toimittamaan samaa määrää tavaraa kuin NVIDIA. Eli niin kauan kuin kaikki revitään käsistä, vaikka AMDn tavaraa saisi halvemmalla, se ei lohduta kun tuotanto on pullonkaulana.

Sitten kun siirrytään tilanteeseen jossa markkina alkaa saturoitumaan ja kumpikin toimija tarjoaa tavaraa enemmän tai vähemmän suoraan hyllystä, NVIDIA joutunee tunaamaan kateprosenttiaan tai AMD alkaa viedä markkinaosuutta isommin. Ja kyllä ne sitä siinä vaiheessa tunaavat. Nahkatakkimies osaa maksimoida piilastuista irti saatavan rahaläjän kyllä varsin tarkasti…

Ja kyllä, siinä kohtaa voi NVIDIAn osakekurssi vähän heilahdella kun arviot tulevaisuuden katteista saavat pientä hiustenleikkuuta. Mutta vaikea on arvoida milloin tämä tapahtuu. Voi olla vielä vuoden-parin päässä helposti.

13 tykkäystä

Jenkkianalyytikko härkäilee perjantain dipistä huolimatta. 1400$ tavoitehinta mainittu. Rakettimeemit ja tatuoinnit tosin uupuvat.

8 tykkäystä

Jep, en kyllä shorttaisi ennen GTC:tä.
The #1 AI Conference for Developers | GTC 2024 | NVIDIA

1 tykkäys

Nahkatakki tarinoi, että vaikka kilpailijat antaisivat ai-chippinsä ilmaisiksi nvidian tuotteet silti kustannustehokkampia.

”Of course, companies will be well aware of the Total Cost of Ownership (TCO), which basically means that Nvidia’s claimed benefits like time to deployment, performance, utilization, and flexibility are “so good that even when the competitor’s chips are free, it’s not cheap enough,” according to Huang. ”

10 tykkäystä

Kaverihan puhuu totta, TCO:ssa ratkaisee myös se, mitä tavaralla saa aikaiseksi.

1 tykkäys

Näin se on, pitkässä juoksussa perf/watt ratkaisee eikä chipin hinta. Sikäli jos AMD:n vehkeet kuluttaa merkittävästi enemmän virtaa niin se voi tosiaan olla sama vaikka ne olisi ilmaisia, sittenkin jäisi tappiolle.

2 tykkäystä

NVIDIAn H100 on 700W. AMD MI300X puolestaan sitten 750W. Ihan samoilla pallokentillä.

Se millä nahkatakkimies yrittää vetää kotiin päin on että jos katsot koko serveriä näillä ARM-pohjaisilla Grace Hopper-laitteilla, niissä käyttöpaikoissa joissa tämä on OK, virransäästö on sen verran huomattava että TCO saattaa hyvinkin keikahtaa siihen suuntaan että laitteen korkea hinta ei tunnu missään.

x86-pohjaisilla servereillä kilpailutilanne on aika tasan. Saattaa olla jopa AMDin eduksi koska EPYCit ovat virtapihimpiä kuin Xeon-pohjaiset NVIDIAn podit. Paitsi että NVIDIAn vehkeet ovat kalliimpia. Että cherrypickkausta lienee tapahtunut kun tätä TCO-etua hehkutetaan.

En ole tarpeeksi nuuskinut muiden also-ran valmistajien AI-kiihdyttimiä että osaisin sanoa mikä on virrankulutuksen ja tehon suhde siellä, mutta nämä ovat aika lailla pyöristysvirhe markkinalla juuri nyt joten…

16 tykkäystä

Pari viikkoa sitten puhuttiin siitä, voisiko isompi osa nykyisistä CPU-workloadeista olla rinnakkaislaskettavissa ja siten GPU TAM muodostua paljon nykyisiä käyttötapauksia suuremmaksi, kuten Huang on nyt vuosia esittänyt.

Itse en tiedä vastausta, mutta törmäsin tällaiseen Aalto yliopiston ja Suomen Nvidian kurssiin, jonka avulla ajattelin lähetä hakemaan vastauksia. Joku muukin saattaa olla asiasta kiinnostunut: Programming Parallel Computers: https://ppc.cs.aalto.fi/

4 tykkäystä

Ihan peruskaura-opetusmateriaalia ohjelmoijille. “Prossut ja varsinkin GPUt ovat vahvasti rinnakkaisia, älä tee väärin tai hukkaat hurjasti suorituskykyä”. Varmasti tarjoaa hyvää pohjatietoa jos aihe kiinnostaa.

5 tykkäystä

Jep. Ihan peruskauraa tuo ei taida kuitenkaan olla. Ainakin itse onnistunut valmistumaan tietojenkäsittelystä siten, että ainoa rinnakkaisuuteen liittyvä tekeminen on ollut käyttöjärjestelmien monisäikeistystä ja synkronointia :slight_smile:.

Ajatus heräsi, kun tuli luettua pitkästä aikaa tuli luettua tietorakenteiden ja algoritmien kirjaa. Heti ensimmäinen opetettu järjestämisen tehokas algoritmi, merge sort, olisi todella helposti muutettavissa rinnakkaislaskettavaksi. Sama taitaa päteä melkein kaikkiin ns. “divide and conquer” algoritmeihin.

2 tykkäystä

Nahkatakkimies-show tulossa maanantai-iltana. Uutta laskentakorttirautaa (Blackwell, B100)

12 tykkäystä

Jensen GTC:llä: oltiin ihan tyytyväisiä Hopperiin, mutta Blackwell on paljon parempi.

Inferencing performance 30x.

5 tykkäystä