Drivrutinsnedladdning:Inloggningen med hyperlänken är synlig. CUDA-verktygslådan:Inloggningen med hyperlänken är synlig. cuDNN:Inloggningen med hyperlänken är synlig.
Vad är GPU?
Konceptet GPU föreslogs av Nvidia 1999. Ett grafikkort är ett chip på ett grafikkort, precis som en CPU är ett chip på ett moderkort. Så det fanns inga grafikkort på grafikkort före 1999? Självklart fanns det, men ingen gav den namn vid den tiden, och den drog inte tillräckligt med uppmärksamhet från folk, och dess utveckling gick relativt långsamt.
Sedan Nvidia föreslog konceptet GPU har GPU:er gått in i en period av snabb utveckling. Kort sagt har den genomgått följande utvecklingsstadier:
1. Endast för grafikrendering är denna funktion GPU:ernas ursprungliga avsikt, vilket kan ses av dess namn: Graphic Processing Unit;
2. Senare upptäcktes att det var för slösaktigt för en så kraftfull enhet som ett grafikkort att endast användas för grafikbehandling, och att den borde användas för mer arbete, såsom flyttalsoperationer. Hur gör man? Att ge flyttalsoperationer direkt till GPU:n är inte möjligt eftersom det endast kan användas för grafikbehandling (vid den tiden). Det enklaste att tänka på är att göra viss bearbetning av flyttalsoperationer, paketera dem i grafikrenderingsuppgifter och sedan lämna över dem till GPU:n. Detta är konceptet för GPGPU (General Purpose GPU). Det finns dock en nackdel med detta, nämligen att du måste ha viss kunskap om grafik, annars kommer du inte att kunna packa.
3. Därför, för att låta personer som inte förstår grafik uppleva kraften i GPU-beräkningar, föreslog Nvidia konceptet CUDA.
Vad är CUDA?
CUDA (ComputeUnified Device Architecture) är en datorplattform lanserad av grafikkortstillverkaren NVIDIA. CUDA är en allmän parallell datorarkitektur lanserad av NVIDIA. Den innehåller CUDA:s instruktionsuppsättningsarkitektur och en parallell beräkningsmotor inuti GPU:n. Du kan utveckla CUDA-program genom att använda ett CUDA C-språk liknande C-språket, vilket gör det enklare att använda GPU:ns kraftfulla beräkningskraft, istället för att paketera beräkningsuppgiften i en grafikrenderingsuppgift och sedan lämna över den till GPU:n för bearbetning.
Med andra ord är CUDA ett parallellt beräkningsramverk som lanserats av NVIDIA för sina egna GPU:er, vilket innebär att CUDA endast kan köras på NVIDIA GPU:er och endast kan spela rollen som CUDA när beräkningsproblemet som ska lösas är att det kan beräknas i ett stort antal parallella beräkningar.
Observera att inte alla GPU:er stödjer CUDA.
Vad är CUDNN?
NVIDIA cuDNN är ett GPU-accelererat bibliotek för djupa neurala nätverk. Den betonar prestanda, användarvänlighet och låg minnesöverbelastning. NVIDIA cuDNN kan integreras i högre nivå av maskininlärningsramverk som Googles Tensorflow, UC Berkeleys populära caffe-programvara. Enkel plug-in-design gör det möjligt för utvecklare att fokusera på att designa och implementera neurala nätverksmodeller istället för att bara justera prestandan, samtidigt som det möjliggör högpresterande modern parallell beräkning på GPU:er.
Om du vill träna en modell med en GPU krävs inte cuDNN, men det används oftast som ett accelerationsbibliotek.
Vad är relationen mellan CUDA och CUDNN?
CUDA ses som en arbetsbänk med många verktyg som hammare, skruvmejslar, etc. cuDNN är ett CUDA-baserat deep learning-bibliotek med GPU-accelererad grafik, med vilket deep learning-beräkningar kan utföras på GPU:er. Det är likvärdigt med ett verktyg för arbete, till exempel är det en skiftnyckel. Men när CUDA-arbetsbänken köptes fungerade det inte som en knyckonyckel. För att köra ett djupt neuralt nätverk på CUDA behöver du installera cuDNN, precis som du vill skruva fast en mutter och köpa en skiftnyckel. Detta gör att GPU:n kan arbeta på djupa neurala nätverk, vilket är mycket snabbare än CPU:er.
|