cuda-api-wrappers
Thin C++-flavored wrappers for the CUDA Runtime API
Todo List
Member cuda::context_t::maximum_depth_of_child_grid_sync_calls () const
Is this really a feature of the context? Not of the device?
Member cuda::context_t::maximum_outstanding_kernel_launches () const
Is this really a feature of the context? Not of the device?
Member cuda::context_t::memory_allocation_heap_size () const
Is this really a feature of the context? Not of the device?
Member cuda::context_t::printf_buffer_size () const
Is this really a feature of the context? Not of the device?
Member cuda::context_t::stack_size () const
Is this really a feature of the context? Not of the device?
Member cuda::context_t::stream_priority_range () const
isn't this a feature of devices?
Member cuda::device::peer_to_peer::disable_access (const device_t &accessor, const device_t &peer)
Consider disabling this, given that access is context-specific
Member cuda::device::peer_to_peer::enable_access (const device_t &accessor, const device_t &peer)
Consider disabling this, given that access is context-specific
Member cuda::grid::block_dimensions_t
Consider having both grid and block dims inhert from the same dimensions_t structure, but be incompatible, to prevent mis-casting one as the other.
Member cuda::memory::mapped::is_part_of_a_region_pair (const void *ptr)
What if it's a managed pointer?
Member cuda::memory::shared::size_t
consider using uint32_t.
Member cuda::module::load_from_file (const context_t &context, const char *path)

: consider adding load_module methods to context_t

: When switching to the C++17 standard, use string_view's instead of the const char* and ::std::string reference

Member cuda::rtc::compilation_options_base_t< Kind >::targets_
Use something less fancy than ::std::unordered_set, e.g. a vector-backed ordered set or a dynamic bit-vector for membership.
Member cuda::rtc::compilation_options_t< cuda_cpp >::additional_include_paths
In C++17, consider making the elements ::std::filesystem::path's.
Member cuda::rtc::compilation_options_t< cuda_cpp >::compile_extensible_whole_program
explain what that is.
Member cuda::rtc::compilation_options_t< cuda_cpp >::preinclude_files

In C++17, consider making the elements ::std::filesystem::path's.

Check how these strings are interpreted. Do they need quotation marks? brackets? full paths?

Class cuda::runtime_error
Consider renaming this to avoid confusion with the CUDA Runtime.
Class cuda::span< T >
: Replace this with a more proper implementation.
Member cuda::stream_t::has_work_remaining () const
What if there are incomplete operations, but they're all waiting on something on another queue? Should the queue count as "busy" then?
Class cuda::texture::descriptor_t
Could be expanded into a richer wrapper class allowing actual settings of the various fields.
Member cuda::version_numbers::driver ()
In future CUDA versions which support C++17 - return an optional
Member cuda::wait (const event_t &event)
figure out what happens if the event has not been recorded before this call is made.
File pointer.hpp
Consider allowing for storing attributes within the class, lazily (e.g. with an ::std::optional).