Anhang B. CUDA
In diesem Buch haben wir hauptsächlich PyTorch oder darauf aufbauende Tools wie fastai
und Hugging Face Transformers verwendet. Als wir PyTorch zum ersten Mal in diesem Buch vorstellten, haben wir es als Low-Level-Framework angepriesen, mit dem du Architekturen aufbauen und Trainingsschleifen "von Grund auf" mit deinen Kenntnissen der linearen Algebra schreiben kannst.
Aber PyTorch ist vielleicht nicht die niedrigste Abstraktionsebene, mit der du beim maschinellen Lernen zu tun hast.
PyTorch selbst ist in C++ geschrieben, zu dem die Sprache CUDA eine Erweiterung ist. CUDA ist ein "Programmiermodell", mit dem du Code für Nvidia-Grafikprozessoren schreiben kannst. Wenn du deinen C++ Code schreibst, fügst du bestimmte Funktionen ein, die "CUDA Kernel" genannt werden und einen Teil der Arbeit auf dem Grafikprozessor ausführen.
Wer ist dieses Pokémon? CUDA Kernel
Ein Kernel ist eine Funktion, die für spezielle Beschleunigerhardware wie GPUs (Graphics Processing Units), FPGAs (Field-Programmable Gate Arrays) und ASICs (Application Specific Integrated Circuits) kompiliert und entwickelt wurde. Sie werden in der Regel von Ingenieuren geschrieben, die sich mit der Hardware-Architektur bestens auskennen, und sind so abgestimmt, dass sie eine einzelne Aufgabe sehr gut ausführen, z. B. eine Matrixmultiplikation oder eine Faltung. CUDA Kernel sind Kernel, die auf Geräten laufen, die CUDA-Nvidias GPUs und Beschleuniger nutzen.
PyTorch und viele andere Deep-Learning-Frameworks ...
Get Angewandte natürliche Sprachverarbeitung im Unternehmen now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.