pyopencl 2024.1__cp38-cp38-win_amd64.whl → 2024.2__cp38-cp38-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pyopencl might be problematic. Click here for more details.

Files changed (107) hide show
  1. pyopencl/__init__.py +82 -80
  2. pyopencl/_cl.cp38-win_amd64.pyd +0 -0
  3. pyopencl/algorithm.py +8 -10
  4. pyopencl/array.py +16 -12
  5. pyopencl/bitonic_sort.py +5 -4
  6. pyopencl/cache.py +22 -22
  7. pyopencl/capture_call.py +4 -3
  8. pyopencl/characterize/__init__.py +4 -2
  9. pyopencl/characterize/performance.py +2 -1
  10. pyopencl/clmath.py +2 -1
  11. pyopencl/clrandom.py +5 -369
  12. pyopencl/cltypes.py +4 -1
  13. pyopencl/compyte/dtypes.py +1 -1
  14. pyopencl/compyte/ndarray/gen_elemwise.py +6 -5
  15. pyopencl/compyte/ndarray/gen_reduction.py +6 -6
  16. pyopencl/compyte/ndarray/setup_opencl.py +3 -2
  17. pyopencl/compyte/ndarray/test_gpu_elemwise.py +5 -4
  18. pyopencl/compyte/ndarray/test_gpu_ndarray.py +0 -1
  19. pyopencl/elementwise.py +4 -6
  20. pyopencl/invoker.py +15 -9
  21. pyopencl/ipython_ext.py +1 -1
  22. pyopencl/reduction.py +5 -5
  23. pyopencl/scan.py +17 -21
  24. pyopencl/tools.py +13 -16
  25. pyopencl/version.py +1 -1
  26. pyopencl-2024.2.data/data/CITATION.cff +74 -0
  27. {pyopencl-2024.1.dist-info → pyopencl-2024.2.data/data}/LICENSE +0 -23
  28. pyopencl-2024.2.data/data/Makefile.in +21 -0
  29. pyopencl-2024.2.data/data/README.rst +70 -0
  30. pyopencl-2024.2.data/data/README_SETUP.txt +34 -0
  31. pyopencl-2024.2.data/data/aksetup_helper.py +1013 -0
  32. pyopencl-2024.2.data/data/configure.py +6 -0
  33. pyopencl-2024.2.data/data/contrib/cldis.py +91 -0
  34. pyopencl-2024.2.data/data/contrib/fortran-to-opencl/README +29 -0
  35. pyopencl-2024.2.data/data/contrib/fortran-to-opencl/translate.py +1441 -0
  36. pyopencl-2024.2.data/data/contrib/pyopencl.vim +84 -0
  37. pyopencl-2024.2.data/data/doc/Makefile +23 -0
  38. pyopencl-2024.2.data/data/doc/algorithm.rst +214 -0
  39. pyopencl-2024.2.data/data/doc/array.rst +305 -0
  40. pyopencl-2024.2.data/data/doc/conf.py +26 -0
  41. pyopencl-2024.2.data/data/doc/howto.rst +105 -0
  42. pyopencl-2024.2.data/data/doc/index.rst +137 -0
  43. pyopencl-2024.2.data/data/doc/make_constants.py +561 -0
  44. pyopencl-2024.2.data/data/doc/misc.rst +885 -0
  45. pyopencl-2024.2.data/data/doc/runtime.rst +51 -0
  46. pyopencl-2024.2.data/data/doc/runtime_const.rst +30 -0
  47. pyopencl-2024.2.data/data/doc/runtime_gl.rst +78 -0
  48. pyopencl-2024.2.data/data/doc/runtime_memory.rst +527 -0
  49. pyopencl-2024.2.data/data/doc/runtime_platform.rst +184 -0
  50. pyopencl-2024.2.data/data/doc/runtime_program.rst +364 -0
  51. pyopencl-2024.2.data/data/doc/runtime_queue.rst +182 -0
  52. pyopencl-2024.2.data/data/doc/subst.rst +36 -0
  53. pyopencl-2024.2.data/data/doc/tools.rst +4 -0
  54. pyopencl-2024.2.data/data/doc/types.rst +42 -0
  55. pyopencl-2024.2.data/data/examples/black-hole-accretion.py +2227 -0
  56. pyopencl-2024.2.data/data/examples/demo-struct-reduce.py +75 -0
  57. pyopencl-2024.2.data/data/examples/demo.py +39 -0
  58. pyopencl-2024.2.data/data/examples/demo_array.py +32 -0
  59. pyopencl-2024.2.data/data/examples/demo_array_svm.py +37 -0
  60. pyopencl-2024.2.data/data/examples/demo_elementwise.py +34 -0
  61. pyopencl-2024.2.data/data/examples/demo_elementwise_complex.py +53 -0
  62. pyopencl-2024.2.data/data/examples/demo_mandelbrot.py +183 -0
  63. pyopencl-2024.2.data/data/examples/demo_meta_codepy.py +56 -0
  64. pyopencl-2024.2.data/data/examples/demo_meta_template.py +55 -0
  65. pyopencl-2024.2.data/data/examples/dump-performance.py +38 -0
  66. pyopencl-2024.2.data/data/examples/dump-properties.py +86 -0
  67. pyopencl-2024.2.data/data/examples/gl_interop_demo.py +84 -0
  68. pyopencl-2024.2.data/data/examples/gl_particle_animation.py +218 -0
  69. pyopencl-2024.2.data/data/examples/ipython-demo.ipynb +203 -0
  70. pyopencl-2024.2.data/data/examples/median-filter.py +99 -0
  71. pyopencl-2024.2.data/data/examples/n-body.py +1070 -0
  72. pyopencl-2024.2.data/data/examples/narray.py +37 -0
  73. pyopencl-2024.2.data/data/examples/noisyImage.jpg +0 -0
  74. pyopencl-2024.2.data/data/examples/pi-monte-carlo.py +1166 -0
  75. pyopencl-2024.2.data/data/examples/svm.py +82 -0
  76. pyopencl-2024.2.data/data/examples/transpose.py +229 -0
  77. pyopencl-2024.2.data/data/pytest.ini +3 -0
  78. pyopencl-2024.2.data/data/src/bitlog.cpp +51 -0
  79. pyopencl-2024.2.data/data/src/bitlog.hpp +83 -0
  80. pyopencl-2024.2.data/data/src/clinfo_ext.h +134 -0
  81. pyopencl-2024.2.data/data/src/mempool.hpp +444 -0
  82. pyopencl-2024.2.data/data/src/pyopencl_ext.h +77 -0
  83. pyopencl-2024.2.data/data/src/tools.hpp +90 -0
  84. pyopencl-2024.2.data/data/src/wrap_cl.cpp +61 -0
  85. pyopencl-2024.2.data/data/src/wrap_cl.hpp +5853 -0
  86. pyopencl-2024.2.data/data/src/wrap_cl_part_1.cpp +369 -0
  87. pyopencl-2024.2.data/data/src/wrap_cl_part_2.cpp +702 -0
  88. pyopencl-2024.2.data/data/src/wrap_constants.cpp +1274 -0
  89. pyopencl-2024.2.data/data/src/wrap_helpers.hpp +213 -0
  90. pyopencl-2024.2.data/data/src/wrap_mempool.cpp +731 -0
  91. pyopencl-2024.2.data/data/test/add-vectors-32.spv +0 -0
  92. pyopencl-2024.2.data/data/test/add-vectors-64.spv +0 -0
  93. pyopencl-2024.2.data/data/test/empty-header.h +1 -0
  94. pyopencl-2024.2.data/data/test/test_algorithm.py +1180 -0
  95. pyopencl-2024.2.data/data/test/test_array.py +2392 -0
  96. pyopencl-2024.2.data/data/test/test_arrays_in_structs.py +100 -0
  97. pyopencl-2024.2.data/data/test/test_clmath.py +529 -0
  98. pyopencl-2024.2.data/data/test/test_clrandom.py +75 -0
  99. pyopencl-2024.2.data/data/test/test_enqueue_copy.py +271 -0
  100. pyopencl-2024.2.data/data/test/test_wrapper.py +1554 -0
  101. pyopencl-2024.2.dist-info/LICENSE +282 -0
  102. {pyopencl-2024.1.dist-info → pyopencl-2024.2.dist-info}/METADATA +12 -12
  103. pyopencl-2024.2.dist-info/RECORD +122 -0
  104. {pyopencl-2024.1.dist-info → pyopencl-2024.2.dist-info}/WHEEL +1 -1
  105. pyopencl/cl/pyopencl-ranluxcl.cl +0 -957
  106. pyopencl-2024.1.dist-info/RECORD +0 -48
  107. {pyopencl-2024.1.dist-info → pyopencl-2024.2.dist-info}/top_level.txt +0 -0
