CUSL
CUSL is an experimental CUDA port of selected routines from the GNU Scientific Library (GSL). It is intended for CUDA device code that needs a small subset of GSL-style special functions and random distributions without calling back to the CPU.
The project is not a complete GSL replacement. The current code is a compact,
header-oriented collection of ports in src/, with validation programs in
tests/ that compare CUSL output against GSL or CUDA standard functions.
Current Status
- Header-only CUDA/C++ implementation files live in
src/*.cuh. - Existing validation is executable comparison code, not a formal test suite.
- GSL-style status objects and error propagation are not implemented. Most
routines return a
double; domain and overflow cases may returnCUSL_NANand some device routines print diagnostic messages. - Distribution-level statistical validation is still incomplete for some random routines.
Repository Layout
src/ CUDA headers implementing selected GSL routines and helpers
tests/ GSL, CUDA, shell, Python, and reference-data comparison programs
Documentation Map
- Getting Started: dependencies, build commands, and a minimal CUDA usage example.
- Routines: current GSL-to-CUSL coverage table.
- Validation: available comparison scripts and what they check.
- Porting Notes: conventions and known limitations for future ports.