Informàtica Mixta de Precisió

Nvidia ha estat fabricant xips gràfics amb nuclis addicionals que estan més enllà del normal que s’utilitza per als shaders durant els darrers tres anys. Aquestes unitats misterioses, conegudes com a nuclis tensorals, es poden trobar a milers d’ordinadors de sobretaula, portàtils, estacions de treball i centres de dades de tot el món. Però, per a què serveixen exactament i per a què serveixen? De veritat els necessiteu? targeta gràfica?

Avui explicarem què és un tensor i com s’utilitzen els nuclis tensorals al món gràfic i d’aprenentatge profund.

Temps ràpid de la lliçó de matemàtiques

Per entendre exactament què fan els nuclis tensorals i per a què es poden utilitzar, primer hem de cobrir exactament què són els tensors. Els microprocessadors realitzen operacions matemàtiques (suma, multiplicació, etc.) sobre els números, sigui de la forma que siguin.

De vegades, aquests nombres s’han d’agrupar perquè tenen un significat entre ells. Per exemple, quan un xip està processant dades per crear un gràfic, es pot tractar amb valors sencers sencers (com ara +2 o +115) per a un factor d’escala o un grup de nombres de coma flotant (+0,1, -0,5 , +). 0.6) per a les coordenades d’un punt de l’espai 3D. En aquest darrer cas, la ubicació de la ubicació requereix les tres dades.

El tensor és un objecte matemàtic que descriu la relació entre altres objectes matemàtics que estan interconnectats.




A tensor és un objecte matemàtic que descriu la relació entre altres objectes matemàtics que estan interconnectats. Normalment un seqüència La mida de la matriu es pot veure com es mostra a continuació.




El tensor més senzill que podeu obtenir té una dimensió zero i consta d’un sol valor, un altre nom per a això digital quantitat. A mesura que comencem a augmentar el nombre de dimensions, podem trobar-nos amb altres construccions matemàtiques habituals:




  • 1 mida = vector
  • 2 dimensions = matriu

Per ser precisos, és un tensor 0 x 0 escalar, un vector 1 x 0 i una matriu 1 x 1, però amb tensors en forma de matriu per simplificar-los i com es relacionen amb els nuclis tensorals d’un processador gràfic.




Una de les operacions matemàtiques més importants amb matrius és la multiplicació (o multiplicació). Vegem com es multipliquen dues matrius amb 4 files i columnes de valors:




La resposta final a la multiplicació sempre conté el mateix nombre de files que la primera matriu i el mateix nombre de columnes que la segona. Llavors, com es multipliquen aquestes dues cadenes? Com això:




Com podeu veure, un càlcul de productes de matriu "simple" consisteix en un lot de petites multiplicacions i addicions. Com que totes les CPU del mercat actual poden fer aquestes dues operacions, significa que qualsevol ordinador de sobretaula, portàtil o tauleta pot manejar els tensors bàsics.

No obstant això, l'exemple anterior conté 64 multiplicacions i 48 addicions; Cada producte petit resulta en un valor que s'ha d'emmagatzemar en algun lloc abans que s'acumuli amb els altres 3 articles més petits, abans que el valor final del tensor s'emmagatzemi en algun lloc. Tot i que les multiplicacions de matrius són matemàticament simples, càlcul dens: s'ha d'utilitzar un gran nombre de registres i la memòria cau ha de fer front a un gran nombre de lectures i escriptures.

Les CPU d’AMD i Intel han ofert diverses extensions al llarg dels anys (MMX, SSE, ara AVX: tot SIMD, comandament individual dades múltiples) permet al processador processar múltiples nombres de coma flotant simultàniament; Què comporten exactament les multiplicacions de matrius.

No obstant això, hi ha un tipus específic de processador. sobretot Està dissenyat per gestionar processos SIMD: unitats de processament de gràfics (GPU).

És més intel·ligent que la vostra calculadora mitjana?

Al món gràfic, s’ha de moure un gran nombre de dades i processar-les al mateix temps com a vectors. La capacitat de processament en paral·lel de les GPU és ideal per processar tensors i, actualment, tots GEMM (Multiplicació de matrius generals).

Es tracta d'un procés "fusionat" en el qual es dupliquen dues matrius juntes i després la resposta s'acumula amb una altra matriu. Hi ha algunes restriccions importants sobre el format que han de tenir les matrius i giren al voltant del nombre de files i columnes que té cada matriu.

Els algoritmes que s’utilitzen per realitzar operacions de matriu funcionen millor quan les matrius són quadrades (per exemple, l’ús d’una matriu de 10 x 10 funciona millor que 50 x 2) i de mida força petita. Tot i això, encara funcionen millor quan es manegen únicament amb maquinari dedicat a aquests processos.

El desembre de 2017, Nvidia va llançar una targeta gràfica esportiva GPU amb una nova arquitectura Temps. Estava dirigit al mercat professional, de manera que cap model GeForce havia utilitzat mai aquest xip. El que el va fer especial va ser que va ser el primer processador gràfic que només tenia nuclis per a càlculs de tensors.