pyopencl/scan.py CHANGED
@@ -22,33 +22,24 @@ limitations under the License.
22
22
  Derived from code within the Thrust project, https://github.com/NVIDIA/thrust
23
23
  """
24
24
 
25
+ import logging
25
26
  from abc import ABC, abstractmethod
26
27
  from dataclasses import dataclass
27
28
  from typing import Any, Dict, List, Optional, Set, Tuple, Union
28
29
 
29
30
  import numpy as np
31
+ from pytools.persistent_dict import WriteOncePersistentDict
30
32
 
31
33
  import pyopencl as cl
32
- import pyopencl.array
33
- from pyopencl.tools import (
34
- KernelTemplateBase,
35
- DtypedArgument,
36
- bitlog2,
37
- context_dependent_memoize,
38
- dtype_to_ctype,
39
- get_arg_list_scalar_arg_dtypes,
40
- get_arg_offset_adjuster_code,
41
- _process_code_for_macro,
42
- _NumpyTypesKeyBuilder,
43
- )
44
-
45
34
  import pyopencl._mymako as mako
35
+ import pyopencl.array
46
36
  from pyopencl._cluda import CLUDA_PREAMBLE
47
-
48
- from pytools.persistent_dict import WriteOncePersistentDict
37
+ from pyopencl.tools import (
38
+ DtypedArgument, KernelTemplateBase, _NumpyTypesKeyBuilder,
39
+ _process_code_for_macro, bitlog2, context_dependent_memoize, dtype_to_ctype,
40
+ get_arg_list_scalar_arg_dtypes, get_arg_offset_adjuster_code)
49
41
 
50
42
 
51
- import logging
52
43
  logger = logging.getLogger(__name__)
53
44
 
54
45
 
@@ -1141,10 +1132,14 @@ class GenericScanKernelBase(ABC):
1141
1132
  pass
1142
1133
 
1143
1134
 
1144
- generic_scan_kernel_cache = WriteOncePersistentDict(
1145
- "pyopencl-generated-scan-kernel-cache-v1",
1146
- key_builder=_NumpyTypesKeyBuilder(),
1147
- in_mem_cache_size=0)
1135
+ if not cl._PYOPENCL_NO_CACHE:
1136
+ generic_scan_kernel_cache: WriteOncePersistentDict[Any,
1137
+ Tuple[_GeneratedScanKernelInfo, _GeneratedScanKernelInfo,
1138
+ _GeneratedFinalUpdateKernelInfo]] = \
1139
+ WriteOncePersistentDict(
1140
+ "pyopencl-generated-scan-kernel-cache-v1",
1141
+ key_builder=_NumpyTypesKeyBuilder(),
1142
+ in_mem_cache_size=0)
1148
1143
 
1149
1144
 
1150
1145
  class GenericScanKernel(GenericScanKernelBase):
@@ -1199,7 +1194,8 @@ class GenericScanKernel(GenericScanKernelBase):
1199
1194
  self.second_level_scan_gen_info,
1200
1195
  self.final_update_gen_info)
1201
1196
 
1202
- generic_scan_kernel_cache.store_if_not_present(cache_key, result)
1197
+ if not cl._PYOPENCL_NO_CACHE:
1198
+ generic_scan_kernel_cache.store_if_not_present(cache_key, result)
1203
1199
 
1204
1200
  # Build the kernels.
1205
1201
  self.first_level_scan_info = self.first_level_scan_gen_info.build(
pyopencl/tools.py CHANGED
@@ -126,27 +126,27 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
126
126
  OTHER DEALINGS IN THE SOFTWARE.
127
127
  """
