KappaCUDA makes using CUDA from Python even easier–with memory management and a kernel scheduler.
The primary goal of Kappa is to allow for the creation of sophisticated, powerful, and complex processing that retain simple and easy-to-use interfaces. Kappa provides for creating processes with dynamic sizing, scheduling, and interactive execution for C and CUDA kernels to process data efficiently using the available resources.
Kappa provides a library for creating processes to use combinations of CPUs and a GPU for tasks. Within a single host program process, a Kappa process can be created for each CUDA GPU—using all GPUs. Each Kappa process can use all of the multiprocessors of each GPU, share all of the CPUs of the host system, have its own separate namespace, and have its own separate CUDA context.
The Kappa library provides:
* access to the GPU and instantiated kernel properties at runtime
* nvcc and CUDA JIT compilation loading
* fully concurrent C++, C++ OpenMP, and CUDA kernel execution
* dynamic sizing of data and kernel invocation
* dynamic scheduling and cancellation of the execution of related steps
* process level functional blocks (named or anonymous subroutines and named functions) built from dynamically scheduled execution of mixtures of C++ and CUDA kernels
* subject domain extensibility
The Kappa library was designed to especially ease use by providing, for example:
* interactive or batch capability for rapid development or testing,
* resource management (constructor, destructor, and automatic data copy),
* fail-safe default behavior,
* thread-safe locking,
* and exception handling.
What's New in This Release: [ read full changelog ]
· .Net KappaCUDAnet and C# and Visual Basic examples.
· Fixed base_path for Kappa Instance to be more robust under garbage collection.
· Fixed OutputRoutine to output code for original name and labels.
· Changed KappaParser to ignore carriage returns.
· Fixed Windows version of Lock::Wait timeout handling.
· Fixed DoNotExecute to still execute Stop and Finish keywords.
· Jave JNI is now alpha status (should work–no example and not yet tested).
· Fix Resource waiting on command set deallocation error.