July 2024
Intermediate to advanced
436 pages
10h 46m
English
This chapter goes through the steps that are typically taken to optimize a CUDA Fortran application. Reducing the overhead of transferring data between the host and device is discussed first in terms of reducing the amount of data transferred and making such transfers efficient and possible. Once the data are on the device, how to efficiently access this data from kernels is discussed at length, including topics of global memory data coalescing and use of on-chip shared memory. The topic of launching kernels with enough parallelism, whether in the form of instruction-level or thread-level parallelism, is also discussed.
Pinned memory; Asynchronous data transfers; Stream; Shared memory; Bank conflicts; Constant ...
Read now
Unlock full access