128
128
 
129
+ import re
129
130
  from abc import ABC, abstractmethod
130
131
  from sys import intern
131
132
  from typing import Any, List, Optional, Union
132
133
 
133
- # Do not add a pyopencl import here: This will add an import cycle.
134
-
135
134
  import numpy as np
136
135
  from pytools import memoize, memoize_method
137
- from pyopencl._cl import bitlog2, get_cl_header_version # noqa: F401
138
136
  from pytools.persistent_dict import KeyBuilder as KeyBuilderBase
139
137
 
140
- import re
141
-
138
+ from pyopencl._cl import bitlog2, get_cl_header_version # noqa: F401
139
+ from pyopencl.compyte.dtypes import TypeNameNotKnown # noqa: F401
142
140
  from pyopencl.compyte.dtypes import ( # noqa: F401
143
- get_or_register_dtype, TypeNameNotKnown,
144
- register_dtype, dtype_to_ctype)
141
+ dtype_to_ctype, get_or_register_dtype, register_dtype)
142
+
143
+
144
+ # Do not add a pyopencl import here: This will add an import cycle.
145
145
 
146
146
 
147
147
  def _register_types():
148
148
  from pyopencl.compyte.dtypes import (
149
- TYPE_REGISTRY, fill_registry_with_opencl_c_types)
149
+ TYPE_REGISTRY, fill_registry_with_opencl_c_types)
150
150
 
