Skip to content

curtisseizert/CUDA-uint128

Repository files navigation

CUDA-uint128

A 128 bit unsigned integer class for CUDA. Due to inefficiencies in linking device code with nvcc, this is a header-only library. This library seeks to provide a convenient uint128_t type for use in CUDA code with most functions and operators defined. At this point, nearly all operators have been overloaded for the uint128_t class, all common arithmetic and bit arithmetic functions (including several roots) are defined. Additionally, more functions have been defined to increase the usability of this class, including typecasts to and from float and double, ostream insert (on the host), and string->uint128_t conversion (also host). The file "cuda_uint128.h" can be #included in both .cu and .cpp source files without compiler errors.

I am currently working on a few basic parallel primitives to increase the usability of this class. So far, this is limited to a highly optimized reduce. "cuda_uint128_primitives.cuh" can only be #included in .cu source files. There may be more in the future based on whether or not I need them for other projects.

About

A 128 bit unsigned integer class for CUDA

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages