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.
-
Notifications
You must be signed in to change notification settings - Fork 15
A 128 bit unsigned integer class for CUDA
License
curtisseizert/CUDA-uint128
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
A 128 bit unsigned integer class for CUDA
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published