Nvidia amb zero imaginació darrere dels noms colors tensors Està dissenyat per transportar 64 GEMM per cicle de rellotge en una matriu de 4 x 4 que conté valors FP16 (nombre de coma flotant de 16 bits) o multiplicació FP16 amb l'addició de FP32. Aquests tensors tenen una mida molt petita, de manera que quan s’utilitzen conjunts de dades reals, els nuclis passen per petits blocs de matrius més grans per formar la resposta final.

Menys d’un any després, Nvidia, Turing arquitectònic. Aquesta vegada classe de consumidors Models GeForce nucli de tensor esportiu també. El sistema s'havia actualitzat per donar suport a altres formats de dades com INT8 (valors enters de 8 bits), però a part d'això, encara funcionaven com amb Volta.

A principis d’any, Tot just debut en arquitectura Centre de dades A100 el processador gràfic i aquesta vegada Nvidia van millorar el rendiment (de 64 GEMM per cicle, 64), van afegir més formats de dades i capacitat de processament tensors escassos (matrius amb un gran nombre de zeros) molt ràpidament.

Per als programadors, accés als nuclis tensorals És fàcil en qualsevol dels xips Volta, Turing o Ampere: el codi ha d’utilitzar un indicador per indicar que voleu utilitzar nuclis tensor de l’API i els controladors, el tipus de dades ha de ser un codi admès pels nuclis. les matrius han de ser múltiples de 8. Després, aquest maquinari s’encarregarà de tota la resta.

Tot està bé, però, com són els nuclis tensor millors que els nuclis normals de la GPU quan s’utilitzen GEMM?

Quan va aparèixer Volta per primera vegada, Anandtech Va fer algunes proves de matemàtiques amb tres targetes Nvidia: la nova Volta, una placa basada en Pascal de gamma alta i una vella placa Maxwell.

Període sensible Aquí "matriu" es refereix al nombre de bits utilitzats per als nombres de coma flotant en matrius, fins i tot 64, imparells 32 i similars. L'eix horitzontal fa referència al nombre màxim d'operacions FP realitzades per segon, o FLOP en breu (recordeu que un GEMM té 3 FLOP).

Mireu què passa quan s’utilitza el nucli tensorial en lloc del nucli CUDA estàndard. Evidentment, són fantàstics quan fan aquest tipus de treball Llauna amb nuclis tensorals?

Matemàtiques per fer-ho tot millor

Les matemàtiques tensores són extremadament útils en física i enginyeria i s’utilitzen per resoldre tot tipus de problemes complexos. mecànica de fluids, electromagnetisme i astrofizikno obstant això, els ordinadors que s'utilitzen per aixafar aquestes xifres tendeixen a realitzar operacions matricials en grans clústers de CPU.

Una altra àrea a la qual li agrada utilitzar els tensors és aprenentatge automàticespecialment el subconjunt aprenentatge profund. Es tracta de gestionar col·leccions de dades massives. xarxes neuronals. Els enllaços entre els diferents valors de dades tenen un cert pes, un nombre que expressa la importància de l'enllaç.

Per tant, quan necessiteu saber com interactuen centenars, si no milers, de totes les connexions, heu de multiplicar cada peça de dades de la xarxa per diferents pesos d’enllaços. En altres paraules, multipliqueu les dues matrius juntes: matemàtiques del tensor clàssic!

És per això que tots els grans superordinadors d’aprenentatge profund estan plens de GPU i gairebé sempre amb Nvidia. No obstant això, algunes empreses han construït els seus propis processadors de nucli tensorial. Google, per exemple, va tenir el seu primer TPU (unitat de processament de tensors) però aquests xips són molt especials, no poden fer res més que operacions matricials.

Però, i si teniu una targeta gràfica Nvidia GeForce RTX i no sou un astrofísic que resol problemes amb les varietats de Riemann o que proveu les profunditats de les xarxes neuronals convolucionals ...? Què fan per vosaltres els nuclis tensorals?

En la seva major part, no s’utilitzen per a la renderització normal, la codificació o la descodificació de vídeos, que poden semblar que malgastes els teus diners en una funció inútil. No obstant això, a mesura que Nvidia va introduir nuclis tensorals en productes de consum (Turing GeForce RTX) el 2018 DLSS -- Super Sampling de Deep Learning.

La premissa bàsica és senzilla: renderitzeu un marc amb una resolució baixa i, en acabar, augmenteu la resolució del resultat final perquè coincideixi amb les dimensions de pantalla natives del monitor (per exemple, renderitzeu a 1080p i, a continuació, canvieu la mida a 1400p). D'aquesta manera, obtindreu l'avantatge de rendiment d'un processament de píxels menor, però, tot i així, obtindreu una imatge agradable a la pantalla.

Les consoles ho fan des de fa anys i molts jocs de PC ofereixen aquesta capacitat. Al barri d'Ubisoft Assassin's Creed: Odyssey, només podeu canviar la resolució de la pantalla fins a un 50% del monitor. Malauradament, el resultat no sembla massa calent. El joc té un aspecte 4K amb la configuració màxima de gràfics aplicada (feu clic per veure la versió a resolució completa):

