Kernel berechnen
Im Computer, a Kernel berechnen ist eine Routine, die für einen hohen Durchsatz zusammengestellt wurde Beschleuniger (wie zum Beispiel Grafikverarbeitungseinheiten (Gpus), Digitale Signalprozessoren (DSPS) oder Feldprogrammierbare Gate-Arrays (Fpgas)), getrennt von einem Hauptprogramm (in der Regel auf a Zentrale Verarbeitungseinheit). Sie werden manchmal genannt Berechnen Sie Shader, teilen Ausführungseinheiten mit Scheitelpunkt -Shader und Pixel -Shader bei GPU Grafik -APIs.[1][2]
Beschreibung
Berechnen Sie Kerne ungefähr entsprechen innere Schleifen Bei der Implementierung von Algorithmen in herkömmlichen Sprachen (außer dass es keine implizite sequentielle Operation gibt) oder an Code übergeben an Interne Iteratoren.
Sie können durch ein separates spezifiziert werden Programmiersprache wie zum Beispiel "Opencl c"(verwaltet von der OpenCL API) als "Berechnung Shader"geschrieben in a Schattierungssprache (verwaltet von einer Grafik -API wie z. OpenGL) oder direkt in eingebettet Anwendungscode geschrieben in a hohe Sprache, wie im Fall von C ++ Amp.
Vektorverarbeitung
Dies Programmierparadigma Karten gut zu Vektorprozessoren: Es wird davon ausgegangen Daten parallel Hinrichtung. Jedoch, atomare Operationen kann manchmal für verwendet werden für Synchronisation zwischen Elementen (für voneinander abhängige Arbeit) in einigen Szenarien. Individuelle Aufrufe erhalten Indizes (in 1 oder mehr Dimensionen), aus denen eine willkürliche Adressierung von Pufferdaten durchgeführt werden kann (einschließlich Streuung versammeln sich Operationen), solange die nicht überlappende Annahme respektiert wird.
Vulkan API
Das Vulkan API liefert das Zwischenprodukt Spire-V Repräsentation zu beschreiben beide Grafische Shaderund berechnen Kerne in a Sprache unabhängig und maschinell unabhängig Benehmen. Es ist beabsichtigt, die Sprachentwicklung zu erleichtern und eine natürlichere Fähigkeit zu bieten, GPU -Rechenfunktionen zu nutzen, entsprechend den Hardwareentwicklungen wie z. B. Einheitliche Gedächtnisarchitektur und Heterogene Systemarchitektur. Dies ermöglicht eine genauere Zusammenarbeit zwischen einer CPU und einer GPU.