was/wofür sind die cuda einheiten/prozessoren bei nvidia grafikkarten?

3 Antworten

Hallo larsM1998,

bei Nvidia Grafikkarten mit CUDA Unterstützung ist es möglich die Grafikprozessoren für "normale" Programme zu verwenden. Da eine GPU, im Gegensatz zu einer normalen CPU, aus ganz vielen Prozessoren besteht kann damit eine sehr hohe parallele Abarbeitung von Aufgaben erreicht werden.

Wenn du jetzt denkst, dass du kannst dein Computerspiel damit schneller machen kannst, muss ich dich leider enttäuschen. CUDA ist erstens noch nicht so verbreitet und findet meistens nur für die Videobearbeitung oder im wissenschaftlichen Bereich bis jetzt Verwendung.

Gruß Khaos

Ein "CUDA-Core" ist eine einfache skalare Recheneinheit, eine so genannte ALU ("arithmetic logic unit"). Sie kann z. B. logische Operationen (and, or, xor, not, ...) oder Bitshifts auf Registern durchführen.

Viele "CUDA-Cores" bilden zusammen die GPU, die ein "Streamprozessor", ein SIMD-Prozessor ist. SIMD steht für "single instruction, multiple data", was etwa "ein Befehl, viele Datensätze" bedeutet, d. h. alle "CUDA-Cores" führen die selbe Operation aus, aber auf unterscheidlichen Operanden. Das liegt daran, dass sich die unzähligen Rechenwerke ein gemeinsames Steuerwerk teilen, das die Befehle dekodiert und über Steuerleitungen die Operationen "auswählt", die die ALUs durchführen sollen.

Dazwischen gibt es noch weitere Einheiten, wie "Warps" und "streaming Multiprozessoren" und weiß der Geier. Das braucht Dich aber eher weniger interessieren, weil diese Details durch die Hochsprache abstrahiert werden. Du arbeitest normalerweise nur mit "Threads" und "Blocks", wobei es eine maximale Anzahl an "Threads per Block" (früher 512, inzwischen 1024) gibt. Ein "Block" wird dabei immer einer Ausführungseinheit zugeordnet. Die vielen Threads innerhalb eines Blocks dienen vor allem dazu, Latenzen zu kaschieren.

Lies einfach bei wikipedia nach Cuda/PhysX.