Qualcomm: Microsoft Automatic Super Resolution is niet exclusief voor onze socs

Microsofts Automatic Super Resolution-functie is niet exclusief voor Snapdragon X-socs, zegt Qualcomm. Een Microsoft-hulppagina suggereert dat dit wel zo is, maar volgens Qualcomm komt dit doordat er nog geen andere Copilot+-pc-socs zijn.

Microsoft zegt dat Automatic Super Resolution nu alleen met Qualcomms soc werkt, omdat er op dit moment alleen nog Copilot+-pc-laptops te koop zijn met Snapdragon-soc. Als er andere socs op de markt komen 'die voldoen aan Microsofts prestatievereisten', dan kunnen die ook Automatic Super Resolution draaien. Dat zegt Qualcomm tegen The Verge.

Eerder leek het alsof de upscalingfunctie alleen zou werken met Qualcomm-socs, omdat Microsofts hulppagina over Automatic Super Resolution alleen spreekt over Snapdragon-socs en Arm. Microsoft heeft zelf nog niet gereageerd op de vragen op welke socs Auto SR nog meer moet werken en of de functie ook voor x86-pc's gaat werken.

Microsoft introduceerde vorige week de eerste Copilot+-pc-systemen. Dit zijn systemen met ingebouwde hardware voor het uitvoeren van AI-rekentaken, ofwel npu's. Vooralsnog zijn er alleen laptops met Qualcomms Snapdragon X-socs aangekondigd. Op termijn moeten ook AMD en Intel socs uitbrengen die geschikt zijn voor het Copilot+-pc-systeem. Het lijkt erop dat die systemen ook Auto SR moeten kunnen draaien, al is dit nog niet bevestigd.

Auto SR is een functie die de resolutie van een game verlaagt om deze daarna met AI te upscalen. Dit moet hogere framerates in games opleveren. De functie wordt standaard ingeschakeld bij bepaalde, geverifieerde games en is daarnaast in te schakelen bij andere games. Deze moeten DirectX 11 of 12 draaien en Arm-geëmuleerd of -native zijn. Auto SR staat los van DirectSR, een api waarmee ontwikkelaars andere upscalingimplementaties, zoals Nvidia's DLSS en AMD's FSR, makkelijker kunnen gebruiken in games.

Door Hayte Hugo

Redacteur

29-05-2024 • 09:06

31

Lees meer

Reacties (31)

31
30
13
1
0
16
Wijzig sortering
Interessant dat er alleen gesproken wordt over SoCs. Ik neem toch aan dat dit ook zou moeten gaan werken in combinatie met PCs zonder SoC in combinatie met een NPU insteek kaart, GPU met NPU module aan boord, etc.

Sowieso ben ik niet een heel groot fan van de move richting SoCs op PC gebied. Ik snap het vanuit een hardware perspectief, op een SoC kan je veel nauwer zaken integereren. Maar als consument verlies je toch een hoop op het gebied van modulariteit, reparatie mogelijkheden, etc.

Zeker op het moment dat ook zaken zoals het geheugen (M series Apple) op het SoC zitten.

[Reactie gewijzigd door Creesch op 23 juli 2024 05:54]

Aan de andere kant heeft Apple juist op het gebied AI een groot voordeel omdat het het geheugen integreert op de soc. Voor werken met AI is de geheugen bandbreedte erg belangrijk, normaal is de GPU daar veel sterker in dan de cpu, maar bij Apple kunnen de CPU en NPU het aanspreken op hoge snelheden die je normaal alleen op moderne GPU’s ziet. Mede door het soc ontwerp. Ik mag toch hopen dat dit copilot pc concept een vergelijkbare snelheid vereist en dan moet je toch het geheugen op de soc integreren.
Een dedicated GPU heeft z'n eigen geheugen en meestal veel meer bandbreedte dan die SoCs van Apple. De M4 heeft bijvoorbeeld 120GB/s. Een RTX 4060 meer dan het dubbele. De 4090 zelfs meer dan 1TB/s, en zal straks met GDDR7 alleen maar meer worden.

