异构编程模式

面向英特尔® MIC 架构的编译器方法

选择一种编程模式,异构卸载模式

概述

在本章中,我们将讨论面向英特尔® MIC 架构的英特尔® Composer XE 2013 异构卸载编程模式。

主题

英特尔® Composer XE 2013 支持被称为异构卸载的编程模式。在该模式中,编程人员指定将在英特尔® 集成众核架构(英特尔® MIC 架构)目标设备上运行的代码段。异构卸载模式使用简单的指示/指令和可选的 C++ 语言扩展来指定将卸载到英特尔® MIC 架构目标设备上的代码段和数据。无需其它特殊的编程 API,只需简单的编译指令和可选的 C++ 语言扩展。所有设置/清除、数据传输和同步都由编译器和运行时管理。在这种模式下,应用从主机平台开始运行。当遇到卸载区域时,会出现两种情况。如果找到支持的英特尔® MIC 架构目标设备且同时可用,(如果需要)将卸载区和数据传输至目标设备上运行。如果由于某种原因没有可用的 MIC 目标设备,代码区在 CPU 上运行。

在异构模式下,主机应用和 MIC 目标设备不共享内存。两项技术用于应对独立内存空间:

1.    异构应用使用卸载指示/指令,以引导从/到主机的数据迁移。该模式非常适用于带有较大连续数据块的应用。

2.    对于带有指针和非连续数据块的复杂数据结构而言,英特尔 C++ 编译器支持模拟虚拟共享内存的语言扩展,进而保持数据结构在主机和目标 MIC 设备之间的同步。这为带有复杂数据结构的现有 C++ 应用提供出色的灵活性,这些数据结构无法像连续数据块那样轻松传输。该模式可能不(不应该)是您的第一选择,因为保持虚拟共享内存所需的开销和同步会导致性能低下。然而,它确实令复杂 C++ 代码的迁移变得更加简单。该模式不支持 Fortran 应用。如上所述,Fortran 使用编译器指令卸载连续数据。

异构卸载入门:

面向英特尔® 集成众核架构的异构卸载模式演示文稿很好地概述了异构卸载模式。

教程:您的编译器文档包含《面向 Linux* 操作系统的英特尔® Composer XE 2013 入门》文档,其中的教程提供了面向 Fortran C++ 的异构卸载代码示例。打开《入门》文档,在教程列表中查找相关参考和链接,找到使用英特尔® MIC 架构教程。跟进您的编译器提供的示例。如果您不知道在哪里查找您的编译器文档和示例,请返回新用户编译器基本用法章节

示例:与教程一样,面向异构卸载的广泛示例也随您的编译器一起提供。如果您不知道在哪里查找您的样本目录,请访问:新用户编译器基本用法。

卸载用法和语法:关于如何使用异构卸载模式和语法指南的产品文档包含在您的《英特尔® Compiler XE 用户与参考指南》中,后者与编译器安装在您的系统中,且支持在线访问(2012 9 月后)。从您的《用户与参考指南》的内容导航工具栏中打开主要特性英特尔® MIC架构面向英特尔® MIC架构的编程概述:异构编程,并点击文档链接。如果您不知道何处查找您的编译器文档和示例,请返回新用户编译器基本用法章节

最新补充或修改:访问面向您编译器的版本说明文档。此文档随产品一起提供,请访问 https://registrationcenter.intel.com 从您的账户中进行下载。同时,它封装在您的编译器中(请查看面向新用户的编译器基本用法
此外,请通过 http://software.intel.com/mic-developer 访问您的 MIC 开发人员社区门户,以了解最新信息。

需要其它帮助?如果您有其它问题或上述信息未涉及您应用的使用模式,或者您希望获得应用方面的帮助,请访问英特尔(R) 集成众核架构用户论坛

要点

英特尔® Composer XE 2013 支持被称为异构卸载的编程模式。在该模式中,编程人员指定将在英特尔® 集成众核架构(英特尔® MIC 架构)目标设备上运行的代码段。异构卸载模式使用简单的指示/指令和可选的 C++ 语言扩展来指定将卸载到英特尔® MIC 架构目标设备上的代码段和数据。

您可以通过多种渠道探索该编程模式。编译器产品包括:

·         您可以参照的教程

·         工作样本,您可以将其当做模板来使用

·         关于用法和语法的产品文档

·         版本说明,以及时了解新增内容和任何变动

·         帮您解决编程问题的英特尔(R) 集成众核架构用户论坛及大量关于MIC 开发人员社区门户的文档可通过 http://software.intel.com/mic-developer 访问

下一步

要在英特尔® 至强融核协处理器上成功调试您的应用,请务必通读此指南,并点击文中的超链接查看相关内容。本指南提供了实现最佳应用性能所要执行的步骤。

返回本机和卸载编程模式

 

Nähere Informationen zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.