51 Problems with CUDA 7.5 on compute capabilites 2.0 hardware
52 Expand README to handle python installation and usage
The NS(Context*) and NS(Argument*) APIs have now completely separated header files for the C and C++ bindings (even though the C++ implementation is shared by both under the hood). This allows to compile with older CUDA releases which do not yet support C++ on the host and the device side and would otherwise run into trouble during compilation of the glue layer (i.e. Cuda 7.5.x, 8.x).
The pysixtracklib implementation is now (better) aware of optional backends/architectures like CUDA and tries to not run into problems if CUDA or OpenCL has been disabled on the C/C++ side. An attempt has been made to turn pysixtrack into an optional dependency as well as to gracefully degrade in case pycuda is not installed (for the examples/test that rely on its presence)
The upstream version of pysixtrack published on PyPI does not yet provide the required BeamMonitor element. A problem report has been submitted, for now it is advised to install pysixtrack from upstream/git rather than via pip rdemaria/pysixtrack#12
Components:
input_cl.hpp (DEPRECATED):
Acts as the master source for the 1.x version of the header.
The reason for doing it this way is to generate an appropriate set of functors with varying argument counts without assuming variadic template support in the header.
This version of the C++ bindings is deprecated and is no longer maintained; it is strongly recommended to switch to cl2.hpp if possible.
As with this merge, sixtracklib has transitioned to cl2.hpp and introduced a set of new settings and some abstraction in form of a header file
sixtracklib/opencl/cl.h allowing to configure the OpenCL host bindings library wide and centrally and to hide all the gritty details from users. If no suitable C++ headers are present, an best-effort attempt is made during configuration to download them and use this local copy instead of a system wide installation.
Some unit-tests failed on old compute capability 2.0 hardware like a Tesla C2075. This may or may not be related to the particular installation on which this was investigated. Cf. issue #51
Remaining Issues
51 Problems with CUDA 7.5 on compute capabilites 2.0 hardware
52 Expand README to handle python installation and usage
The NS(Context*) and NS(Argument*) APIs have now completely separated header files for the C and C++ bindings (even though the C++ implementation is shared by both under the hood). This allows to compile with older CUDA releases which do not yet support C++ on the host and the device side and would otherwise run into trouble during compilation of the glue layer (i.e. Cuda 7.5.x, 8.x).
The pysixtracklib implementation is now (better) aware of optional backends/architectures like CUDA and tries to not run into problems if CUDA or OpenCL has been disabled on the C/C++ side. An attempt has been made to turn pysixtrack into an optional dependency as well as to gracefully degrade in case pycuda is not installed (for the examples/test that rely on its presence)
The upstream version of pysixtrack published on PyPI does not yet provide the required BeamMonitor element. A problem report has been submitted, for now it is advised to install pysixtrack from upstream/git rather than via pip rdemaria/pysixtrack#12
There is a recommendation to move away from the CL/cl.hpp header towards CL/cl2.hpp + a set of macros even for OpenCL 1.x users. Cf. https://github.com/KhronosGroup/OpenCL-CLHPP/blob/master/README.txt , specifically
As with this merge, sixtracklib has transitioned to cl2.hpp and introduced a set of new settings and some abstraction in form of a header file
sixtracklib/opencl/cl.h
allowing to configure the OpenCL host bindings library wide and centrally and to hide all the gritty details from users. If no suitable C++ headers are present, an best-effort attempt is made during configuration to download them and use this local copy instead of a system wide installation.