一个完整的CUDA工程由主机代码和设备代码组成。主机代码在CPU上串行执行,是普通的c代码。设备代码在设备端GPU上并行执行,称为内核。kernel并不是一个完整的程序,而是任务中全部可分解并行执行的步骤的集合。并行就层次而言主要指block间并行和thread间并行。