151
151
  fill_registry_with_opencl_c_types(TYPE_REGISTRY)
152
152
 
@@ -160,17 +160,11 @@ _register_types()
160
160
  # {{{ imported names
161
161
 
162
162
  from pyopencl._cl import ( # noqa: F401
163
- PooledBuffer, AllocatorBase, DeferredAllocator,
164
- ImmediateAllocator, MemoryPool,
165
- )
163
+ AllocatorBase, DeferredAllocator, ImmediateAllocator, MemoryPool, PooledBuffer)
166
164
 
167
165
 
168
166
  if get_cl_header_version() >= (2, 0):
169
- from pyopencl._cl import ( # noqa: F401
170
- SVMPool,
171
- PooledSVM,
172
- SVMAllocator,
173
- )
167
+ from pyopencl._cl import PooledSVM, SVMAllocator, SVMPool # noqa: F401
174
168
 
175
169
  # }}}
176
170
 
@@ -518,6 +512,7 @@ def first_arg_dependent_memoize_nested(nested_func):
518
512
  nested_func.__code__.co_firstlineno))
519
513
 
520
514
  from inspect import currentframe
515
+
521
516
  # prevent ref cycle
522
517
  try:
523
518
  caller_frame = currentframe().f_back
@@ -560,6 +555,8 @@ def clear_first_arg_caches():
560
555
 
561
556
 
562
557
  import atexit
558
+
559
+
563
560
  atexit.register(clear_first_arg_caches)
564
561
 
565
562
  # }}}
pyopencl/version.py CHANGED
@@ -1,3 +1,3 @@
1
- VERSION = (2024, 1)
1
+ VERSION = (2024, 2)
2
2
  VERSION_STATUS = ""
3
3
  VERSION_TEXT = ".".join(str(x) for x in VERSION) + VERSION_STATUS
