快捷搜索:  汽车  科技

gpu前沿技术(值得关注的GPU加速平台)

gpu前沿技术(值得关注的GPU加速平台)ArrayFire提供了几种灵活高效的方法,用于将下标索引进数组。和C/C 、Python以及Fortran相同,Array Fire的下标也是从0开始的,即A(0)是第一个元素。索引功能可以通过以下方法的组合实现:3、索引ArrayFire语言支持:C 、Fortran、Python,围绕单个矩阵对象(阵列),此矩阵可以容纳浮点值(单或双精度)、实数或复数值和布尔数据。ArrayFire的阵列式是多维度的,可以通过简单的矩阵生成函数例如(ones、randu等)生成,而且可以通过算法和函数进行操纵。另外,ArrayFire提供一条并行for循环工具——gfor——可以以并行数据的形式任意执行许多独立例程。2、惰性编译ArrayFire使用了一种名叫惰性编译的技术(有时也被称为及时计算,Just-In-Time computation,JIT)用于尽可能提升用户程序的运行速度。这项技术

过去十年间,消费者和计算机开发人员对GPU的需求快速上升,尽管成功案例越来越多,被采用的GPU软件开发数量却只是缓慢的提升。采用量提升缓慢的原因主要是GUP编程较为困难。随着这方面技术的发展出现了更加综合性的可编程软件结构,ArrayFire作为最新的GPU构造平台,打算把高级功能移植到底层硬件上去,最终实现在不牺牲整体性能的情况下,提供可编程性与可移植性。

gpu前沿技术(值得关注的GPU加速平台)(1)

ArrayFire是一个搭建在AccelerEyes网站上的软件平台,可以让使用者和编程人员利用C、C 、Fortran和Python语言实现通用型GPU(general purpose GPU,GPGPU)的快速并行数据程序开发,并且在低级GPU应用程序编程接口(例如CUDA、OpenCL和OpenGL)上提供一种简单的高级矩阵抽象。ArrayFire包含一个简单的应用程序编程接口(API)并且为CUDA框架和支持OpenCL的设备提供完整的GPU计算能力。它同样还可以提供数千种GPU调谐功能。

ArrayFire可以很好的完成并行数据算法的快速原型设计任务与构建已经部署的应用程序任务。本文将向计算应用者了解ArrayFire是如何支持GPU计算应用程序的开发,并且将着重介绍其中一些关键功能在实际代码操作中如何复现。

1、ArrayFire

ArrayFire语言支持:C 、Fortran、Python,围绕单个矩阵对象(阵列),此矩阵可以容纳浮点值(单或双精度)、实数或复数值和布尔数据。ArrayFire的阵列式是多维度的,可以通过简单的矩阵生成函数例如(ones、randu等)生成,而且可以通过算法和函数进行操纵。另外,ArrayFire提供一条并行for循环工具——gfor——可以以并行数据的形式任意执行许多独立例程。

2、惰性编译

ArrayFire使用了一种名叫惰性编译的技术(有时也被称为及时计算,Just-In-Time computation,JIT)用于尽可能提升用户程序的运行速度。这项技术在保证了灵活性的情况下既可以在运行中生成计算设备代码又可以优化内存传输以达到最大流率。

gpu前沿技术(值得关注的GPU加速平台)(2)

3、索引

ArrayFire提供了几种灵活高效的方法,用于将下标索引进数组。和C/C 、Python以及Fortran相同,Array Fire的下标也是从0开始的,即A(0)是第一个元素。索引功能可以通过以下方法的组合实现:

·整型标量

·seq 表示线性序列

·end 表示维度的最后一个元素

·span 代表整个维度

·row(i)或col(i)指定单行或单列

·rows(first,last)或cols(first,last)指定行或列的跨度。

在考虑性能时,数组索引很重要。因为内存的移动与重排操作代价昂贵,很容易就会让对下标的索引操作吃掉你从其他地方利用快速运算获得的加速。

4、图形

除了通用型计算之外,GPU也是最快最重要的图像处理器。ArrayFire比较独特的一点是,他的图形引擎是在考虑了GPGPU的基础计算的情况下从头开始设计的:所有的原语都是从卡上的内存里提取。因此,所有的计算与可视化处理都由GPU处理,省去了在主机CPU与设备之间内存转换的步骤。

gpu前沿技术(值得关注的GPU加速平台)(3)

除以上四点,ArrayFire还提供仅用于GPU的并行数据循环关键词:gfor;仅通过调用很少几条函数实现单GPU到多GPU互联的扩展配置;大量的功能测试证明了ArrayFire很快。它利用GPU的并行数据处理能力获得比其他已知的所有的库更强大的性能优势。

本文展示了Array Fire的简单的API,并描述了为何它能快速构造GPU运算应用程序。这篇文章描述的ArrayFire平台为那些正在寻找利用GPU计算能力的非计算机科学家提供了更加高效的选择。

本文仅概述了ArrayFire是如何支持GPU计算应用程序的开发,并将有关ArrayFire的关键功能进行了一个简单的介绍,作者在论文中针对论点有更详细说明和举证,阅读译者原文更深入地了解ArrayFire。

翻译:劳格科技 岳昕阳

译文链接:https://www.loogear.com/topic/2022/07/arrayfier-a-gpu-acceleration-platform
原文作者:James Malcolm等

原文链接:

https://www.researchgate.net/publication/258716823_ArrayFire_a_GPU_acceleration_platform

猜您喜欢: