Essentials
Initialization
CUDA.functional
— Methodfunctional(show_reason=false)
Check if the package has been configured successfully and is ready to use.
This call is intended for packages that support conditionally using an available GPU. If you fail to check whether CUDA is functional, actual use of functionality might warn and error.
CUDA.has_cuda
— Functionhas_cuda()::Bool
Check whether the local system provides an installation of the CUDA driver and toolkit. Use this function if your code loads packages that require CUDA.jl.
Note that CUDA-dependent packages might still fail to load if the installation is broken, so it's recommended to guard against that and print a warning to inform the user:
using CUDA
if has_cuda()
try
using CuArrays
catch ex
@warn "CUDA is installed, but CuArrays.jl fails to load" exception=(ex,catch_backtrace())
end
end
CUDA.has_cuda_gpu
— Functionhas_cuda_gpu()::Bool
Check whether the local system provides an installation of the CUDA driver and toolkit, and if it contains a CUDA-capable GPU. See has_cuda
for more details.
Note that this function initializes the CUDA API in order to check for the number of GPUs.
Global state
CUDA.context
— Functioncontext()::CuContext
Get or create a CUDA context for the current thread (as opposed to CuCurrentContext
which may return nothing
if there is no context bound to the current thread).
CUDA.context!
— Methodcontext!(ctx::CuContext)
Bind the current host thread to the context ctx
. Returns the previously-bound context.
Note that the contexts used with this call should be previously acquired by calling context
, and not arbitrary contexts created by calling the CuContext
constructor.
CUDA.context!
— Methodcontext!(f, ctx; [skip_destroyed=false])
Sets the active context for the duration of f
.
CUDA.device
— Functiondevice()::CuDevice
Get the CUDA device for the current thread, similar to how context()
works compared to CuCurrentContext()
.
CUDA.device!
— Methoddevice!(dev::Integer)
device!(dev::CuDevice)
Sets dev
as the current active device for the calling host thread. Devices can be specified by integer id, or as a CuDevice
(slightly faster).
CUDA.device!
— Methoddevice!(f, dev)
Sets the active device for the duration of f
.
Note that this call is intended for temporarily switching devices, and does not change the default device used to initialize new threads or tasks.
CUDA.device_reset!
— Functiondevice_reset!(dev::CuDevice=device())
Reset the CUDA state associated with a device. This call with release the underlying context, at which point any objects allocated in that context will be invalidated.
CUDA.stream
— Functionstream()
Get the CUDA stream that should be used as the default one for the currently executing task.
Missing docstring for stream!(::CuStream)
. Check Documenter's build log for details.
Missing docstring for stream!(::Function, ::CuStream)
. Check Documenter's build log for details.