OpenMP简介和开发教程 广州创龙电子科技有限公司 Guangzhou Tronlong Electronic Technology Co., Ltd
01 OpenMP 简介 02 OpenMP 基本语法介绍 03 OpenMP 案例讲解
01 OpenMP 简介 第 1 部分
OpenMP 基本知识 共享内存并行编程 API 将程式并行化、多线程化的API 支持C/C++/Fortran 不能在非共享内存系统上使用 04 广州创龙电子科技有限公司
OpenMP 两大模型 执行模型 两大模型 内存模型 05 广州创龙电子科技有限公司
执行模型 1. 主线程在遇到并行区域时会创建一组线程: 每个C66x核心运行一个OpenMP线程 主线程在DSP1开始执行 2. host加载目标区域代码到目标设备上,一直等待目标区域执行完成 06 广州创龙电子科技有限公司
内存模型 每个设备,包括host设备都具有初始化的数据环境 不同数据环境中的变量可以共享存储 数据映射子句决定如何将主机设备的数据映射到目标设备 线程能够访问到共享内存区域 线程具有私有内存空间 07 广州创龙电子科技有限公司
02 OpenMP 基本语法介绍 第 2 部分
#pragma omp 指令 [子句[子句]…] 指令的基本格式: #pragma omp 指令 [子句[子句]…] • #pragma omp target • #pragma omp declare target • #pragma omp target data • #pragma omp target update • #pragma omp parallel for 09 广州创龙电子科技有限公司
#pragma omp target 功能: 用于指定应该在目标设备上运行的代码区域 10 广州创龙电子科技有限公司
#pragma omp declare target 功能: 指明变量或函数是映射到设备 11 广州创龙电子科技有限公司
#pragma omp target data 功能: 通过映射host的buffer到目标设备来创建设备的数据环境 12 广州创龙电子科技有限公司
#pragma omp target update 功能: 同步host、device的数据 13 广州创龙电子科技有限公司
#pragma omp parallel for 功能: 将for循环分配到多个核心并行计算 14 广州创龙电子科技有限公司
03 OpenMP 案例讲解 第 3 部分
target_update example 程序功能: 利用AM5728的两个DSP核心进行对两个数组进行并行求和,并将最后结果返回给A15核心。 16 广州创龙电子科技有限公司
参考资料 TI OpenMP DSP Wiki: http://downloads.ti.com/mctools/esd/docs/openmp-dsp OpenMP Accelerator Model User's Guide: http://processors.wiki.ti.com/index.php/OpenMP_Accelerator_Model_User%27s_Guide OpenMP Application Program Interface: http://www.openmp.org/wp-content/uploads/OpenMP4.0.0.pdf 17 广州创龙电子科技有限公司
广州创龙电子科技有限公司 谢谢 官网:www.tronlong.com 论坛:51ele.net