@@ -0,0 +1,74 @@
1
+ cff-version: 1.2.0
2
+ message: "If you use this software, please cite it as below."
3
+ authors:
4
+ - family-names: "Kloeckner"
5
+ given-names: "Andreas"
6
+ orcid: "https://orcid.org/0000-0003-1228-519X"
7
+ - family-names: "Yu"
8
+ given-names: "Yichao"
9
+ - family-names: "Wala"
10
+ given-names: "Matt"
11
+ - family-names: "Fernando"
12
+ given-names: "Isuru"
13
+ - family-names: "Bencun"
14
+ given-names: "Marko"
15
+ - family-names: "Kulkarni"
16
+ given-names: "Kaushik"
17
+ - family-names: "Diener"
18
+ given-names: "Matthias"
19
+ - family-names: "Gao"
20
+ given-names: "Hao"
21
+ - family-names: "Fikl"
22
+ given-names: "Alex"
23
+ - family-names: "Weiner"
24
+ given-names: "Zach"
25
+ - family-names: "Weigert"
26
+ given-names: "Martin"
27
+ - family-names: "Palmer"
28
+ given-names: "Rebecca"
29
+ - family-names: "Latham"
30
+ given-names: "Shane"
31
+ - family-names: "Magno"
32
+ given-names: "Gonçalo"
33
+ - family-names: "Fuller"
34
+ given-names: "Henry"
35
+ - family-names: "Mackenzie"
36
+ given-names: "Jonathan"
37
+ - family-names: "Niarchos"
38
+ given-names: "Sotiris"
39
+ - family-names: "Gill"
40
+ given-names: "Shahzaib"
41
+ - family-names: "Gohlke"
42
+ given-names: "Christoph"
43
+ - family-names: "Bhosale"
44
+ given-names: "Aditya"
45
+ - family-names: "Rothberg"
46
+ given-names: "Alex"
47
+ - family-names: "Ey"
48
+ given-names: "Emanuel"
49
+ - family-names: "Rapp"
50
+ given-names: "Holger"
51
+ - family-names: "van der Walt"
52
+ given-names: "Stefan"
53
+ # Removed pending resolution of https://github.com/zenodo/zenodo/issues/2343
54
+ # - alias: "gw0"
55
+ - family-names: "Thalhammer"
56
+ given-names: "Gregor"
57
+ - family-names: "Kieffer"
58
+ given-names: "Jerome"
59
+ - family-names: "Poliarnyi"
60
+ given-names: "Nikolai"
61
+ - family-names: "Bollinger"
62
+ given-names: "Drew"
63
+ - family-names: "Nitz"
64
+ given-names: "Alex"
65
+ - family-names: "Bokota"
66
+ given-names: "Grzegorz"
67
+ orcid: 'https://orcid.org/0000-0002-5470-1676'
68
+
69
+ title: "PyOpenCL"
70
+ version: 2022.1.3
71
+ doi: 10.5281/zenodo.6533956
72
+ date-released: 2022-03-10
73
+ url: "https://github.com/inducer/pyopencl"
74
+ license: MIT
@@ -78,29 +78,6 @@ PyOpenCL includes parts of the Random123 suite of random number generators:
78
78
  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
79
79
  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
80
80
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
81
-
82
- PyOpenCL includes the RANLUXCL random number generator:
83
-
84
- Copyright (c) 2011 Ivar Ursin Nikolaisen
85
-
86
- Permission is hereby granted, free of charge, to any person obtaining a copy of this
87
- software and associated documentation files (the "Software"), to deal in the Software
88
- without restriction, including without limitation the rights to use, copy, modify,
89
- merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
90
- permit persons to whom the Software is furnished to do so, subject to the following
91
- conditions:
92
-
93
- The above copyright notice and this permission notice shall be included in all copies
94
- or substantial portions of the Software.
95
-
96
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
97
- INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
98
- PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
99
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
100
- CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
101
- OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
102
-
103
-
104
81
  PyOpenCL wheel includes Khronos Group OpenCL-ICD-Loader which is licensed as below:
105
82
  Apache License
106
83
  Version 2.0, January 2004
