移植该选GPU还是MIC

简介:
GPU和MIC是目前两个流行的异构计算平台,二者在市场上的地位类似。如果当下有一个fortran程序,是该选择移植到GPU上还是MIC上呢?
个人推荐:GPU要优于MIC。
首先,我们来看下GPU和MIC的单机linpack结果:

该测试的GPU为K40m,MIC为31S1P(天河2号专用卡)
从这个测试结果上看,MIC的linpack测试性能似乎略胜于GPU。

其次,从编译器的软件环境来看,CUDA FORTRAN的编译器为PGI,MIC的编译器为intel fortran,两款编译器对于fortran语言标准的支持有细微差别,
从移植的角度来说,如果原来的程序是用的intel的,移植选择intel的编译器可能要少些麻烦。除此以外,intel的编译器是免费的,PGI是收费的,而且
费用还不低,如果单买PGI的fortran,需要5000rmb,同时购买PGI C和fortran,估计价格约为1万rmb。幸运的是,PGI推出了社区版本,可以免费试用1年。

从支持的库来看,MIC支持intel的MKL,而在GPU上的fortran库只有CULA,且CULA目前停止更新。当然可以通过fortran调用C的方式来调用其他的C
版本的库,前提是PGI最好连C版本一起买了。

从使用的难易程度来看,MIC的接口很容易,形似openMP,fortran使用GPU的方式有两种,一种CUDA FORTRAN,一种OPENACC。如果希望能深层次的
优化的话,CUDA FORTRAN更好一些。代价就是,增加了移植的难度。

从debug的角度来说,CUDA有支持的图形化界面nvvp和命令行nvprof,而对于MIC来说,debug则显得不方便,因为接口封装的比较完美,底层不易触及。

最后,我阐述下个人使用GPU和MIC的感受,对于GPU来说,固然有编写代码和优化的难题,但是,其效果是明显和可预期的,只要并行度高的程序总能
有加速比。而MIC表面上使用简单,但真到用起来了也是“谁用谁知道”,简单概况有两大坑:第一,接口的坑。明明一个很简单的类似openmp的接口语句,
就是给你报错,报的莫名其妙,而且debug起来也是头疼不已。第二,性能的坑。linpack测试的结果很喜人,实际用起来就不咋地,有时候不一定加速,甚至
减速也是有可能的。

总之,GPU目前来说更成熟更稳定,MIC的发展要晚于GPU,缺陷较多。希望对疑惑于选择GPU还是MIC的同学们有些帮助。

原文发布时间为: 2016-12-19 16:07:45
原文由:LGZ 发布,版权归属于原作者 
本文来自云栖社区合作伙伴NVIDIA,了解相关信息可以关注NVIDIA官方网站
相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
1月前
|
传感器 编解码 人工智能
为 NVIDIA Jetson 和其他嵌入式系统选择合适的摄像头
本文详细介绍了为NVIDIA Jetson和其他嵌入式系统选择合适摄像头模块的关键因素,包括传感器类型(CCD和CMOS)、电子快门(全局快门和滚动快门)、彩色或单色传感器、动态范围、分辨率、帧率和接口等。文章还提供了光学器件的选择建议,并列出了NVIDIA摄像头模块合作伙伴,帮助用户完成从概念到生产的整个设计过程。
20 0
为 NVIDIA Jetson 和其他嵌入式系统选择合适的摄像头
|
3月前
|
编解码 Linux 开发工具
Linux平台x86_64(麒麟|统信UOS)|aarch64(飞腾)如何实现摄像头|屏幕和麦克风|扬声器采集推送RTMP服务或轻量级RTSP服务
国产化操作系统的发展,减少了外部依赖,更符合国家安全标准,并可提升自主研发能力,促进产业链发展,满足定制开发能力,减少了外部技术封锁的风险,提高了国际竞争力,推动了产业升级。目前大牛直播SDK针对Linux平台x86_64架构和aarch64架构的RTMP推送模块和轻量级RTSP服务模块
|
C语言 Python Windows
MicroPython 玩转硬件系列2:点灯实验
MicroPython 玩转硬件系列2:点灯实验
|
存储 缓存 网络协议
ZYNQ裸板:AXIDMA篇(简单模式)
DMA(Direct Memory Access,直接存储器访问)是计算机科学中的一种内存访问技术。它允许某些计算机内部的硬件子系统可以独立地直接读写系统内存,而不需中央处理器( CPU)介入处理。 DMA 是一种快速的数据传送方式, 通常用来传送数据量较多的数据块
1222 0
ZYNQ裸板:AXIDMA篇(简单模式)
|
算法 异构计算
m在ISE平台下使用verilog开发基于FPGA的GMSK调制器
m在ISE平台下使用verilog开发基于FPGA的GMSK调制器
167 0
m在ISE平台下使用verilog开发基于FPGA的GMSK调制器
|
数据处理 数据安全/隐私保护 SoC
DSP+ZYNQ硬件说明手册-XQTyer【开源】
XQ6657Z35/45-EVM 高速数据处理评估板(XQTyer 评估板)由广州星嵌电子科技有限公司自主研发,包含一片TI DSP TMS320C6657和一片Xilinx ZYNQ-7000 SoC 处理器XC7Z035-2FFG676I。适用于无人机蜂群、软件无线电系统,基带信号处理,无线仿真平台,高速图像采集、处理等领域。
DSP+ZYNQ硬件说明手册-XQTyer【开源】
|
数据处理 数据安全/隐私保护 SoC
DSP+ZYNQ多核例程使用手册-XQTyer【开源】
DSP采用 TMS320C6657 双核C66x 定点/浮点,每核主频1GHz/1.25GHz。 Xilinx Zynq SoC处理器采用的XC7Z035/045集成PL端Kintex-7架构+PS 端双核ARM Cortex-A9 ,28nm可编程逻辑资源。
DSP+ZYNQ多核例程使用手册-XQTyer【开源】
|
存储 定位技术 芯片
APU、CPU、GPU、SoC傻傻分不清楚?
APU、CPU、GPU、SoC傻傻分不清楚?
1447 0
APU、CPU、GPU、SoC傻傻分不清楚?
|
NoSQL 安全 IDE
结合AliOS Things谈嵌入式系统通用问题定位方法(1):CPU相关基础
本文着重从问题定位的角度来介绍如何定位嵌入式软件系统中的问题,并结合AliOS Things提供的部分维测手段来介绍。
结合AliOS Things谈嵌入式系统通用问题定位方法(1):CPU相关基础