Data: 2017.12.29
Author: cjh
Theme: TI Openmp clacc编译器讲解
本章内容主要分四讲来讲:
一、clacc编译器的讲解
二、
makefile的讲解
三、
openmp target语法讲解
四、openmp 例程讲解
五、
openmpacc代码下载
1. 介绍
OpenMP用于共享内存并行系统的多处理器程序设计的一套指导性编译处理方案(Compiler Directive)。OpenMP支持的编程语言包括C、C++和Fortran;而支持OpenMp的编译器包括Sun Compiler,GNU Compiler和Intel Compiler等。
德州仪器的OpenMP加速器模型实现目前在以下系统上得到支持:
SoC
System
Installation Instructions
AM572
AM572 EVM
Processor SDK for AM57x
66AK2H
66AK2H EVM
Processor SDK for K2H
66AK2H
HP m800 Moonshot
MCSDK-HPC for m800
66AK2L
66AK2L EVM
Processor SDK for K2L
66AK2E
66AK2E EVM
Processor SDK for K2E
66AK2G
66AK2G EVM
Processor SDK for K2G
OpenMP 4.0规范通过添加对一组设备结构的支持,支持在异构系统上使用OpenMP。OpenMP 4.0可以通过在主机上执行代码,可使用traget将目标代码加载到目标设备运行。举个例子:OpenMP加速器模型运行时实现利用了TI的OpenCL运行时,即原来在ARM上的代码可以加载到DSP上执行,在将结果返回到ARM上。
2. clacc编译器
clacc是一个用来编译OpenMP 4.0加速器模型源代码的工具。clacc依次依赖于主机gcc工具链,C6000代码生成工具(CGT)以及TI OpenMP加速器模型和OpenCL主机库。
使用clacc编译程序,通过以下命令完成的:
clacc [options] [object-files] C-source-files
clacc选项总结如下
-h, --help
显示房租信息
-v, --verbose
显示debug输出
-k, --keep_files
Keep intermediate temporary files
-d, --runtime_verbose
Enable runtime debugging information display
-p, --runtime_performance
Enable runtime performance information display
-g, --debug
生成目标调试符号
--make_lib
编译静态库
--host_cc arg
主机编译使用
--hc arg
主机编译选项
--tc arg
目标编译选项
--hl arg
主机连接选项
--tl arg
目标连接选项
--show_cc_opts
Show host and target compiler options being used
-o, --exe
命名
使用OpenMP结构和TI特定的扩展需要特定的代码结构。这些示例通常具有以下源目录文件结构:
· 主机 C/C++文件
o 具有main()函数的 main.cpp/c
o 在目标区域使用的函数等效在主机上名为host.cpp/c
· 目标 C文件
o 文件具有 #pragma omp target and 和#pragma
omp declare target regions are named _target.c
· Makefile
o 包含make.inc文件
PS:文件结构和clacc的编译命令要严格按照要求来