Numba works by generating optimized machine code using the LLVM compiler infrastructure at import time, runtime, or statically (using the included pycc tool). Numba supports compilation of Python to run on either CPU or GPU hardware, and is designed to integrate with the Python scientific software stack."
http://numba.pydata.org/
https://github.com/numba/numba
https://eng.climate.com/2015/04/09/numba-vs-cython-how-to-choose/
https://www.continuum.io/blog/developer/accelerating-python-libraries-numba-part-1
GPU Computing with Apache Spark and Python - http://on-demand.gputechconf.com/gtc/2016/presentation/s6413-stanley-seibert-apache-spark-python.pdf
NumbaPro: High-Level GPU Programming in Python for Rapid Development - http://on-demand.gputechconf.com/gtc/2014/presentations/S4413-numbrapro-gpu-programming-python-rapid-dev.pdf
CUDA Programming
Numba supports CUDA GPU programming by directly compiling a restricted subset of Python code into CUDA kernels and device functions following the CUDA execution model. Kernels written in Numba appear to have direct access to NumPy arrays. NumPy arrays are transferred between the CPU and the GPU automatically.
Numba supports CUDA-enabled GPU with compute capability 2.0 or above with an up-to-data Nvidia driver.
You will need the CUDA toolkit installed. If you are using Conda, just type:
Numba now contains preliminary support for CUDA programming. Numba will eventually provide multiple entry points for programmers of different levels of expertise on CUDA. For now, Numba provides a Python dialect for low-level programming on the CUDA hardware. It provides full control over the hardware for fine tunning the performance of CUDA kernels.
The CUDA JIT is a low-level entry point to the CUDA features in Numba. It translates Python functions into PTX code which execute on the CUDA hardware. The jit decorator is applied to Python functions written in our Python dialect for CUDA. Numba interacts with the CUDA Driver API to load the PTX onto the CUDA device and execute.
Most of the CUDA public API for CUDA features are exposed in the numba.cuda module:
CUDA kernels and device functions are compiled by decorating a Python function with the jit or autojit decorators.
http://numba.pydata.org/numba-doc/0.13/CUDAJit.html
http://numba.pydata.org/numba-doc/dev/cuda/kernels.html
https://github.com/ContinuumIO/numbapro-examples
https://github.com/barbagroup/numba_tutorial_scipy2016
https://people.duke.edu/~ccc14/sta-663/CUDAPython.html
http://www.sie.es/wp-content/uploads/2015/12/extending-python-hpc-parallel-programming.pdf
https://www.ibm.com/developerworks/community/blogs/jfp/entry/How_To_Compute_Mandelbrodt_Set_Quickly?lang=en
Using Numba to Program the GPU from Python - https://www.youtube.com/watch?v=06VErVj9MaQ
GPU Computing with Apache Spark and Python -
https://www.slideshare.net/continuumio/gpu-computing-with-apache-spark-and-python
Using Numba to Accelerate Python Execution- https://goparallel.sourceforge.net/using-numba-accelerate-python-execution/
NumbaPro: High-Level GPU Programming in Python for Rapid Development - http://on-demand.gputechconf.com/gtc/2014/presentations/S4413-numbrapro-gpu-programming-python-rapid-dev.pdf
CUDA Programming
Numba supports CUDA GPU programming by directly compiling a restricted subset of Python code into CUDA kernels and device functions following the CUDA execution model. Kernels written in Numba appear to have direct access to NumPy arrays. NumPy arrays are transferred between the CPU and the GPU automatically.
Numba supports CUDA-enabled GPU with compute capability 2.0 or above with an up-to-data Nvidia driver.
You will need the CUDA toolkit installed. If you are using Conda, just type:
$ conda install cudatoolkit
Numba now contains preliminary support for CUDA programming. Numba will eventually provide multiple entry points for programmers of different levels of expertise on CUDA. For now, Numba provides a Python dialect for low-level programming on the CUDA hardware. It provides full control over the hardware for fine tunning the performance of CUDA kernels.
The CUDA JIT is a low-level entry point to the CUDA features in Numba. It translates Python functions into PTX code which execute on the CUDA hardware. The jit decorator is applied to Python functions written in our Python dialect for CUDA. Numba interacts with the CUDA Driver API to load the PTX onto the CUDA device and execute.
Most of the CUDA public API for CUDA features are exposed in the numba.cuda module:
from numba import cuda
CUDA kernels and device functions are compiled by decorating a Python function with the jit or autojit decorators.
http://numba.pydata.org/numba-doc/0.13/CUDAJit.html
http://numba.pydata.org/numba-doc/dev/cuda/kernels.html
https://github.com/ContinuumIO/numbapro-examples
https://github.com/barbagroup/numba_tutorial_scipy2016
https://people.duke.edu/~ccc14/sta-663/CUDAPython.html
http://www.sie.es/wp-content/uploads/2015/12/extending-python-hpc-parallel-programming.pdf
https://www.ibm.com/developerworks/community/blogs/jfp/entry/How_To_Compute_Mandelbrodt_Set_Quickly?lang=en
Using Numba to Program the GPU from Python - https://www.youtube.com/watch?v=06VErVj9MaQ
GPU Computing with Apache Spark and Python -
https://www.slideshare.net/continuumio/gpu-computing-with-apache-spark-and-python
Using Numba to Accelerate Python Execution- https://goparallel.sourceforge.net/using-numba-accelerate-python-execution/
No comments:
Post a Comment