thirdparty/cuda/api/memory.hpp
inline void* allocate(
	cuda::device::id_t    device_id,
	size_t                num_bytes,
	initial_visibility_t  initial_visibility = initial_visibility_t::to_all_devices)
{
	cuda::device::current::scoped_override_t<> set_device_for_this_scope(device_id);
	return detail::allocate(num_bytes, initial_visibility);
}
/**
 * @brief Allocate a a region of managed memory, accessible with the same
 * address on the host and on CUDA devices
 *
 * @param device_id the initial device which is likely to access the managed
 * memory region (and which will certainly have actually allocated for it)
 * @param num_bytes size of each of the regions of memory to allocate
 * @param initial_visibility will the allocated region be visible, using the
 * common address, to all CUDA device (= more overhead, more work for the CUDA
 * runtime) or just to those devices with some hardware features to assist in
 * this task (= less overhead)?
 */
@brief Allocate a a region of managed memory, accessible with the same
address on the host and on CUDA devices


@brief Allocate a a region of managed memory accessible with the same address on the host and on CUDA devices
inline void* allocate(
	cuda::device::id_t    device_id,
	size_t                num_bytes,
	initial_visibility_t  initial_visibility = initial_visibility_t::to_all_devices)
{
	cuda::device::current::scoped_override_t<> set_device_for_this_scope(device_id);
	return detail::allocate(num_bytes, initial_visibility);
}
inline void * allocate ( cuda :: device :: id_t device_id , size_t num_bytes , initial_visibility_t initial_visibility = initial_visibility_t :: to_all_devices ) { cuda :: device :: current :: scoped_override_t < > set_device_for_this_scope ( device_id ) ; return detail :: allocate ( num_bytes , initial_visibility ) ; }
@brief Allocate a a region of managed memory, accessible with the same
 address on the host and on CUDA devices
@brief Allocate a a region of managed memory accessible with the same address on the host and on CUDA devices