The Future: Heterogeneous Computing and OpenCL

工业趋势正在推动FPGA在异构计算范式中发挥重要作用。 开放计算语言(OpenCL)是一个用于在异构环境中编程FPGA的行业标准开发平台。

 

本章将向您介绍为什么异构计算是必要的,以及用于创建在其上执行的软件的新语言的出现 。

Heterogeneous Computing

异构计算是指使用一种以上类型的处理器来执行专门处理功能的系统。随着系统的整合,异构计算越来越成为标准,并且必须包含几种不同的处理器体系结构。

并行计算是计算机同时执行许多计算的能力,其原理是将大问题分解为小问题,然后并发(并行)解决。并行计算已经成为当前计算机体系结构的主导范式,其中常见的就是多核处理器,程序将多个实例分配给多个处理器,同时执行。

Why Use OpenCL on FPGAs?

对异构计算的需求导致了新的编程语言来利用新的硬件。

OpenCL是一种用于编写跨由CPU、GPU、DSP、FPGA和其他类型处理器组成的异构平台执行的程序的框架。 OpenCL是一种用于开发内核(在硬件设备上执行的函数)以及允许主程序控制内核的应用程序编程接口(API)的语言。 OpenCL允许使用基于任务和基于数据的并行能力进行并行计算。

FPGA本质上是并行的,因此它们非常适合OpenCL的并行计算能力。 FPGA为您提供了一种替代典型数据或任务并行性的方法,它还提供了流水线并行性,在这种并行性中,任务可以以推拉配置生成,每个任务都可以在有或没有主机交互的情况下从上一个任务中获取数据。其次就是FPGA的编码是HDL编码语言,但是OpenCL允许使用c语言编写程序,然后使用OpenCL提供的额外功能,将代码分离为可以执行的执行代码和可以发送到FPGA的内核代码。

简单来说有以下几个好处:1.开发方便,就上所述,用c语言代替HDL语言编码

2.代码检测,可以检测并确定性能敏感的区域

3.性能,可以实现高平衡高效率

4.效率,使用OpenCL提供高性能服务

5.异构系统,使用OpenCL,您可以无缝地开发针对FPGA、CPU、GPU和DSP的内核,为您提供真正的异构系统设计。

6.代码复用,OpenCL允许可移植代码进入不同的代码区域,项目,延长使用寿命。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Heterogeneous Computing with OpenCL 2.0 teaches OpenCL and parallel programming for complex systems that may include a variety of device architectures: multi-core CPUs, GPUs, and fully-integrated Accelerated Processing Units (APUs). This fully-revised edition includes the latest enhancements in OpenCL 2.0 including: • Shared virtual memory to increase programming flexibility and reduce data transfers that consume resources • Dynamic parallelism which reduces processor load and avoids bottlenecks • Improved imaging support and integration with OpenGL Designed to work on multiple platforms, OpenCL will help you more effectively program for a heterogeneous future. Written by leaders in the parallel computing and OpenCL communities, this book explores memory spaces, optimization techniques, extensions, debugging and profiling. Multiple case studies and examples illustrate high-performance algorithms, distributing work across heterogeneous systems, embedded domain-specific languages, and will give you hands-on OpenCL experience to address a range of fundamental parallel algorithms. Updated content to cover the latest developments in OpenCL 2.0, including improvements in memory handling, parallelism, and imaging support Explanations of principles and strategies to learn parallel programming with OpenCL, from understanding the abstraction models to thoroughly testing and debugging complete applications Example code covering image analytics, web plugins, particle simulations, video editing, performance optimization, and more
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值