ComputingComputer ScienceHigh-performance ComputingComputer ArchitectureComputer GraphicsParallel ComputingComputer Graphics HardwareGraphics Processing Unit ArchitectureGraphics Processing Unit ComputingGraphics Processing UnitsParallel ArchitecturesParallel Computer ArchitectureDynamic Memory AllocationDynamic Memory ManagementGpu ArchitectureGpu MicroarchitectureGpu Programming ModelsGpu Runtime SystemsMemory AllocationProgramming Model Design
Recent advances have enabled GPUs to be used as general-purpose parallel processors on commodity hardware for little cost. However, the ability to program these devices has not kept up with their performance. The programming model for GPUs has a number of restrictions that make it difficult to program. For example, software running on the GPU cannot perform dynamic memory allocation, requiring the programmer to pre-allocate all memory the GPU might use. To achieve good performance, GPU programmers must also be aware of how data is moved between host and GPU memory and between the different levels of the GPU memory hierarchy.
19
Ian Buck, Daniel Reiter Horn, Jeremy Sugerman et al. · ACM Transactions on Graphics · 2004 · 1.2K citations
Raja Vallée-Rai, Phong Co, Étienne Gagnon et al. · 2010 · 939 citations
Revised5 Report on the Algorithmic Language Scheme
Hal Abelson, R. Kent Dybvig, Christopher T. Haynes et al. · LISP and Symbolic Computation · 1998 · 414 citations
Multi-stage programming with explicit annotations
Walid Taha, Tim Sheard · 1997 · 343 citations