ArrayFire:高性能并行计算软件库 ArrayFire: a high performance software library for parallel computing
来源:互联网 发布:js怎么定义数组的长度 编辑:程序博客网 时间:2024/05/22 05:33
About ArrayFire
ArrayFire is a high performance software library for parallel computing with an easy-to-use API. Its array based function set makes parallel programming more accessible.
Installing ArrayFire
You can install ArrayFire using either a binary installer for Windows, OSX, or Linux or download it from source:
- Binary installers for Windows, OSX, and Linux
- Build from source
Easy to use
The array object is beautifully simple.
Array-based notation effectively expresses computational algorithms in readable math-resembling notation. You do not need expertise in parallel programming to use ArrayFire.
A few lines of ArrayFire code accomplishes what can take 100s of complicated lines in CUDA or OpenCL kernels.
ArrayFire is extensive!
Support for multiple domains
ArrayFire contains hundreds of functions across various domains including:
- Vector Algorithms
- Image Processing
- Computer Vision
- Signal Processing
- Linear Algebra
- Statistics
- and more.
Each function is hand-tuned by ArrayFire developers with all possible low-level optimizations.
Support for various data types and sizes
ArrayFire operates on common data shapes and sizes, including vectors, matrices, volumes, and
It supports common data types, including single and double precision floating point values, complex numbers, booleans, and 32-bit signed and unsigned integers.
Extending ArrayFire
ArrayFire can be used as a stand-alone application or integrated with existing CUDA or OpenCL code. All ArrayFire arrays
can be interchanged with other CUDA or OpenCL data structures.
Code once, run anywhere!
With support for x86, ARM, CUDA, and OpenCL devices, ArrayFire supports for a comprehensive list of devices.
Each ArrayFire installation comes with:
- a CUDA version (named 'libafcuda') for NVIDIA GPUs,
- an OpenCL version (named 'libafopencl') for OpenCL devices
- a CPU version (named 'libafcpu') to fall back to when CUDA or OpenCL devices are not available.
ArrayFire is highly efficient
Vectorized and Batched Operations
ArrayFire supports batched operations on N-dimensional arrays. Batch operations in ArrayFire are run in parallel ensuring an optimal usage of your CUDA or OpenCL device.
You can get the best performance out of ArrayFire using vectorization techniques.
ArrayFire can also execute loop iterations in parallel with the gfor function.
Just in Time compilation
ArrayFire performs run-time analysis of your code to increase arithmetic intensity and memory throughput, while avoiding unnecessary temporary allocations. It has an awesome internal JIT compiler to make optimizations for you.
Read more about how ArrayFire JIT can improve the performance in your application.
Simple Example
Here's a live example to let you see ArrayFire code. You create arrays which reside on CUDA or OpenCL devices. Then you can use ArrayFire functions on those arrays.
Product Support
Free Community Options
- ArrayFire mailing list (recommended)
- StackOverflow
Premium Support
- Phone Support - available for purchase (request a quote)
Contact Us
- If you need to contact us, visit our contact us page.
- Engineering: technical@arrayfire.com
- Sales: sales@arrayfire.com
Citations and Acknowledgements
If you redistribute ArrayFire, please follow the terms established in the license. If you wish to cite ArrayFire in an academic publication, please use the following reference:
Formatted:
Yalamanchili, P., Arshad, U., Mohammed, Z., Garigipati, P., Entschev, P.,Kloppenborg, B., Malcolm, James and Melonakos, J. (2015).ArrayFire - A high performance software library for parallel computing with aneasy-to-use API. Atlanta: AccelerEyes. Retrieved from https://github.com/arrayfire/arrayfire
BibTeX:
@misc{Yalamanchili2015,abstract = {ArrayFire is a high performance software library for parallel computing with an easy-to-use API. Its array based function set makes parallel programming simple. ArrayFire's multiple backends (CUDA, OpenCL and native CPU) make it platform independent and highly portable. A few lines of code in ArrayFire can replace dozens of lines of parallel computing code, saving you valuable time and lowering development costs.},address = {Atlanta},author = {Yalamanchili, Pavan and Arshad, Umar and Mohammed, Zakiuddin and Garigipati, Pradeep and Entschev, Peter and Kloppenborg, Brian and Malcolm, James and Melonakos, John},publisher = {AccelerEyes},title = {{ArrayFire - A high performance software library for parallel computing with an easy-to-use API}},url = {https://github.com/arrayfire/arrayfire},year = {2015}}
ArrayFire development is funded by ArrayFire LLC and several third parties, please see the list of acknowledgements.
from: http://arrayfire.org/docs/
- ArrayFire:高性能并行计算软件库 ArrayFire: a high performance software library for parallel computing
- 高性能计算(High Performance Computing)
- 并行计算(Parallel Computing)初步认识
- 并行计算概述 (Introduction to Parallel Computing)
- Towards a High-Level Trusted Computing API for Android Software Stack
- High Performance Computing Training
- High Performance Computing Training
- 构建局域网下并行计算(parallel computing)环境
- 构建局域网下并行计算(parallel computing)环境
- 高性能动画(high-performance-animations)
- 并行计算—parallel,for联合使用
- matlab并行运算(parallel computing)
- High Performance Canvas Game for Android(高性能Android Canvas游戏开发)
- A C++ Demo Code for parallel Computing with openMP
- arrayfire的工程创建例子
- C#并行运算 Parallel.Invoke、Parallel.For、Parallel.Foreach性能测试及示例
- HPCC(High Performance Computing Challenge)的输出
- 并行计算介绍(Introduction to Parallel Computing ) ——我主张阅读英文原著
- Piggy-Bank—hdu1114完全背包
- KNN算法的Python实现
- Dialog的简单使用
- iOS中的运动事件
- Does your handler implement a supported interface like Controller?] with root cause
- ArrayFire:高性能并行计算软件库 ArrayFire: a high performance software library for parallel computing
- 常用网站
- vertica-console
- Python学习 (六 面向对象高级编程)
- Android 序列化
- 折叠
- Android SQLite数据库(一 )
- JSP脚本 9大内置对象
- hdu 3400(三分)