Ik begrijp niet waar de mythe vandaan komt dat Apple zoveel GPU bandbreedte zou hebben want Apple gebruikt gewoon standaard LPDDR5 geheugen. De bandbreedte komt dus overeen met andere laptops.

[Reactie gewijzigd door Wolfos op 23 juli 2024 05:54]

Een dedicated GPU heeft z'n eigen geheugen en meestal veel meer bandbreedte dan die SoCs van Apple. De M4 heeft bijvoorbeeld 120GB/s. Een RTX 4060 meer dan het dubbele. De 4090 zelfs meer dan 1TB/s, en zal straks met GDDR7 alleen maar meer worden.
De Apple M2 Ultra komt dan weer aan de 820 GB/s. En kan de cpu die bandbreedte ook op die snelheid aanspreken bij een X86 systeem? Daar zit nou net het voordeel van de soc oplossing, het is niet alleen de gpu die er bij kan. Tuurlijk zal een RTX4090 altijd beter zijn, maar dat is toch wel een dure niche kaart die je niet snel bij de huis tuin en keuken gebruiker terug gaat zien, en daar is dit copilot programma voor gemaakt.
X86 CPU's scheiden juist in meer tiers meer soorten geheugen, we zien steeds meer "ringen" cache (denk aan 3D-cache op CPU's met meer ops/second dan wat dan ook, zodat cache-miss events waarvoor RAM/storage nodig is laag zijn). Ook zaken als latency zijn erg belangrijk in dit soort discussies, en waarom je juist een multi-tier oplossing wil.

Moderne GPU's hebben dat door ook eigen, los van de CPU zijnde, L1/L2 cache te hebben en in het geval van AMD accellerators zelfs een L3 "ring"-cache, voordat het dedicated VRAM (wat dus zonder extra bus overhead van bijvoorbeeld CoreLink wat in de ARM-spec als inter-CPU connect geld) hoeft te benaderen. Dat VRAM is bovendien ook nog eens lagere latency, én 100% zeker voor de GPU beschikbaar. VRAM en DRAM hebben erg andere kenmerken, het gebruik van GDDR voor general compute is ook niet bepaald optimaal omdat zaken als word/dword lengte minder geoptimaliseerd zijn.

Dedicated nVidia kaarten zijn dan ook voorzien van HBM, GDDR, en wat dan ook, met zelfs voor de consumer bandbreedtes die in de TB/s uitgedrukt kunnen worden zonder dat CPU/general purpose compute het kán vertragen. Door een volwassen PCIe implementatie kan het zelfs als "host" optreden om op eigen houtje los van de CPU en gewoon DRAM GPU-compute cache-misses op te vangen door de SSD te benaderen. Cache miss is een enorm dure operator waarbij eigenlijk een stuk data wordt opgevraagd bij de "volgende stap in de keten", waarbij de volgende stap bij voorkeur zo min mogelijk interconnects en andere cache-hebbende brokers benaderd. Dit is ook een van de redenen dat 3D-Vcache zo'n wonder is voor games.

"Niche" kaarten gaan we denk ik sowieso meer en sneller zien, en die gaan we ook meer en sneller met "eigen" geheugensetjes zien. Waar voor de integrated/simpele apparaten (denk aan handhelds en desktop macs) shared oplossingen prima zijn, en "trage" geheugen interfaces als "row of chips soldered" en "DIMM" ook goed kunnen zijn.

De specialistische apparatuur zal toch meer en meer kanalen willen hebben (denk aan 8 kanaals per module met eventueel server-grade CAMM modules ipv DIMM), zoveel RAM past namelijk nooit op een SOC zelf), en meer dedicated hardware willen hebben.

