Die Dateiendung .cuh bezeichnet ein spezialisiertes Header-Dateiformat, das in der NVIDIA CUDA-Programmierumgebung (Compute Unified Device Architecture) verwendet wird. Es handelt sich dabei im Wesentlichen um das C++-Header-Äquivalent für CUDA-fähigen Quellcode. Während standardmäßige C++-Header die Endungen .h oder .hpp verwenden, dient die .cuh-Endung dazu, dem NVIDIA CUDA-Compiler (NVCC) explizit zu signalisieren, dass die Datei CUDA-spezifische Deklarationen enthält, wie beispielsweise Device-Kernels, globale Variablen und Host-Device-Funktionen, die die CUDA-API nutzen. Diese Dateien werden in .cu-Quelldateien mittels der Präprozessor-Direktive #include eingebunden. Durch die Trennung von Deklarationen in .cuh-Dateien können Entwickler modulare Codebasen pflegen, Funktionsprototypen über mehrere Übersetzungseinheiten hinweg teilen und sicherstellen, dass der Compiler die für die GPU-Beschleunigung erforderlichen parallelen Rechenkonstrukte korrekt verarbeitet. Dieses Format ist von entscheidender Bedeutung für das Hochleistungsrechnen (HPC), Deep-Learning-Frameworks und wissenschaftliche Simulationen, die darauf angewiesen sind, rechenintensive mathematische Berechnungen von der CPU auf die GPU auszulagern.