MIC编程指南初级教程_第1页
MIC编程指南初级教程_第2页
MIC编程指南初级教程_第3页
MIC编程指南初级教程_第4页
MIC编程指南初级教程_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档 1欢迎下载 MICMIC 编程 编程 1 1 MICMIC 是什么 是什么 美国 SC12 大会上 英特尔正式发布了至强融核 Xeon Phi 采用 MIC Intel Many Integerated Core 架 构 用于高性能并行计算 MIC 基于 X86 架构 支持多种并行模型 OpenMP pThread OpenCL MPI 等并 行编程语言 采用 C C 和 Fortran 三种语言进行软件移植开发 特点以编程简单 引语方式 著称 工具链丰富 MIC 基于 X86 架构 是众核协处理器 MIC 为 Xeon Phi 产品的架构总称 Xeon Phi 的第一代产品的架构 代号为 Knights Corner Knights Corner 采用 Intel 2012 开始使用的 3D 三门 晶体管技术 使用 22nm 工艺制造 MIC 卡含有 50 个以上的核 每个核可以支持 4 个线程 双精性能超过 1TFlops 含有 512bit 的向量宽度 支持 8 个双通道 GDDR 内存控制器 内存大小为 6GB 或 8GB MIC 卡图解 MIC 卡通过 PCI E 连接到主板上 通过一个 8PIN 和一个 6PIN 电源线供电 功耗在 225 300W 精品文档 2欢迎下载 MICMIC 编程 编程 2 2 MICMIC 主要参数主要参数 MIC 卡上每个核可以执行不同的指令 每个核最多支持 4 个硬件线程 用来隐藏存储访问延迟 MIC 卡与主机端通过 PCI E 连接 支持 PCI E x8 或 x16 线宽配置 每个 MIC 卡可以设置独立的 IP 可以把每个 MIC 卡当作独立的节点 MIC 卡拥有 512bit 的向量位宽 可以同时处理 16 个 32 bit 浮点 整形元素或 8 个 64 bit 浮点 整形元素 的计算 MIC 卡包含 32KB L1 指令 cache 和 32KB L1 数据 cache 同时 每个核拥有全局可见的 L2 cache 大小为 512KB MIC 的另一个重要的特点是卡上有一个微操作系统 uos uos 使得 MIC 卡具有下面的两个功能 1 MIC 卡可以完整的之行程序 而不需要 CPU 发起主函数 即只需要把程序传递到 MIC 卡上 uos 可以使程序完整运行 2 MIC 卡包括众多的核 程序运行时可能有些核没有被用到 这时 uos 就可以通过关闭空闲的核 减少功耗 精品文档 3欢迎下载 MICMIC 编程 编程 3 3 MICMIC 峰值性能计算方法峰值性能计算方法 SE10P 1 单精度峰值性能 32 SP FLOPs clock core 61 cores 1 1GHz 2147 2 GFLOP s 2 双精度峰值性能 16 DPFLOPs clock core 61 cores 1 1GHz 1073 6 GFLOP s 3 内存带宽 4 Bytes channel 16 mem channels 5 5GT s 352GB s 5110P 1 单精度峰值性能 32 SP FLOPs clock core 60 cores 1 053GHz 2021 76 GFLOP s 2 双精度峰值性能 16 DPFLOPs clock core 60 cores 1 053GHz 1010 88 GFLOP s 3 内存带宽 4 Bytes channel 16 mem channels 5 0GT s 352GB s 注 32SP FLOPs clock core 512 32 2 是指 512bits 向量化和 FMA 指令 双精度类似 精品文档 4欢迎下载 MICMIC 编程 编程 4 4 MICMIC 灵活高效的编程方式灵活高效的编程方式 MIC 是基于 X86 架构的众核处理器 CPU 多核上的并行编程模型在 MIC 上都支持 同时 MIC 卡上运行一个 uos 因此 MIC 与 CPU 多核之间的编程很灵活 既可以 CPU 端启动主函数 也可以 MIC 端启动主函数 甚至可以 CPU 和 MIC 端同时各自发起主函数 CPU 多核和 MIC 协同编程模式如下图所示 CPU 多核和 MIC 协同计算有以下几种模式 1 Multi Core Hosted 程序并行度较低 只在 CPU 多核上运行 2 Offload 加载模式 CPU 端发起主函数 通过 offload 模式调用 kernel 到 MIC 上执行 类似 于 GPU 的 kernel 执行模型 3 Symmetric 对等模式 即 CPU 多核和 MIC 各自发起主函数 采用 mmic 编译选项区别 MIC 端可 执行程序和 CPU 端可执行程序 4 Reverse Offload 逆转加载模式 与 offload 模式相反 由 MIC 端发起主函数 5 Many Core Hosted native 模式 利用 mmic 编译选项编译成 MIC 端可执行程序 程序只在 MIC 上执行 精品文档 5欢迎下载 MICMIC 编程 编程 5 5 MICMIC 驱动驱动 MPSSMPSS 安装安装 1 1 MICMIC 对硬件的要求对硬件的要求 1 主板 目前 并不是所有的主板都支持 MIC 环境 有些主板升级 BOIS 后可以支持 MIC 环境 MIC 需要在主板 BOIS 中启用大型基本地址寄存器 BAR 支持 MMIO 大于 4GB 的寻址 默认情况下 大多数平台 BIOS 实 施将其设为禁用 因此必须在平台 BIOS 设置中将其手动启用 有些系统默认的散热速度并未设置成全速 当使用被动散热的 MIC 卡时 需要改动系统的散热速度 设置 其为全速散热才能保证 MIC 卡的正常运行 MIC 需要安装在专业的服务器上运行 还没有看到 PC 机器上成功安装的情况 2 电源 目前 MIC 卡的功率为 225W 或 300W 因此 系统中配置的电源需要足够才可 3 PCI E 接口 MIC 卡需要通过 PCI E 2 0 x16 以上的接口与主板连接 2 2 目前目前 MICMIC 开发环境支持的操作系统开发环境支持的操作系统 Red Hat Enterprise Linux 64 位 6 0 内核 2 6 32 71 Red Hat Enterprise Linux 64 位 6 1 内核 2 6 32 131 Red Hat Enterprise Linux 64 位 6 2 内核 2 6 32 220 Red Hat Enterprise Linux 64 位 6 3 内核 2 6 32 279 对应 Red Hat 同一版本的 CentOS 也支持 SUSE Linux Enterprise Server SLES 11 SP1 内核 2 6 32 12 0 7 default SUSE Linux Enterprise Server SLES 11 SP2 内核 3 0 13 0 27 default windows 版本也已提供支持 Microsoft Windows 7 Enterprise SP1 64 bit 精品文档 6欢迎下载 Windows 8 Enterprise 64 bit Windows Server 2008 R2 SP1 64 bit Windows Server 2012 64 bit 3 3 目前支持目前支持 MICMIC 开发的软件环境开发的软件环境 Intel 编译器对 MIC 提供了完全的支持 同时针对 IntelMIC 架构进行了特定的优化 使用 Intel 编译器 可以获得较好的性能 开源编译器 gcc 支持 native 模式的开发 目前支持 MIC 的第三方工具包括编译器 各种编程规范 常用的应用库等 具体可参见 and libraries available with support for intelr xeon phitm 4 4 MICMIC 开发环境下载地址开发环境下载地址 请根据操作系统选择合适的开发环境下载 下面的网站也提供了 MIC 环境安装步骤 software stack mpss 可以购买或者下载试用版本的 Intel 开发工具 5 5 MPSSMPSS 安装步骤 安装步骤 linuxlinux 1 在安装英特尔 R MPSS 软件之前禁用 SELinux 以避免 SELinux 覆盖标准 Linux 权限设置 2 检查先前已安装版本的英特尔 R MPSS 程序包 如果存在 则停止服务并卸载程序包 user prompt sudo rpm qa grep intel mic user prompt sudo service mpss stop 3 卸载先前版本的英特尔 R MPSS 驱动程序 如果存在 Red Hat Enterprise Linux user prompt sudo yum remove noplugins disablerepo intel mic SUSE Linux Enterprise Server user prompt sudo zypper remove intel mic 精品文档 7欢迎下载 4 解压缩并安装英特尔 R MPSS 程序包 以 mpss gold update 3 2 1 6720 13 rhel 6 0 为例 user prompt tar xvf mpss gold update 3 2 1 6720 13 rhel 6 0 tar user prompt cd mpss gold update 3 Red Hat Enterprise Linux user prompt sudo yum install nogpgcheck noplugins disablerepo rpm SUSE Linux Enterprise Server user prompt sudo zypper no gpg checks install rpm 5 英特尔 R 至强融核 TM 协处理器 SMC Bootloader 更新 1 将协处理器设为 就绪 状态 user prompt sudo micctrl r user prompt sudo micctrl w user prompt mic0 ready 2 仅对英特尔 R 至强融核 TM 硬件已安装的 B0 或 B1 卡更新 SMC 固件 如果系统为 C0 卡 不需要刷 flash user prompt sudo opt intel mic bin micflash Update opt intel mic flash device all 其中 代表一个再此发行版中名为 EXT HP2 SMC Bootloader 1 8 4326 css ab 的 SMC 固件文件 6 启动英特尔 R MPSS 服务 若是新安装 使用 user prompt sudo micctrl initdefaults 若要保留现有配置 使用 user prompt sudo micctrl resetdefaults 启动 mpss 服务 user prompt sudo service mpss start 配置英特尔 R MPSS 服务在主机 OS 启动时启动 user prompt sudo chkconfig mpss on 禁止英特尔 R MPSS 服务在主机 OS 启动时启动 user prompt sudo chkconfig mpss off 6 6 MICMIC 安装中遇到的问题安装中遇到的问题 精品文档 8欢迎下载 1 MIC 卡插到主板上 但 6PIN 和 8PIN 接口没有接入电源 导致系统找不到 MIC 卡 2 MIC 驱动 MPSS 版本和操作系统版本不一致 导致运行 MIC 程序时提示找不到 MIC 设备 3 MIC 运行作业时会因为温度过高导致 MIC 停止工作 当 MIC 温度过高停止工作时 需要系统断 电后重启机器才可以恢复 MIC 正常工作 若不断电 系统重启后 MIC 仍不能使用 导致该问题的是散热方 案 有些系统默认的散热速度并未设置成全速 当使用被动散热的 MIC 卡时 需要改动系统的散热速度 设置其为全速散热才能保证 MIC 卡的正常运行 精品文档 9欢迎下载 MICMIC 编程 编程 6 6 MICMIC 对等模式配置方法对等模式配置方法 基于 InfiniBand 网络的对等模式还没有配置成功过 下面以以太网的配置方法为例说明其过程 首先安装 MIC 驱动 MPSS 包 详细安装过程见 MIC 编程 5 MIC 驱动 MPSS 安装 通过 service mpss status 命令查看 mpss 的运行状态 若返回 mpss is running 则先关闭 mpss 服务 service mpss stop 下面以 host 端 IP 为 192 168 1 100 MIC0 192 168 1 101 MIC1 192 168 1 102 为例 新建 etc sysconfig network scripts ifcfg br0 内容 DEVICE br0 TYPE Bridge ONBOOT yes DELAY 0 NM CONTROLLED no MTU 9000 BOOTPROTO static NOZEROCONF yes IPADDR 192 168 1 100 NETMASK 255 255 0 0 修改 etc sysconfig network scripts ifcfg eth0 为 DEVICE eth0 ONBOOT yes BRIDGE br0 MTU 9000 micctrl addbridge br0 type External ip 192 168 1 100 mic0 mic1 micctrl network static bridge br0 ip 192 168 1 101 192 168 1 102 mic0 mic1 echo MTU 9000 opt intel mic filesystem mic0 etc sysconfig network ifcfg mic0 echo MTU 9000 opt intel mic filesystem mic1 etc sysconfig network ifcfg mic0 精品文档 10欢迎下载 service network restart service mpss start 成功配置后 就把 MIC0 的 IP 改为 192 168 1 101 MIC1 的 IP 改为 192 168 1 102 多节点可以采用类似的配置方法 配置成功后 不同节点主机与主机 主机与 MIC MIC 与 MIC 可以互相 访问 精品文档 11欢迎下载 MICMIC 编程 编程 7 7 offloadoffload 语法语法 MIC 编程中最基本的语法就是 offload 语句 offload 语句的作用为将程序和数据由 CPU 端传递到 MIC 端 并在 MIC 上执行 offload 语法为 C C pragma offload target mic id in out Fortran dec OFFLOAD target mic id in out 或 DIR OFFLOAD BEGIN target mic id in out DIR END OFFLOAD target 指定在哪块卡上运行 id 代表设备编号 如果 id 等于 1 系统将自动选择一块计算设备 现在来 说只有 MIC 卡 如果没有符合要求的设备 如只有 CPU 程序将退出并报错 如果 id 大于等于 0 程 序将 offload 到相应的 id 号 mic 上 target mic 不指定运行在哪块 MIC 卡上 这时程序会轮回的执行在不同的 MIC 卡上 如系统有两块 MIC 卡 第 1 次 offload 到 mic0 上执行 第 2 次 offload 到 mic1 上执行 第 3 次 offload 到 mic0 上执行 第 4 次 offload 到 mic1 上执行 in out 代表数据传递方向 in 为数据从 CPU 内存传递到 MIC 内存上 out 为数据从 MIC 内存上回传 到 CPU 内存中 具体语法后面再详细介绍 下面以向量加为例说明 1 include 2 include 3 include 4 5 define N 200000 6 7 attribute target mic 精品文档 12欢迎下载 8 void VecAdd mic float A float B float C int size 9 10 pragma omp parallel for 11 for int i 0 i size i 12 C i A i B i 13 14 15 int main int argc char argv 16 17 int i 18 int size N sizeof float 19 20 float A B C 21 A float malloc size 22 B float malloc size 23 C float malloc size 24 25 srand 2013 26 for i 0 i N i 27 28 A i rand 10 29 B

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论