Gemiddelde AI node ziet er ook ongeveer zo uit:
- Dikke AMD Epyc met enorme hoeveelheden cache, en 8- tot 12-kanaals high speed, low latency geheugen, en een enorm dikke PCIe-based interconnect (minimale storage in de machine zelf), en een stuk of 4 videokaarten die niet via PCIe zijn aangesloten, maar via SXM. Elke GPU heeft in de interconnect al 900GB/sec connectiviteit (in vergelijking met PCIe: da's nogal veel). Het geheugen op een individuele GPU heeft zo'n 1,2TB/s connectiviteit, en er zitten zo'n 4 tot 8 sets op één GPU, dus zo'n 4,8 tot 9.6TB/s bandbreedte.
- Zodra de GPU zelfs met z'n 48GB en 9.6TB/s geheugen >NIET< aan de juiste data kan komen, en dus een cache miss heeft tijdens het uitvoeren van zijn programma, kan hij met infiniband (wat onder netwerk valt maar feitelijk PCIe als het ware gebruikt) rechtstreeks met een NAS praten met tot 800Gb/s aan connectie. Dat is eigenlijk een losse server vol met dus door GPU's vrijwel direct te benadren op lage latency SSD's.

En dan is een GPU zelf ook nog eens general compute. Wat we bij NPU's eigenlijk nu zien, en bij veel meer "smaakjes" hardware (begon al met de HPU die in de Microsoft Hololens zat) dat we steeds meer "specialisatie" hardware gaan zien. ASIC-achtige chips die zelfs nóg gespecialiseerder zijn dan een GPU. Wel weer verbonden aan een CPU, en bijgestaan door een GPU, maar meer gespecialiseerd in een specifieke taak.

NPU's zijn zo'n tussenweg: waar GPU's erg goed zijn om "flexibel" AI modellen te trainen (en dus ook training/validatiedata moeten toepassen), is een NPU meer een implementatie van het getrainde model. Veel training is bijvoorbeeld CUDA-only tegenwoordig (dus ook nVidia-only), maar het resultaat, een getraind model, is soms verpakt in de vorm van een "ONNX" executable (https://onnx.ai/). ONNX is dus eigenlijk de runtime van een AI model wat getraind is op een andere set data, en "vrijer" is, het werkt op RyzenAI, Snapdragon AI, de Intel meuk, en je nVidia GPU kan het ook uitvoeren; als het maar een NPU die compatible is, en afhankelijk van het toegepaste model: aan bepaalde eisen voldoet (copilot PC programma van MS is eigenlijk een ONNX implementatie waarbij een minimale system requirement in hoeveel flops de NPU moet hebben in het uitvoeren van ONNX modellen, net zoals je vroeger minimaal een pentium van 100MHz moest hebben, hebben de AI modellen nu dus eisen).

Een spannende tijd, waarbij een "computer" als concept met een standaard CPU steeds vaker een "cluster" wordt van meerdere chips die elk hun eigen specialisatie - en ook dus geheugen - heeft. Alles echter op één shared set zetten, zoals Apple dat doet, werpt beperkingen op. Je merkt dat in de nieuwe datascience/AI zaken Apple eigenlijk niks "on metal" doet, maar dat de macs meer veredelde chromebooks zijn waarbij via VSCode of een webbrowser met "echte" hardware wordt gesproken. Los van alle specs, is de helaasheid van het "alles in één" design van Apple dat het hooguit een bepaald runtime niveau is (zonder een programma van minimale eisen zoals MS dat doet), en voor de rest dus een onvoorspelbaar design is wat bovendien niet uitbreidbaar/te segmenteren is.
Tuurlijk zal een RTX4090 altijd beter zijn, maar dat is toch wel een dure niche kaart die je niet snel bij de huis tuin en keuken gebruiker terug gaat zien,
Datzelfde geld voor een M2 Ultra natuurlijk. De bandbreedte van de mainstream chips van Apple is niet bijzonder hoog, en word gedeeld met een GPU.

Beetje DDR5 systeem heeft zo'n 64GB/s per DIMM, dus zal meestal op 128 uitkomen. Dat is dan alleen voor de CPU. SoCs kunnen inderdaad meer hebben maar moeten het dan weer delen waardoor je netto vaak op minder uitkomt.

[Reactie gewijzigd door Wolfos op 23 juli 2024 05:54]

Met een systeem met een RTX4090 met 16 GB en 64GB intern geheugen betekend het niet dat je het intern geheugen "ontlast" met de 16GB van de GPU. Data wordt bewerkt door CPU en GPU, maar moet alles daarvoor heen en weer gekopieerd worden tussen GPU en CPU geheugen zodat de CPU het kan bewerken als het in het CPU geheugen staat en de GPU als het in het GPU geheugen staat . Shared wil zeggen dat deze kopieerslag niet nodig is, omdat de data in het gemeenschappelijke geheugen staat en door CPU en GPU (en NPU) bewerkt kan worden.
Shared wil niet zeggen dat je een deel van je CPU geheugen "kwijt" bent, want op je RTX4090 met 16 GB en 64GB intern geheugen wordt ook de data uit het GPU geheugen naar de interne geheugen gekopieerd en neemt daar ruimte in beslag om de CPU het te laten bewerken.

[Reactie gewijzigd door Jan Onderwater op 23 juli 2024 05:54]

Voor eigenlijk veel AI workloads doet de CPU vrij weinig. Dat is bijna helemaal GPU werk. Er gaat in verhouding helemaal niet zo veel data over de PCIe bus tijdens het echte trainen, en als je lekker gaat gaat de trainings data sowieso direct van storage. Daarom kan dit ook altijd allemaal prima over fabric in die echt grote setups.
En een GPU is dan weer niet zo optimaal voor de verwerking dan een NPU (en de Apple SoC hebben beide), Wat AI Workloads wel weer veel nodig hebben is geheugen en een M3Max gaat tot 128GB
Maar goed die Hopper GPUs zijn dermate geoptimaliseerd voor trainen van neural nets dat het bijna niet van een NPU te onderscheiden is voor die taak maar wel veel flexibeler om mee te experimenteren (het blijven programmable shaders). En dat van die 128GB is inderdaad jammer ja, maar goed dan moet men maar gewoon een echt systeem kopen.
Ik verwacht dat de M4 Extreme 256 of mogelijk zelfs 512 GB gaat hebben, de M3Max is tenslotte een laptop processor. Een Mac Pro met een dergelijke M4 Extreme gaat een lieve duit kosten, maar een Hopper kaart met een H100 en 80GB kost ook een 35K. Das andere kattepis dan een gamingkaart.
En kan de cpu die [1TB/s van de 4090] bandbreedte ook op die snelheid aanspreken bij een X86 systeem?
Nee, en dat is dus het voordeel. Het is ongedeelde snelheid. De bandbreedte van de CPU naar DDR4/DDR5 is daarvan onafhankelijk; de totale bandbreedte is dus groter.
Dit is helemaal waar, echter op een architectuur waar jij het over hebt wordt de data continue tussen GPU en CPU geheugen heen en weer gekopieerd omdat CPU en GPU niet tegelijkertijd kunnen toegrijpen op de data in het geheugen. Kortom: CPU moet wat doen, data naar interne ram en GPU doet er ff niets mee, CPU is klaar en data gaat weer naar GPU geheugen en GPU kan weer wat doen.
Bij de architectuur van Shared Memory zoals bij Apple bv is deze kopieerslag niet nodig en kunnen CPU, GPU en NPU toegrijpen op de data in het geheugen. Het verschil zit hem dus niet zozeer in de snelheid van het geheugen an sich, maar de efficiëntie van het overslaan van de kopieerslag. En let wel, de M4 is laagste in de M4 serie, zo heeft de M2 een geheugen bandbreedte van 100GB/s echter de M2 Ultra van 800 GB/s. Extrapolerend (Assumptie) kom je dan op bij de M4 Ultra op 1TB/s en dat is dan gelijktijdig voor de CPU/GPU/NPU zonder heen en weer kopieëren.
Dat kopieren geldt alleen voor de data die daadwerkelijk gedeeld wordt. En voor een moderne AI is dat minder dan 0.1%. De gewichten in het neurale netwerk blijven volledig in GDDR.
Je betaald je dus blauw voor hetzelfde..
Apple doet sowieso behoorlijk hoogdravend en hun klanten vreten dit als zoete koek.

Tot op heden zie ik verticale integratie vooral als een goedkope manier om prestatievoordelen te behalen en een manier om de consument op de middellange termijn op te lichten door de muren van de tuin hoger op te trekken. Apple loopt hierbij voorop en Microsoft wil ook maar al te graag uit die ruif vreten.

Want het blijk keer op keer dat er andere oplossingen ontwikkelt worden die dezelfde prestaties behalen zonder dat de koper met wegwerp apparatuur komt te zitten. Want er zijn wel oplossingen, maar dit zou betekenen dat ze moeten investeren in R&D, en wat naar R&D gaat, kan niet naar de aandeelhouders. Kortom altijd korte termijn en aandeelhoudersbelang boven de lange termijn en algemeen belang.

Mijn volgende laptop wordt in elk geval een framework-achtige machine (niet per se van Framework). Die modulariteit moet de toekomst zijn, maar het lijkt er steeds meer op dat de grote techbedrijven willen dit het verleden is.

Toen Nadella aantrad leek het er op dat hij Microsoft meer open ging maken, maar nu enkele jaren verder lijkt hij ook op dezelfde weg als al zijn voorgangers. Het lijkt er meer en meer op dat je geen vertrouwen moet hebben in mensen aan een top, want de macht en het blijkt altijd corrupt te maken.
Waarom trek je de definities van 'open' gelijk aan 'corrupt'?
Het is gewoon een bepaalde bedrijfsvisie en ook nog eens op een spectrum van hoe je 'open' definieert.

Microsoft software is bijvoorbeeld zelden open source en Microsoft heeft lang niet altijd een grote rol in hardware gespeeld. Apple heeft ook periodes gehad van insteekkaarten en losse geheugenmodules en is op sommige vlakken (AI onderzoek) 'open' en andere vlakken (modulaire hardware) 'closed'.

De huidige trend is inderdaad meer verticale integratie en dat heeft voordelen en nadelen.

Uiteindelijk is het mooi dat er meerdere bedrijfsvisies bestaan en dat je daar je keuzes in kan maken (als het überhaupt belangrijk voor je is).
Al eens met wsl gespeeld? Meer linux krijg je niet
Wat voor laptop is dat dan? Ik heb mijn 2013 MBP aan mijn ouders doorgegeven en die draait nog prima.

Een aantal ander apple apparaten heb ik bij de Apple Store ingeleverd bij de aanschaf van een nieuwe. Dan krijg je er soms nog een aardig bedrag voor (1150 euro MacBook Air 6 jaar later voor 295 euro inleveren) en zij regelen de recycling
Mijn 2014 MBP nu op MacOS Sonoma.

Een 2013 MBP gaat tot Big Sur. Veel software die via de App store beschikbaar isondersteunen tot max 4 versies ouder. Ook browsers gaan binnenkort problemen voor hen veroorzaken. En Safari wordt al niet meer bijgewerkt naar de laatste versie met alle security problemen die dit kan veroorzaken.

Maar belangrijker nog krijg je nog beveiligingsupdates?

Deze MBP 2014 is dus volledig up to date, voor zo lang dit nog mogelijk is. Want Apple zal ongetwijfeld binnenkort alle ondersteuning voor Intel Macs onmogelijk maken.
En als je dan bedenkt dat je alles ook gewoon op de CPU kunt doen, zonder een NPU dan is die voorsprong er ineens niet meer. Natuurlijk gaat het iets trager zijn. Maar of dat het grote verschil gaat maken?

Je draait lokaal ook geen grote modellen, maar net kleine modellen. Natuurlijk zal geheugentoegang belangrijk zijn voor bepaalde taken waarbij je veel data in geheugen gaat bewerken. Maar de meeste data zal toch in de eerste plaats van je storage moeten komen.

Ik zie vooral een specs race op hardwaregebied op dit moment voor software die de hardware voor een groot deel onbenut laat. Wat zijn we toch goed bezig met zen allen.
Zeker als je bedenkt dat het draaien van veel modellen nu ook bij uitstek gebeurt op hardware met losse GPUs en CPUs. Het is dus sowieso geen onmogelijkheid en eerder de norm dan uitzondering.
. Ik neem toch aan dat dit ook zou moeten gaan werken in combinatie met PCs zonder SoC in combinatie met een NPU insteek kaart
Dat lijkt me lastig qua performance. Losse insteekkaarten hebben het enorm nadeel dat er geen snel shared memory is tussen de CPU, GPU en NPU. Je moet dus elke keer data van en naar de NPU/GPU kopiëren over de relatief trage PCI bus.

Alles op de GPU of een GPU+NPU combo zou mogelijk kunnen, als het beeld op de GPU gegenereerd wordt en alles 100% in VRAM kan zonder kopieer acties.
Denk dat het wel mogelijk is, maar de vraag is of de productmanagers/big tech dat willen...
Vertikale integratie enzo...

Technisch? Het werkt al zo: een ontwikkelaar zit echt niet op zo'n snapdragon SoC te werken... Testen ja maar ontwikkelen echt niet!
Tja, de losse floating point unit heb je al jaaaren geleden verloren, maar mis je dat? De integratie zorgt voor een flinke optimaliseringsslag.
Beetje een dooddoener, een floating point unit vergelijken met alle componenten die in een SoC worden opgenomen is namelijk een enorme stap. Nogmaals, vanuit een technisch oogpunt snap ik het. Zeker op platformen waar het ook een hoop ruimte oplevert (telefoons, tablets, mogelijk laptops). Maar in desktop omgevingen vraag ik me af of de performance winst echt zo groot is dat het opweegt tegen het inleveren op keuzemogelijkheden en upgrade mogelijkheden.
Ik vind het wel interesant dat het internet het zo bespreekt dat dit een vraag is.
Op zich dan wel weer ergens vreemd, dat Qualcomm verdere duiding hieraan dient te geven en dat MS dit niet zelf doet, ASR is immers een feature van Microsoft, niet van Qualcomm.
Qualcomm was gewoon de eerste die reageerde.

Dat gezegd hebbende was Microsoft ook vrij duidelijk tijdens zijn presentatie dat AutoSR een Copilot+ PC feature was, waarvan het eerder al had gezegd dat Intel en AMD later dit jaar ook systemen zouden uitbrengen.

Laten we niet vergeten dat dit hele verhaal de kop op heeft gestoken omdat een journalist niet de tijd heeft genomen om dit na te vragen alvorens het verhaal de wereld in te sturen omdat deze persoon een ondersteunings document zag van Microsoft en ervan uitging dat omdat Intel en AMD's onaangekondigde hardware niet in dat document stonden, dat het dus een Qualcomm exclusieve functie was.
"Auto SR staat los van DirectSR, een api waarmee ontwikkelaars andere upscalingimplementaties, zoals Nvidia's DLSS en AMD's FSR, makkelijker kunnen gebruiken in games."

Waarom nou?
DirectSR is aan API, waar diverse partijen hun implementatie achter kunnen gooien.
Nvidia met hun DLSS, AMD met hun FSR, Intel met hun XeSS.
En dan komt Microsoft met hun (software matige?) AutoSR als implementatie van DirectSR.

Zo moeilijk is dat toch niet?

Op dit item kan niet meer gereageerd worden.