|
1 |
| -Numba with PyDPPL |
2 |
| -================= |
| 1 | +***** |
| 2 | +Numba with patches for numba-dppy |
| 3 | +***** |
3 | 4 |
|
4 |
| -======== |
5 |
| -1. What? |
6 |
| -======== |
| 5 | +.. image:: https://badges.gitter.im/numba/numba.svg |
| 6 | + :target: https://gitter.im/numba/numba?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge |
| 7 | + :alt: Gitter |
7 | 8 |
|
8 |
| -DPPL proof-of-concept backend for NUMBA to support compilation for Intel CPU and |
9 |
| -GPU architectures. The present implementation of DPPL is based on OpenCL 2.1, |
10 |
| -but is likely to change in the future to rely on Sycl/DPC++ or Intel Level-0 |
11 |
| -driver API. |
| 9 | +.. image:: https://img.shields.io/badge/discuss-on%20discourse-blue |
| 10 | + :target: https://numba.discourse.group/ |
| 11 | + :alt: Discourse |
12 | 12 |
|
13 |
| -=============== |
14 |
| -2. Perquisites? |
15 |
| -=============== |
| 13 | +Patches for numba-dppy |
| 14 | +###################### |
16 | 15 |
|
17 |
| -- Bash : In the system and not as default Shell |
18 |
| -- Tar : To extract files |
19 |
| -- Git : To fetch required dependencies listed below |
20 |
| -- C/C++ compiler : To build the dependencies |
21 |
| -- Cmake : For managing build process of dependencies |
22 |
| -- Python3 : Version 3 is required |
23 |
| -- Conda or miniconda : Can be found at https://docs.conda.io/en/latest/miniconda.html |
24 |
| -- OpenCL 2.1 driver : DPPL currently works for both Intel GPUs and CPUs is a correct OpenCL driver version is found on the system. |
25 |
| -Note. To use the GPU users should be added to "video" user group on Linux systems. |
| 16 | +See https://github.com/IntelPython/numba-dppy. |
| 17 | +If `numba-dppy` package is installed this version of Numba provides |
| 18 | +additional features. |
| 19 | +Without `numba-dppy` package this version of Numba works like original Numba. |
26 | 20 |
|
| 21 | +A Just-In-Time Compiler for Numerical Functions in Python |
| 22 | +######################################################### |
27 | 23 |
|
28 |
| -The following requisites will need to be present in the system. Refer to next section for more details. |
29 |
| -******************************************************************************************************* |
| 24 | +Numba is an open source, NumPy-aware optimizing compiler for Python sponsored |
| 25 | +by Anaconda, Inc. It uses the LLVM compiler project to generate machine code |
| 26 | +from Python syntax. |
30 | 27 |
|
31 |
| -- NUMBA v0.51 : The DPPL backend has only been tested for NUMBA v0.51. |
32 |
| - The included install script downloads and applies |
33 |
| - the DPPy patch to the correct NUMBA version. |
| 28 | +Numba can compile a large subset of numerically-focused Python, including many |
| 29 | +NumPy functions. Additionally, Numba has support for automatic |
| 30 | +parallelization of loops, generation of GPU-accelerated code, and creation of |
| 31 | +ufuncs and C callbacks. |
34 | 32 |
|
35 |
| -- LLVM-SPIRV translator: Used for SPIRV generation from LLVM IR. |
| 33 | +For more information about Numba, see the Numba homepage: |
| 34 | +http://numba.pydata.org |
36 | 35 |
|
37 |
| -- LLVMDEV : To support LLVM IR generation. |
| 36 | +Supported Platforms |
| 37 | +=================== |
38 | 38 |
|
39 |
| -- Others : All existing dependencies for NUMBA, such as llvmlite, also apply to DPPL. |
| 39 | +* Operating systems and CPU: |
40 | 40 |
|
41 |
| -================== |
42 |
| -3. How to install? |
43 |
| -================== |
44 |
| -Install Pre-requisites |
45 |
| -********************** |
46 |
| -Make sure the following dependencies of NUMBA-PyDPPL are installed |
47 |
| -in your conda environemtn: |
| 41 | + - Linux: x86 (32-bit), x86_64, ppc64le (POWER8 and 9), ARMv7 (32-bit), |
| 42 | + ARMv8 (64-bit) |
| 43 | + - Windows: x86, x86_64 |
| 44 | + - macOS: x86_64 |
48 | 45 |
|
49 |
| -- llvmlite =0.33 |
50 |
| -- spirv-tools |
51 |
| -- llvm-spirv |
52 |
| -- llvmdev |
53 |
| -- dpCtl =0.3 |
| 46 | +* (Optional) Accelerators and GPUs: |
54 | 47 |
|
55 |
| -Make sure the dependencies are installed with consistent version of LLVM 10. |
| 48 | + * NVIDIA GPUs (Kepler architecture or later) via CUDA driver on Linux, Windows, |
| 49 | + macOS (< 10.14) |
| 50 | + * AMD GPUs via ROCm driver on Linux |
56 | 51 |
|
57 |
| -Install dpCtl backend |
58 |
| -********************* |
59 |
| -NUMBA-PyDPPL also depend on dpCtl backend. It can be found `here <https://github.com/IntelPython/dpCtl>`_. |
60 |
| -Please install dpCtl from package. |
| 52 | +Dependencies |
| 53 | +============ |
61 | 54 |
|
62 |
| -Install NUMBA-PyDPPL |
63 |
| -******************** |
64 |
| -After all the dependencies are installed please run ``build_for_develop.sh`` |
65 |
| -to get a local installation of NUMBA-PyDPPL. |
| 55 | +* Python versions: 3.6-3.8 |
| 56 | +* llvmlite 0.34.* |
| 57 | +* NumPy >=1.15 (can build with 1.11 for ABI compatibility) |
66 | 58 |
|
67 |
| -================ |
68 |
| -4. Running tests |
69 |
| -================ |
| 59 | +Optionally: |
70 | 60 |
|
71 |
| -To make sure the installation was successful, try running the examples and the |
72 |
| -test suite: |
| 61 | +* Scipy >=1.0.0 (for ``numpy.linalg`` support) |
73 | 62 |
|
74 |
| - $PATH_TO_NUMBA-PyDPPL/numba/dppl/examples/ |
75 | 63 |
|
76 |
| -To run the test suite execute the following: |
| 64 | +Installing |
| 65 | +========== |
77 | 66 |
|
78 |
| -.. code-block:: bash |
| 67 | +The easiest way to install Numba and get updates is by using the Anaconda |
| 68 | +Distribution: https://www.anaconda.com/download |
79 | 69 |
|
80 |
| - python -m numba.runtests numba.dppl.tests |
| 70 | +:: |
81 | 71 |
|
82 |
| -=========================== |
83 |
| -5. How Tos and Known Issues |
84 |
| -=========================== |
| 72 | + $ conda install numba |
85 | 73 |
|
86 |
| -Refer the HowTo.rst guide for an overview of the programming semantics, |
87 |
| -examples, supported functionalities, and known issues. |
| 74 | +For more options, see the Installation Guide: http://numba.pydata.org/numba-doc/latest/user/installing.html |
88 | 75 |
|
89 |
| -* Installing while Intel oneAPI Base Toolkit is activated have shown to throw error |
90 |
| -while installation of NUMBA-PyDPPL because of incompatible TBB interface, |
91 |
| -one way around that is to temporarily move env variable TBBROOT to something else* |
| 76 | +Documentation |
| 77 | +============= |
92 | 78 |
|
93 |
| -=================== |
94 |
| -6. Reporting issues |
95 |
| -=================== |
| 79 | +http://numba.pydata.org/numba-doc/latest/index.html |
| 80 | + |
| 81 | + |
| 82 | +Mailing Lists |
| 83 | +============= |
| 84 | + |
| 85 | +Join the Numba mailing list numba-users@continuum.io: |
| 86 | +https://groups.google.com/a/continuum.io/d/forum/numba-users |
| 87 | + |
| 88 | +Some old archives are at: http://librelist.com/browser/numba/ |
| 89 | + |
| 90 | + |
| 91 | +Continuous Integration |
| 92 | +====================== |
96 | 93 |
|
97 |
| -Please use https://github.com/IntelPython/numba/issues to report issues and bugs. |
| 94 | +.. image:: https://dev.azure.com/numba/numba/_apis/build/status/numba.numba?branchName=master |
| 95 | + :target: https://dev.azure.com/numba/numba/_build/latest?definitionId=1?branchName=master |
| 96 | + :alt: Azure Pipelines |
0 commit comments