2019-05-30 Version 10.1.0 - Update for CUDA 10.1 2018-11-27 Version 10.0.0 - Update for CUDA 10.0 2018-06-24 Version 0.9.2 - Update for CUDA 9.2 2018-04-06 Version 0.9.0d - Update for CUDA 9.0.176 2016-11-10 Version 0.8.0 - Update for CUDA 8.0.44 (final) 2016-09-15 Version 0.8.0RC - Update for CUDA 8.0.27 (RC) - Update of JCudnn for cuDNN 5.1 and CUDA 8.0.27 (RC) - Updated native library handling as of https://github.com/jcuda/jcuda-main/issues/8 2016-02-22 Version 0.7.5b - A bugfix release, mainly for JCusolver 2015-09-17 Version 0.7.5 - Update for CUDA 7.5 2015-05-11 - Added a first version of support for Unified Memory - Bugfix: Some JCublas2 method bindings had been missing - Bugfix: Some JCusparse method bindings had been missing 2015-04-10 - Update for CUDA 7.0 - Added JCusolver library for CUSOLVER 2014-08-26 - Update for CUDA 6.5 - Several bugfixes: - Fixed missing field initialization for cudaTextureDesc - Fixed texture object handling bug in cudaCreateTextureObject - Bugfix: cudaMemcpy3D could not handle host pointers - Some methods in JCusparse expected arrays but should have used pointers 2014-05-20 - Update for CUDA 6.0 2014-04-18 - Update for CUDA 6.0 RC - Minor refactoring of pointer handling, aiming at minimizing the number of function calls in critical sections - The original CUSPARSE API seems to be deprecated as of CUDA 6.0. The functionality that originally was offered via the "cusparse_v2.h" header is now available via the "cusparse.h" header. Consequently, the JCusparse class now contains the functionality that was originally offered by the JCusparse2 class. 2013-09-13 - Update for CUDA 5.5 - The bug related to the kernel parameters pointer was not fixed properly in version 0.5.0b. It should be fixed now, and the test coverage for this case has been increased. - When there is an error while loading the native library, the error message is no longer printed to the standard error output. Instead, the error message is now part of the UnsatisfiedLinkError that is thrown. 2013-06-02 - Bugfix: The kernel parameters pointer for the cuLaunchKernel call could only be used once. - The functions cuFuncSetSharedMemConfig and cuCtxSetSharedMemConfig had not been available in older CUDA versions and had thus been omitted. In CUDA 5.0, they are supported and have been added accordingly 2013-03-20 - The conversions between streams, events and graphics resources of the Driver and Runtime API that rely on casts in the C CUDA API are now possible via constructors of the respective classes that take the appropriate argument from the other API - The JCufft method for double-precision real-to-complex transforms was called JCufft#cufftExecR2C, although its name should have been JCufft#cufftExecD2Z. The method is now offered with the proper name, and the wrong method name is deprecated and will be removed in a future release 2012-11-15 - Update to CUDA 5.0 (final) - The methods in the Driver and Runtime API for setting stream Callbacks are NOT supported yet, but will probably be supported in future versions 2012-10-11 - Update to CUDA 5.0RC - The methods of the Runtime API that allowed obtaining symbols via their name (as a String) have been removed in CUDA 5.0. In JCuda, they now throw an UnsupportedOperationException, but they could not be used sensibly from Java anyhow, so this should not affect existing code - The methods in the Driver and Runtime API for setting stream Callbacks are NOT supported yet, but will probably be supported in future versions - The convenience methods of JCufft that accept arrays did not properly detect in-place transforms for the C2R and R2C cases. This has been fixed. - Updated string representation of cufftCompatibility to support OR'ed values - Added constructors to CUarray and cudaArray that accept a cudaArray and a CUarray, respectively, to support conversions between the two 2012-07-12 - Update for CUDA 4.2 (Note : The driver functions for setting the shared memory configuration are not available in CUDA 4.2) - The Pointer#to(Buffer) method does not take into account the position and arrayOffset of the buffer. This behavior may have undesirable implications, like a different behavior for slices of direct- and non-direct buffers. Therefore, a new method, Pointer#toBuffer(Buffer) has been introduced, which takes the position and arrayOffset of the buffer into account. The old method is kept for backward compatibility, but clients are encouraged to review their uses of the Pointer#to(Buffer) method, and consider changing it to Pointer#toBuffer(Buffer) with a buffer that has the right position for the intended data transfer. - Bugfix: cudaFreeHost did not properly free memory that was allocated with cudaHostAlloc 2012-02-08 - Update for CUDA 4.1 - Added cudaMemGetInfo and cudaArrayGetInfo 2012-01-02 - Update for CUDA 4.1RC2 - Added JCublas2 and JCusparse2 - Updated JCudpp for CUDPP 2 (implies slight changes of the API) - Removed deprecated functions that are not part of the official CUDA API, namely the functions for the emulation mode and the functions that had only been available in release candidates - Removed the old makefiles. Only CMake is used now. - Added missing flags to CUevent_flags - Minor bug fixes for string representations of flags - Updated the KernelLauncher in the JCudaUtils to support 3D grids 2011-06-20 - Update to CUDA 4.0 (final) (The update of JCublas for CUBLAS2 is still pending) - Bugfixes: - Missing CUdevice_attribute fields have been added - Fixed bug in cuModuleLoadData (the module was not set properly) - Added (preliminary) class JITOptions to handle the options for JCudaDriver#cuModuleLoadDataEx 2011-05-24 - Update to CUDA 4.0 RC2 - Internal refactoring - JCuda (runtime API): - Update for version 4.0 - JCudaDriver - Update for version 4.0 - CUdevprop fields are now public - CUresult.CUDA_ERROR_UNKNOWN had wrong constant value - cuMemset*D8* functions accepted a 'char', but should only have accepted 'byte' values - For some cuMem*Async methods, the CUstream parameter was missing - JCusparse: - Update for version 4.0 - Some parameter types had been wrong. The fact that nobody noticed this is not very motivating, but anyhow... - JCufft - Update for version 4.0 (cufftGetVersion and cufftPlanMany) - Introduced 'null' checks for non-primitive arguments - JCurand - Update for version 4.0 - Some function parameters which can optionally be pointers to host OR device memory had to be pointers to device memory in the previous version. 2011-02-14 - Bugfix: - A wrong memory size was reported on 64bit systems 2010-11-22 - Updated to CUDA 3.2 - Bugfixes: - Optional Parameters for cuModuleLoadDataEx may now be null 2010-10-21 - Updated to CUDA 3.2 RC - To reflect the changes in the native CUDA 3.2 API, some parameter types changed from 'unsigned int' to 'long' - Added JCurand - Added JCusparse - cuComplex/cuDoubleComplex moved from jcublas to jcuda (they are also needed for JCusparse) - Bugfixes: - Pointer#getByteBuffer could cause an error when calling it with (w, x) and then (y, z), if y > w+x - cudaMemcpy2D/FromArray/ToArray functions did not allow copying data from or to the host - Internal refactoring: Created "CommonJNI" library project 2010-07-11 - Updated to CUDA 3.1 - Internal refactoring - Updated JavaDoc documentation - License changed to MIT/X11 license 2010-04-16 - Fixed bug that caused errors when accessing textures - Some functions did not accept a 'null' stream - Removed warnings for Linux builds 2010-03-25 - License of all JCuda libraries changed to Lesser GPL - Added support for CUDA 3.0 to JCuda - Added support for CUBLAS 3.0 to JCublas - Added support for CUFFT 3.0 to JCufft - Added missing functions and fixed minor bugs in JCublas - Internal refactoring, update of build files 2009-11-02 - Updated build files - now supporting Win64 and Linux/MacOS - Fixed CUFFT_INVERSE constant value in JCufft - Added helper function JCudaDriver#align to align parameters - Support for CUDPP 1.1 in JCudpp 2009-08-25 - Updated JCufft to version 0.2.2, which supports double precision computations as introduced with CUDA 2.3 2009-07-05 - Added a flag which allows throwing exceptions in case of errors to all libraries and the runtime- and driver API - Alpha release of JCuda 0.2.1 - Added missing texture parameter constants to JCudaDriver - Alpha release of JCublas 0.2.1 - Alpha release of JCufft 0.2.1 - Alpha release of JCudpp 0.2.1 2009-06-09 - Alpha release of JCuda 0.2 - Added CUDA 2.2 support - Added OpenGL / JOGL interoperability 2009-05-27 - Initial alpha release of JCuda 0.1.1 - Initial alpha release of JCublas 0.1.1 - Initial alpha release of JCufft 0.1.1 - Initial alpha release of JCudpp 0.1.1