Córrer en alta resolució significa que les textures tenen un aspecte molt millor ja que conserven detalls fins. Malauradament, tots aquests píxels requereixen molt de processament per treure'ls. Ara vegeu què passa quan el joc està configurat per renderitzar-se a 1080p (un 25% més de píxels que abans), però, finalment, utilitzeu shaders per ampliar-lo a 4K més endavant.

Gràcies a la compressió de jpeg i a la redimensionament de les imatges del nostre lloc web, la diferència pot no ser immediatament òbvia, però l’armadura del personatge i la formació de roca a distància són una mica borroses. Apropem una secció per veure-la de prop:

La part esquerra es representa de forma nativa en 4K; dreta, 1080p augmentat a 4K. A mesura que el moviment es converteix en una farineta borrosa amb tots els detalls suavitzats, una vegada que la diferència està en moviment, la diferència es nota molt més. Alguns d'aquests es poden retirar mitjançant l'efecte de nitidesa en els controladors de la targeta gràfica, però seria millor no haver-ho de fer gens.

Aquí és on DLSS juga la seva mà a Nvidia primera iteració Els jocs seleccionats de la tecnologia es van analitzar, es van executar a baixa resolució i resolucions altes amb i sense antialiasing. Tots aquests modes van produir una gran quantitat d'imatges alimentades als seus propis superordinadors, utilitzant una xarxa neuronal per determinar la millor manera de transformar una imatge de 1080p en una imatge d'alta resolució perfecta.

De DLSS 1.0 no va ser genialEn alguns llocs, els detalls sovint es perden o brillen estranyament. De fet, tampoc no feia servir els nuclis tensor de la vostra targeta gràfica (fabricats a la xarxa Nvidia) i no tots els jocs que admeten DLSS necessitaven la seva pròpia revisió per crear l'algorisme d'actualització.

Quan versió 2.0 Va sortir a principis del 2020, amb algunes millores importants. El més notable d'ells va ser que els superordinadors de Nvidia només es van utilitzar per crear un algorisme d'actualització genèric. .

Estem impressionats Què pot fer DLSS 2.0?Tanmateix, ara mateix admet molt pocs jocs, només 12 en total en el moment d’escriure-ho, però hi ha més desenvolupadors que volen implementar-lo en futures versions i per una bona raó.

Hi ha enormes guanys en el rendiment que es poden obtenir, fent millores de tot tipus perquè pugueu apostar pel vostre darrer dòlar perquè DLSS continuï millorant.

Tot i que la sortida visual de DLSS no sempre és perfecta, desencadenant el rendiment de la renderització, els desenvolupadors tenen l’abast d’incloure més efectes visuals o presentar els mateixos gràfics en una gamma més àmplia de plataformes.

També hi ha millors plans per al nucli tensor de les targetes GeForce RTX. animació de personatges or simulació de teixits. Però, com abans de DLSS 1.0, passaran un temps abans que centenars de jocs utilitzin rutinàriament calculadores de matriu personalitzades a les GPU.

Els primers dies però hi ha una paraula

Aquí hi ha: nuclis tensorals, petites peces de maquinari enginyoses, però només poques trobades a les targetes gràfiques de nivell consumidor. Canviarà això en el futur? Com que Nvidia ja ha millorat significativament el rendiment d’un nucli de tensor únic en les darreres arquitectures d’Ampere, tenim l’oportunitat de veure més models de gamma mitjana i pressupostaris que també ho fan.

Tot i que AMD i Intel no els tenen a les seves GPU, és possible que vegem alguna cosa similar implementada en el futur. AMD suggerir un sistema Per afinar o millorar els detalls dels marcs acabats amb un petit cost de rendiment, simplement s’hi poden adherir, sobretot perquè els desenvolupadors no necessiten integrar-los; només és un interruptor dels controladors.

També s’afirma que l’espai del motlle dels xips gràfics es pot gastar millor afegint més nuclis de tonalitat, el que fan quan es construeixen versions pressupostàries dels xips Nvidia Turing. M'agrada GeForce GTX 1650 Va deixar caure completament els nuclis tensorals i els va substituir per ombres FP16 addicionals.

Però, ara com ara, si voleu experimentar un rendiment GEMM súper ràpid i tots els avantatges que pot aportar, teniu dues opcions: aconseguir-vos un munt de grans CPU multi-nucli o només una GPU amb nuclis tensor.

Altres lectures tècniques
Dreceres de compres:
  • GeForce GTX 1660 Super clar Amazon
  • GeForce RTX 2060 activat Amazon
  • GeForce RTX 2070 Super clar Amazon
  • GeForce RTX 2080 Super clar Amazon
  • GeForce RTX 2080 Ti obert Amazon
  • Radeon RX 5600 XT activat Amazon
  • Radeon RX 5700 XT activat Amazon