GPU ACCELERATED LIBRARIES Linear Algebra NVIDIA FFT,BLAS, cuFFT CULA tools MAGMA 即g的 CuBLAS SPARSE,Matrix CUSPARSE a个w Numerical Math ArrayFire RAND,Statistics Data Struct.Al GPU AI Board Path Sort,Scan,Zero Sum Games Finding Visual Processing NVIDIA Sundog Image Video NPP Software 电子料发女学 Universityof Electrcience and TachnolopChina O
GPU ACCELERATED LIBRARIES Linear Algebra FFT, BLAS, SPARSE, Matrix Numerical & Math RAND, Statistics Data Struct. & AI Sort, Scan, Zero Sum Visual Processing Image & Video NVIDIA cuFFT, cuBLAS, cuSPARSE NVIDIA Math Lib NVIDIA cuRAND NVIDIA NPP NVIDIA Video Encode GPU AI – Board Games GPU AI – Path Finding
VECTOR ADDITION IN THRUST thrust:device_vector<float>deviceInputl(inputLength); thrust:device_vector<float>deviceInput2(inputLength); thrust:device_vector<float>deviceOutput(inputLength); thrust:copy(hostInputl.hostInput1 +inputLength, deviceInputl.beginO); thrust:copy(hostInput2,hostInput2 inputLength, deviceInput2.begin(); thrust:transform(deviceInputl.beginO,deviceInputl.end(), deviceInput2.begin() deviceOutput.begin(), thrust:plus<1oat>0)月 电子料战女学 University of Electreaie Science and Technolory of China O
VECTOR ADDITION IN THRUST thrust::device_vector<float> deviceInput1(inputLength); thrust::device_vector<float> deviceInput2(inputLength); thrust::device_vector<float> deviceOutput(inputLength); thrust::copy(hostInput1, hostInput1 + inputLength, deviceInput1.begin()); thrust::copy(hostInput2, hostInput2 + inputLength, deviceInput2.begin()); thrust::transform(deviceInput1.begin(), deviceInput1.end(), deviceInput2.begin(), deviceOutput.begin(), thrust::plus<float>());
OPENACC Compiler directives for C,C++,and FORTRAN #pragma acc parallel loop copyin(input1[0:inputLength],input2[0:inputLength]), copyout(output[0:inputLength]) for(i=0;i<inputLength;++i){ output[i]inputl[i]input2[i]; } 电子料发女学 Universityof Electri Science and Tachnolopf China O
OPENACC ▪ Compiler directives for C, C++, and FORTRAN #pragma acc parallel loop copyin(input1[0:inputLength],input2[0:inputLength]), copyout(output[0:inputLength]) for(i = 0; i < inputLength; ++i) { output[i] = input1[i] + input2[i]; }
GPU PROGRAMMING LANGUAGES Numerical analyticsD MATLAB,Mathematica,LabVIEW Fortran D CUDA Fortran C CUDA C C++D CUDA C++ Python D PyCUDA,Copperhead,Numba F#D Alea.cuBase 电子料做女学 niversitf Electr Science and TachnoloChina O
GPU PROGRAMMING LANGUAGES Fortran CUDA Fortran C CUDA C C++ CUDA C++ Python PyCUDA, Copperhead, Numba F# Alea.cuBase Numerical analytics MATLAB, Mathematica, LabVIEW