使用CUDA FORTRAN进行并行化,建立一个CPU/GPU混合编程模型。
在CUDA编程中,HOST负责协调程序的执行和管理CPU的内存。DEVICE负责执行繁重的计算并管理GPU内存。内核函数(Kernel function)是一个在GPU上启动,并由多个线程并行执行的子程序。并行执行计算的目的是为了利用现代GPU上的数千个处理核心,与传统CPU上的串行执行相比,可以大大加快计算速度。
do i = 1, NSTEP_DUMMY
call kernel_01_soa2
end do
CUDA 是由NVIDIA开发的一个并行计算平台和编程模型。CPU 代码是用C、C++或Fortran等高级编程语言编写的,而 GPU 代码是用CUDA C或CUDA C++编写的。CUDA C和CUDA C++分别是C和C++编程语言的扩展,允许开发者编写可以在GPU上执行的代码。除了内核功能外,CUDA编程还涉及内存管理、同步以及主机和设备之间的数据传输。CUDA提供了一套库和API来简化这些任务,使开发者能够专注于他们程序的计算方面。
OpenMP是一个应用编程接口(API),提供了一种为共享内存架构(如多核CPU)编写并行程序的方法。OpenMP允许开发者编写可以在多个内核上并行执行的代码,而不需要明确管理线程和同步。OpenMP的工作原理是在代码中添加编译器指令,指定代码的哪些部分应该被并行