@@ -0,0 +1,21 @@
1
+ .PHONY : all install clean tags dist userdoc devdoc
2
+
3
+ all: tags
4
+ ${PYTHON_EXE} setup.py build
5
+
6
+ dist:
7
+ ${PYTHON_EXE} setup.py sdist
8
+
9
+ install: tags
10
+ ${PYTHON_EXE} setup.py install
11
+
12
+ clean:
13
+ rm -Rf build
14
+ rm -f tags
15
+
16
+ tags:
17
+ ctags -R src || true
18
+
19
+ tests:
20
+ echo "running tests"
21
+ find ./test -type f -name "*.py" -exec python {} \;
@@ -0,0 +1,70 @@
1
+ PyOpenCL: Pythonic Access to OpenCL, with Arrays and Algorithms
2
+ ===============================================================
3
+
4
+ .. |badge-gitlab-ci| image:: https://gitlab.tiker.net/inducer/pyopencl/badges/main/pipeline.svg
5
+ :alt: Gitlab Build Status
6
+ :target: https://gitlab.tiker.net/inducer/pyopencl/commits/main
7
+ .. |badge-github-ci| image:: https://github.com/inducer/pyopencl/workflows/CI/badge.svg?branch=main&event=push
8
+ :alt: Github Build Status
9
+ :target: https://github.com/inducer/pyopencl/actions?query=branch%3Amain+workflow%3ACI+event%3Apush
10
+ .. |badge-pypi| image:: https://badge.fury.io/py/pyopencl.svg
11
+ :alt: Python Package Index Release Page
12
+ :target: https://pypi.org/project/pyopencl/
13
+ .. |badge-zenodo| image:: https://zenodo.org/badge/1575307.svg
14
+ :alt: Zenodo DOI for latest release
15
+ :target: https://zenodo.org/badge/latestdoi/1575307
16
+
17
+ |badge-gitlab-ci| |badge-github-ci| |badge-pypi| |badge-zenodo|
18
+
19
+ PyOpenCL lets you access GPUs and other massively parallel compute
20
+ devices from Python. It tries to offer computing goodness in the
21
+ spirit of its sister project `PyCUDA <https://mathema.tician.de/software/pycuda>`__:
22
+
23
+ * Object cleanup tied to lifetime of objects. This idiom, often
24
+ called `RAII <https://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization>`__
25
+ in C++, makes it much easier to write correct, leak- and
26
+ crash-free code.
27
+
28
+ * Completeness. PyOpenCL puts the full power of OpenCL's API at
29
+ your disposal, if you wish. Every obscure ``get_info()`` query and
30
+ all CL calls are accessible.
31
+
32
+ * Automatic Error Checking. All CL errors are automatically
33
+ translated into Python exceptions.
34
+
35
+ * Speed. PyOpenCL's base layer is written in C++, so all the niceties
36
+ above are virtually free.
37
+
38
+ * Helpful and complete `Documentation <https://documen.tician.de/pyopencl>`__
39
+ as well as a `Wiki <https://wiki.tiker.net/PyOpenCL>`__.
40
+
41
+ * Liberal license. PyOpenCL is open-source under the
42
+ `MIT license <https://en.wikipedia.org/wiki/MIT_License>`__
43
+ and free for commercial, academic, and private use.
44
+
45
+ * Broad support. PyOpenCL was tested and works with Apple's, AMD's, and Nvidia's
46
+ CL implementations.
47
+
48
+ Simple 4-step `install instructions <https://documen.tician.de/pyopencl/misc.html#installation>`__
49
+ using Conda on Linux and macOS (that also install a working OpenCL implementation!)
50
+ can be found in the `documentation <https://documen.tician.de/pyopencl/>`__.
51
+
52
+ What you'll need if you do *not* want to use the convenient instructions above and
53
+ instead build from source:
54
+
55
+ * g++/clang new enough to be compatible with nanobind (specifically, full support of C++17 is needed)
56
+ * `numpy <https://numpy.org>`__, and
57
+ * an OpenCL implementation. (See this `howto <https://wiki.tiker.net/OpenCLHowTo>`__
58
+ for how to get one.)
59
+
60
+ Links
61
+ -----
62
+
63
+ * `Documentation <https://documen.tician.de/pyopencl>`__
64
+ (read how things work)
65
+ * `Python package index <https://pypi.python.org/pypi/pyopencl>`__
66
+ (download releases, including binary wheels for Linux, macOS, Windows)
67
+ * `Conda Forge <https://anaconda.org/conda-forge/pyopencl>`__
68
+ (download binary packages for Linux, macOS, Windows)
69
+ * `Github <https://github.com/inducer/pyopencl>`__
70
+ (get latest source code, file bugs)
@@ -0,0 +1,34 @@
1
+ Hi, welcome.
2
+
3
+ This Python package uses aksetup for installation, which means that
4
+ installation should be easy and quick.
5
+
6
+ If you don't want to continue reading, just try the regular
7
+
8
+ ./configure.py --help
9
+ ./configure.py --some-options
10
+ make
11
+ sudo make install
12
+
13
+ That should do the trick. (By the way: If a config option says "several ok",
14
+ then you may specify several values, separated by commas.)
15
+
16
+ aksetup also supports regular distutils installation, without using
17
+ configure:
18
+
19
+ python setup.py build
20
+ sudo python setup.py install
21
+
22
+ In this case, configuration is obtained from files in this order:
23
+
24
+ /etc/aksetup-defaults.py
25
+ $HOME/.aksetup-defaults.py
26
+ $PACKAGEDIR/siteconf.py
27
+
28
+ Once you've run configure, you can copy options from your siteconf.py file to
29
+ one of these files, and you won't ever have to configure them again manually.
30
+ In fact, you may pass the options "--update-user" and "--update-global" to
31
+ configure, and it will automatically update these files for you.
32
+
33
+ This is particularly handy if you want to perform an unattended or automatic
34
+ installation via easy_install.