Data: 2017.12.29
Author: cjh
Theme: TI Openmp clacc编译器讲解
本章内容主要分四讲来讲:
一、clacc编译器的讲解
四、openmp 例程讲解
1. 介绍
OpenMP用于共享内存并行系统的多处理器程序设计的一套指导性编译处理方案(Compiler Directive)。OpenMP支持的编程语言包括C、C++和Fortran;而支持OpenMp的编译器包括Sun Compiler,GNU Compiler和Intel Compiler等。
德州仪器的OpenMP加速器模型实现目前在以下系统上得到支持:
SoC | System | Installation Instructions |
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的编译命令要严格按照要求来