Skip to content

Initial support for CUDA 13.2. - #3053

Merged
maleadt merged 1 commit into
masterfrom
tb/cuda_13.2
Mar 12, 2026
Merged

maleadt merged 1 commit into
masterfrom
tb/cuda_13.2

Conversation

@maleadt

@maleadt maleadt commented Mar 12, 2026

Copy link
Copy Markdown
Member

No description provided.

@github-actions

Copy link
Copy Markdown
Contributor

Your PR requires formatting changes to meet the project's style guidelines.
Please consider running Runic (git runic master) to apply these changes.

Click here to view the suggested changes.
diff --git a/lib/cudadrv/libcuda.jl b/lib/cudadrv/libcuda.jl
index bf74cb777..7d73c64d4 100644
--- a/lib/cudadrv/libcuda.jl
+++ b/lib/cudadrv/libcuda.jl
@@ -2386,8 +2386,8 @@ function Base.propertynames(x::CUlaunchAttributeValue_union, private::Bool=false
             :clusterSchedulingPolicyPreference, :programmaticStreamSerializationAllowed,
             :programmaticEvent, :launchCompletionEvent, :priority, :memSyncDomainMap,
             :memSyncDomain, :preferredClusterDim, :deviceUpdatableKernelNode,
-            :sharedMemCarveout, :nvlinkUtilCentricScheduling, :portableClusterSizeMode,
-            :sharedMemoryMode, if private
+        :sharedMemCarveout, :nvlinkUtilCentricScheduling, :portableClusterSizeMode,
+        :sharedMemoryMode, if private
                 fieldnames(typeof(x))
             else
                 ()
@@ -4355,8 +4355,10 @@ end
 
 @checked function cuKernelGetParamCount(kernel, paramCount)
     initialize_context()
-    @gcsafe_ccall libcuda.cuKernelGetParamCount(kernel::CUkernel,
-                                                paramCount::Ptr{Csize_t})::CUresult
+    @gcsafe_ccall libcuda.cuKernelGetParamCount(
+        kernel::CUkernel,
+        paramCount::Ptr{Csize_t}
+    )::CUresult
 end
 
 @checked function cuMemFreeHost(p)
@@ -4476,17 +4478,21 @@ end
 
 @checked function cuMemcpyWithAttributesAsync(dst, src, size, attr, hStream)
     initialize_context()
-    @gcsafe_ccall libcuda.cuMemcpyWithAttributesAsync(dst::CUdeviceptr, src::CUdeviceptr,
-                                                      size::Csize_t,
-                                                      attr::Ptr{CUmemcpyAttributes},
-                                                      hStream::CUstream)::CUresult
+    @gcsafe_ccall libcuda.cuMemcpyWithAttributesAsync(
+        dst::CUdeviceptr, src::CUdeviceptr,
+        size::Csize_t,
+        attr::Ptr{CUmemcpyAttributes},
+        hStream::CUstream
+    )::CUresult
 end
 
 @checked function cuMemcpy3DWithAttributesAsync(op, flags, hStream)
     initialize_context()
-    @gcsafe_ccall libcuda.cuMemcpy3DWithAttributesAsync(op::Ptr{CUDA_MEMCPY3D_BATCH_OP},
-                                                        flags::Culonglong,
-                                                        hStream::CUstream)::CUresult
+    @gcsafe_ccall libcuda.cuMemcpy3DWithAttributesAsync(
+        op::Ptr{CUDA_MEMCPY3D_BATCH_OP},
+        flags::Culonglong,
+        hStream::CUstream
+    )::CUresult
 end
 
 @checked function cuMemsetD8Async(dstDevice, uc, N, hStream)
@@ -4971,8 +4977,10 @@ end
 
 @checked function cuStreamBeginCaptureToCig(hStream, streamCigCaptureParams)
     initialize_context()
-    @gcsafe_ccall libcuda.cuStreamBeginCaptureToCig(hStream::CUstream,
-                                                    streamCigCaptureParams::Ptr{CUstreamCigCaptureParams})::CUresult
+    @gcsafe_ccall libcuda.cuStreamBeginCaptureToCig(
+        hStream::CUstream,
+        streamCigCaptureParams::Ptr{CUstreamCigCaptureParams}
+    )::CUresult
 end
 
 @checked function cuStreamEndCaptureToCig(hStream)
@@ -5204,8 +5212,10 @@ end
 
 @checked function cuFuncGetParamCount(func, paramCount)
     initialize_context()
-    @gcsafe_ccall libcuda.cuFuncGetParamCount(func::CUfunction,
-                                              paramCount::Ptr{Csize_t})::CUresult
+    @gcsafe_ccall libcuda.cuFuncGetParamCount(
+        func::CUfunction,
+        paramCount::Ptr{Csize_t}
+    )::CUresult
 end
 
 @cenum CUfunctionLoadingState_enum::UInt32 begin
@@ -5272,9 +5282,11 @@ end
 
 @checked function cuLaunchHostFunc_v2(hStream, fn, userData, syncMode)
     initialize_context()
-    @gcsafe_ccall libcuda.cuLaunchHostFunc_v2(hStream::CUstream, fn::CUhostFn,
-                                              userData::Ptr{Cvoid},
-                                              syncMode::Cuint)::CUresult
+    @gcsafe_ccall libcuda.cuLaunchHostFunc_v2(
+        hStream::CUstream, fn::CUhostFn,
+        userData::Ptr{Cvoid},
+        syncMode::Cuint
+    )::CUresult
 end
 
 @checked function cuFuncSetBlockShape(hfunc, x, y, z)
@@ -5839,8 +5851,10 @@ end
 
 @checked function cuGraphNodeGetParams(hNode, nodeParams)
     initialize_context()
-    @gcsafe_ccall libcuda.cuGraphNodeGetParams(hNode::CUgraphNode,
-                                               nodeParams::Ptr{CUgraphNodeParams})::CUresult
+    @gcsafe_ccall libcuda.cuGraphNodeGetParams(
+        hNode::CUgraphNode,
+        nodeParams::Ptr{CUgraphNodeParams}
+    )::CUresult
 end
 
 @checked function cuGraphExecNodeSetParams(hGraphExec, hNode, nodeParams)
@@ -6339,16 +6353,20 @@ const CUcoredumpStatusCallback = Ptr{Cvoid}
 
 @checked function cuCoredumpRegisterStartCallback(callback, userData, callbackOut)
     initialize_context()
-    @gcsafe_ccall libcuda.cuCoredumpRegisterStartCallback(callback::CUcoredumpStatusCallback,
-                                                          userData::Ptr{Cvoid},
-                                                          callbackOut::Ptr{CUcoredumpCallbackHandle})::CUresult
+    @gcsafe_ccall libcuda.cuCoredumpRegisterStartCallback(
+        callback::CUcoredumpStatusCallback,
+        userData::Ptr{Cvoid},
+        callbackOut::Ptr{CUcoredumpCallbackHandle}
+    )::CUresult
 end
 
 @checked function cuCoredumpRegisterCompleteCallback(callback, userData, callbackOut)
     initialize_context()
-    @gcsafe_ccall libcuda.cuCoredumpRegisterCompleteCallback(callback::CUcoredumpStatusCallback,
-                                                             userData::Ptr{Cvoid},
-                                                             callbackOut::Ptr{CUcoredumpCallbackHandle})::CUresult
+    @gcsafe_ccall libcuda.cuCoredumpRegisterCompleteCallback(
+        callback::CUcoredumpStatusCallback,
+        userData::Ptr{Cvoid},
+        callbackOut::Ptr{CUcoredumpCallbackHandle}
+    )::CUresult
 end
 
 @checked function cuCoredumpDeregisterStartCallback(callback)
diff --git a/lib/cupti/libcupti.jl b/lib/cupti/libcupti.jl
index 28febbf7a..a52206172 100644
--- a/lib/cupti/libcupti.jl
+++ b/lib/cupti/libcupti.jl
@@ -45,7 +45,7 @@ end
 macro CUPTI_ACTIVITY_STRUCT_SIZE(type, lastfield)
     type = esc(type)
     lastfield = QuoteNode(lastfield)
-    quote
+    return quote
         $struct_size($type, $lastfield)
     end
 end
@@ -56,7 +56,7 @@ struct CUpti_SubscriberParams
     oldSubscriberName::Cstring
     oldSubscriberSize::Csize_t
     allowMultipleSubscribers::UInt8
-    padding::NTuple{7,UInt8}
+    padding::NTuple{7, UInt8}
 end
 
 struct CUpti_ActivityFieldSelection
@@ -378,14 +378,18 @@ end
                                                  cbid::CUpti_CallbackId)::CUptiResult
 end
 
-@checked function cuptiGetEnabledCallbacks(subscriber, domain, buffer, bufferSize,
-                                           enabledCallbacksCount)
+@checked function cuptiGetEnabledCallbacks(
+        subscriber, domain, buffer, bufferSize,
+        enabledCallbacksCount
+    )
     initialize_context()
-    @gcsafe_ccall libcupti.cuptiGetEnabledCallbacks(subscriber::CUpti_SubscriberHandle,
-                                                    domain::CUpti_CallbackDomain,
-                                                    buffer::Ptr{CUpti_CallbackId},
-                                                    bufferSize::Ptr{UInt32},
-                                                    enabledCallbacksCount::Ptr{UInt32})::CUptiResult
+    @gcsafe_ccall libcupti.cuptiGetEnabledCallbacks(
+        subscriber::CUpti_SubscriberHandle,
+        domain::CUpti_CallbackDomain,
+        buffer::Ptr{CUpti_CallbackId},
+        bufferSize::Ptr{UInt32},
+        enabledCallbacksCount::Ptr{UInt32}
+    )::CUptiResult
 end
 
 @checked function cuptiEnableCallback(enable, subscriber, domain, cbid)
@@ -2543,7 +2547,7 @@ function Base.propertynames(x::CUpti_ActivityBranch2, private::Bool=false)
 end
 
 struct CUpti_ActivityDevice6
-    data::NTuple{192,UInt8}
+    data::NTuple{192, UInt8}
 end
 
 function Base.getproperty(x::Ptr{CUpti_ActivityDevice6}, f::Symbol)
@@ -2601,7 +2605,7 @@ function Base.setproperty!(x::Ptr{CUpti_ActivityDevice6}, f::Symbol, v)
     return unsafe_store!(getproperty(x, f), v)
 end
 
-function Base.propertynames(x::CUpti_ActivityDevice6, private::Bool=false)
+function Base.propertynames(x::CUpti_ActivityDevice6, private::Bool = false)
     return (:kind, :flags, :globalMemoryBandwidth, :globalMemorySize, :constantMemorySize,
             :l2CacheSize, :numThreadsPerWarp, :coreClockRate, :numMemcpyEngines,
             :numMultiprocessors, :maxIPC, :maxWarpsPerMultiprocessor,
@@ -2610,8 +2614,8 @@ function Base.propertynames(x::CUpti_ActivityDevice6, private::Bool=false)
             :maxThreadsPerBlock, :maxBlockDimX, :maxBlockDimY, :maxBlockDimZ, :maxGridDimX,
             :maxGridDimY, :maxGridDimZ, :computeCapabilityMajor, :computeCapabilityMinor,
             :id, :eccEnabled, :uuid, :name, :isCudaVisible, :isMigEnabled, :reserved,
-            :gpuInstanceId, :computeInstanceId, :migUuid, :isNumaNode, :numaId, :numTpcs,
-            :reserved0, if private
+        :gpuInstanceId, :computeInstanceId, :migUuid, :isNumaNode, :numaId, :numTpcs,
+        :reserved0, if private
                 fieldnames(typeof(x))
             else
                 ()
@@ -3912,7 +3916,7 @@ function Base.setproperty!(x::Ptr{var"##Ctag#445"}, f::Symbol, v)
     return unsafe_store!(getproperty(x, f), v)
 end
 
-function Base.propertynames(x::var"##Ctag#445", private::Bool=false)
+function Base.propertynames(x::var"##Ctag#445", private::Bool = false)
     return (:uuidDev, :npu, if private
                 fieldnames(typeof(x))
             else
@@ -3941,7 +3945,7 @@ function Base.setproperty!(x::Ptr{var"##Ctag#447"}, f::Symbol, v)
     return unsafe_store!(getproperty(x, f), v)
 end
 
-function Base.propertynames(x::var"##Ctag#447", private::Bool=false)
+function Base.propertynames(x::var"##Ctag#447", private::Bool = false)
     return (:uuidDev, :npu, if private
                 fieldnames(typeof(x))
             else
@@ -3950,7 +3954,7 @@ function Base.propertynames(x::var"##Ctag#447", private::Bool=false)
 end
 
 struct CUpti_ActivityNvLink5
-    data::NTuple{88,UInt8}
+    data::NTuple{88, UInt8}
 end
 
 function Base.getproperty(x::Ptr{CUpti_ActivityNvLink5}, f::Symbol)
@@ -3966,7 +3970,7 @@ function Base.getproperty(x::Ptr{CUpti_ActivityNvLink5}, f::Symbol)
     f === :portDev1 && return Ptr{Ptr{UInt32}}(x + 64)
     f === :bandwidth && return Ptr{UInt64}(x + 72)
     f === :nvswitchConnected && return Ptr{UInt8}(x + 80)
-    f === :pad && return Ptr{NTuple{7,UInt8}}(x + 81)
+    f === :pad && return Ptr{NTuple{7, UInt8}}(x + 81)
     return getfield(x, f)
 end
 
@@ -3981,7 +3985,7 @@ function Base.setproperty!(x::Ptr{CUpti_ActivityNvLink5}, f::Symbol, v)
     return unsafe_store!(getproperty(x, f), v)
 end
 
-function Base.propertynames(x::CUpti_ActivityNvLink5, private::Bool=false)
+function Base.propertynames(x::CUpti_ActivityNvLink5, private::Bool = false)
     return (:kind, :nvlinkVersion, :typeDev0, :typeDev1, :idDev0, :idDev1, :flag,
             :physicalNvLinkCount, :portDev0, :portDev1, :bandwidth, :nvswitchConnected,
             :pad, if private
@@ -4542,7 +4546,7 @@ end
 end
 
 struct CUpti_ActivityGreenContext
-    data::NTuple{152,UInt8}
+    data::NTuple{152, UInt8}
 end
 
 function Base.getproperty(x::Ptr{CUpti_ActivityGreenContext}, f::Symbol)
@@ -4554,7 +4558,7 @@ function Base.getproperty(x::Ptr{CUpti_ActivityGreenContext}, f::Symbol)
     f === :numMultiprocessors && return Ptr{UInt16}(x + 20)
     f === :logicalTpcMaskSize && return Ptr{UInt8}(x + 22)
     f === :padding && return Ptr{UInt8}(x + 23)
-    f === :logicalTpcMask && return Ptr{NTuple{32,UInt32}}(x + 24)
+    f === :logicalTpcMask && return Ptr{NTuple{32, UInt32}}(x + 24)
     return getfield(x, f)
 end
 
@@ -4562,20 +4566,22 @@ function Base.getproperty(x::CUpti_ActivityGreenContext, f::Symbol)
     r = Ref{CUpti_ActivityGreenContext}(x)
     ptr = Base.unsafe_convert(Ptr{CUpti_ActivityGreenContext}, r)
     fptr = getproperty(ptr, f)
-    GC.@preserve r unsafe_load(fptr)
+    return GC.@preserve r unsafe_load(fptr)
 end
 
 function Base.setproperty!(x::Ptr{CUpti_ActivityGreenContext}, f::Symbol, v)
     return unsafe_store!(getproperty(x, f), v)
 end
 
-function Base.propertynames(x::CUpti_ActivityGreenContext, private::Bool=false)
-    return (:kind, :contextId, :parentContextId, :deviceId, :numTpcs, :numMultiprocessors,
-            :logicalTpcMaskSize, :padding, :logicalTpcMask, if private
-                fieldnames(typeof(x))
-            else
-                ()
-            end...)
+function Base.propertynames(x::CUpti_ActivityGreenContext, private::Bool = false)
+    return (
+        :kind, :contextId, :parentContextId, :deviceId, :numTpcs, :numMultiprocessors,
+        :logicalTpcMaskSize, :padding, :logicalTpcMask, if private
+            fieldnames(typeof(x))
+        else
+            ()
+        end...,
+    )
 end
 
 @cenum CUpti_ActivityGreenContextFieldIds::UInt32 begin
@@ -4689,39 +4695,51 @@ end
 
 @checked function cuptiActivityEnable_v2(subscriber, kind, pActivityConfig)
     initialize_context()
-    @gcsafe_ccall libcupti.cuptiActivityEnable_v2(subscriber::CUpti_SubscriberHandle,
-                                                  kind::CUpti_ActivityKind,
-                                                  pActivityConfig::Ptr{CUpti_ActivityConfig})::CUptiResult
+    @gcsafe_ccall libcupti.cuptiActivityEnable_v2(
+        subscriber::CUpti_SubscriberHandle,
+        kind::CUpti_ActivityKind,
+        pActivityConfig::Ptr{CUpti_ActivityConfig}
+    )::CUptiResult
 end
 
 @checked function cuptiActivityDisable_v2(subscriber, kind, pActivityConfig)
     initialize_context()
-    @gcsafe_ccall libcupti.cuptiActivityDisable_v2(subscriber::CUpti_SubscriberHandle,
-                                                   kind::CUpti_ActivityKind,
-                                                   pActivityConfig::Ptr{CUpti_ActivityConfig})::CUptiResult
+    @gcsafe_ccall libcupti.cuptiActivityDisable_v2(
+        subscriber::CUpti_SubscriberHandle,
+        kind::CUpti_ActivityKind,
+        pActivityConfig::Ptr{CUpti_ActivityConfig}
+    )::CUptiResult
 end
 
 @checked function cuptiActivityEnableAndDump_v2(subscriber, kind, activityConfig)
     initialize_context()
-    @gcsafe_ccall libcupti.cuptiActivityEnableAndDump_v2(subscriber::CUpti_SubscriberHandle,
-                                                         kind::CUpti_ActivityKind,
-                                                         activityConfig::Ptr{CUpti_ActivityConfig})::CUptiResult
+    @gcsafe_ccall libcupti.cuptiActivityEnableAndDump_v2(
+        subscriber::CUpti_SubscriberHandle,
+        kind::CUpti_ActivityKind,
+        activityConfig::Ptr{CUpti_ActivityConfig}
+    )::CUptiResult
 end
 
-@checked function cuptiActivityGetEnabledKinds(subscriber, buffer, bufferSize,
-                                               enabledKindsCount)
+@checked function cuptiActivityGetEnabledKinds(
+        subscriber, buffer, bufferSize,
+        enabledKindsCount
+    )
     initialize_context()
-    @gcsafe_ccall libcupti.cuptiActivityGetEnabledKinds(subscriber::CUpti_SubscriberHandle,
-                                                        buffer::Ptr{CUpti_ActivityKind},
-                                                        bufferSize::Ptr{UInt32},
-                                                        enabledKindsCount::Ptr{UInt32})::CUptiResult
+    @gcsafe_ccall libcupti.cuptiActivityGetEnabledKinds(
+        subscriber::CUpti_SubscriberHandle,
+        buffer::Ptr{CUpti_ActivityKind},
+        bufferSize::Ptr{UInt32},
+        enabledKindsCount::Ptr{UInt32}
+    )::CUptiResult
 end
 
 @checked function cuptiActivityGetStructSize(activityKind, version, activityStructSize)
     initialize_context()
-    @gcsafe_ccall libcupti.cuptiActivityGetStructSize(activityKind::CUpti_ActivityKind,
-                                                      version::UInt32,
-                                                      activityStructSize::Ptr{Csize_t})::CUptiResult
+    @gcsafe_ccall libcupti.cuptiActivityGetStructSize(
+        activityKind::CUpti_ActivityKind,
+        version::UInt32,
+        activityStructSize::Ptr{Csize_t}
+    )::CUptiResult
 end
 
 @checked function cuptiIsTracingSessionRunning(isRunning)
@@ -4784,12 +4802,16 @@ end
 # typedef void ( CUPTIAPI * CUpti_BuffersCallbackCompleteFunc_v2 ) ( uint8_t * buffer , size_t size , size_t validSize , CUpti_BufferCallbackCompleteInfo * pBufferCompleteInfo )
 const CUpti_BuffersCallbackCompleteFunc_v2 = Ptr{Cvoid}
 
-@checked function cuptiActivityRegisterCallbacks_v2(subscriber, funcBufferRequested,
-                                                    funcBufferCompleted)
+@checked function cuptiActivityRegisterCallbacks_v2(
+        subscriber, funcBufferRequested,
+        funcBufferCompleted
+    )
     initialize_context()
-    @gcsafe_ccall libcupti.cuptiActivityRegisterCallbacks_v2(subscriber::CUpti_SubscriberHandle,
-                                                             funcBufferRequested::CUpti_BuffersCallbackRequestFunc_v2,
-                                                             funcBufferCompleted::CUpti_BuffersCallbackCompleteFunc_v2)::CUptiResult
+    @gcsafe_ccall libcupti.cuptiActivityRegisterCallbacks_v2(
+        subscriber::CUpti_SubscriberHandle,
+        funcBufferRequested::CUpti_BuffersCallbackRequestFunc_v2,
+        funcBufferCompleted::CUpti_BuffersCallbackCompleteFunc_v2
+    )::CUptiResult
 end
 
 @checked function cuptiActivityFlush(context, streamId, flag)
@@ -4812,10 +4834,12 @@ end
 
 @checked function cuptiActivityGetAttribute_v2(subscriber, attr, valueSize, value)
     initialize_context()
-    @gcsafe_ccall libcupti.cuptiActivityGetAttribute_v2(subscriber::CUpti_SubscriberHandle,
-                                                        attr::CUpti_ActivityAttribute,
-                                                        valueSize::Ptr{Csize_t},
-                                                        value::Ptr{Cvoid})::CUptiResult
+    @gcsafe_ccall libcupti.cuptiActivityGetAttribute_v2(
+        subscriber::CUpti_SubscriberHandle,
+        attr::CUpti_ActivityAttribute,
+        valueSize::Ptr{Csize_t},
+        value::Ptr{Cvoid}
+    )::CUptiResult
 end
 
 @checked function cuptiActivitySetAttribute(attr, valueSize, value)
@@ -4827,10 +4851,12 @@ end
 
 @checked function cuptiActivitySetAttribute_v2(subscriber, attr, valueSize, value)
     initialize_context()
-    @gcsafe_ccall libcupti.cuptiActivitySetAttribute_v2(subscriber::CUpti_SubscriberHandle,
-                                                        attr::CUpti_ActivityAttribute,
-                                                        valueSize::Ptr{Csize_t},
-                                                        value::Ptr{Cvoid})::CUptiResult
+    @gcsafe_ccall libcupti.cuptiActivitySetAttribute_v2(
+        subscriber::CUpti_SubscriberHandle,
+        attr::CUpti_ActivityAttribute,
+        valueSize::Ptr{Csize_t},
+        value::Ptr{Cvoid}
+    )::CUptiResult
 end
 
 @checked function cuptiActivityConfigureUnifiedMemoryCounter(config, count)
@@ -5301,7 +5327,7 @@ function Base.propertynames(x::CUpti_ActivityDevice4, private::Bool=false)
 end
 
 struct CUpti_ActivityDevice5
-    data::NTuple{184,UInt8}
+    data::NTuple{184, UInt8}
 end
 
 function Base.getproperty(x::Ptr{CUpti_ActivityDevice5}, f::Symbol)
@@ -5337,7 +5363,7 @@ function Base.getproperty(x::Ptr{CUpti_ActivityDevice5}, f::Symbol)
     f === :name && return Ptr{Cstring}(x + 136)
     f === :isCudaVisible && return Ptr{UInt8}(x + 144)
     f === :isMigEnabled && return Ptr{UInt8}(x + 145)
-    f === :reserved && return Ptr{NTuple{6,UInt8}}(x + 146)
+    f === :reserved && return Ptr{NTuple{6, UInt8}}(x + 146)
     f === :gpuInstanceId && return Ptr{UInt32}(x + 152)
     f === :computeInstanceId && return Ptr{UInt32}(x + 156)
     f === :migUuid && return Ptr{CUuuid}(x + 160)
@@ -5350,28 +5376,30 @@ function Base.getproperty(x::CUpti_ActivityDevice5, f::Symbol)
     r = Ref{CUpti_ActivityDevice5}(x)
     ptr = Base.unsafe_convert(Ptr{CUpti_ActivityDevice5}, r)
     fptr = getproperty(ptr, f)
-    GC.@preserve r unsafe_load(fptr)
+    return GC.@preserve r unsafe_load(fptr)
 end
 
 function Base.setproperty!(x::Ptr{CUpti_ActivityDevice5}, f::Symbol, v)
     return unsafe_store!(getproperty(x, f), v)
 end
 
-function Base.propertynames(x::CUpti_ActivityDevice5, private::Bool=false)
-    return (:kind, :flags, :globalMemoryBandwidth, :globalMemorySize, :constantMemorySize,
-            :l2CacheSize, :numThreadsPerWarp, :coreClockRate, :numMemcpyEngines,
-            :numMultiprocessors, :maxIPC, :maxWarpsPerMultiprocessor,
-            :maxBlocksPerMultiprocessor, :maxSharedMemoryPerMultiprocessor,
-            :maxRegistersPerMultiprocessor, :maxRegistersPerBlock, :maxSharedMemoryPerBlock,
-            :maxThreadsPerBlock, :maxBlockDimX, :maxBlockDimY, :maxBlockDimZ, :maxGridDimX,
-            :maxGridDimY, :maxGridDimZ, :computeCapabilityMajor, :computeCapabilityMinor,
-            :id, :eccEnabled, :uuid, :name, :isCudaVisible, :isMigEnabled, :reserved,
-            :gpuInstanceId, :computeInstanceId, :migUuid, :isNumaNode, :numaId,
-            if private
-                fieldnames(typeof(x))
-            else
-                ()
-            end...)
+function Base.propertynames(x::CUpti_ActivityDevice5, private::Bool = false)
+    return (
+        :kind, :flags, :globalMemoryBandwidth, :globalMemorySize, :constantMemorySize,
+        :l2CacheSize, :numThreadsPerWarp, :coreClockRate, :numMemcpyEngines,
+        :numMultiprocessors, :maxIPC, :maxWarpsPerMultiprocessor,
+        :maxBlocksPerMultiprocessor, :maxSharedMemoryPerMultiprocessor,
+        :maxRegistersPerMultiprocessor, :maxRegistersPerBlock, :maxSharedMemoryPerBlock,
+        :maxThreadsPerBlock, :maxBlockDimX, :maxBlockDimY, :maxBlockDimZ, :maxGridDimX,
+        :maxGridDimY, :maxGridDimZ, :computeCapabilityMajor, :computeCapabilityMinor,
+        :id, :eccEnabled, :uuid, :name, :isCudaVisible, :isMigEnabled, :reserved,
+        :gpuInstanceId, :computeInstanceId, :migUuid, :isNumaNode, :numaId,
+        if private
+            fieldnames(typeof(x))
+        else
+            ()
+        end...,
+    )
 end
 
 struct CUpti_ActivityKernel
@@ -7511,7 +7539,7 @@ function Base.propertynames(x::var"##Ctag#349", private::Bool=false)
 end
 
 struct CUpti_ActivityNvLink2
-    data::NTuple{96,UInt8}
+    data::NTuple{96, UInt8}
 end
 
 function Base.getproperty(x::Ptr{CUpti_ActivityNvLink2}, f::Symbol)
@@ -7523,8 +7551,8 @@ function Base.getproperty(x::Ptr{CUpti_ActivityNvLink2}, f::Symbol)
     f === :idDev1 && return Ptr{var"##Ctag#349"}(x + 32)
     f === :flag && return Ptr{UInt32}(x + 48)
     f === :physicalNvLinkCount && return Ptr{UInt32}(x + 52)
-    f === :portDev0 && return Ptr{NTuple{16,Int8}}(x + 56)
-    f === :portDev1 && return Ptr{NTuple{16,Int8}}(x + 72)
+    f === :portDev0 && return Ptr{NTuple{16, Int8}}(x + 56)
+    f === :portDev1 && return Ptr{NTuple{16, Int8}}(x + 72)
     f === :bandwidth && return Ptr{UInt64}(x + 88)
     return getfield(x, f)
 end
@@ -7609,7 +7637,7 @@ function Base.propertynames(x::var"##Ctag#343", private::Bool=false)
 end
 
 struct CUpti_ActivityNvLink3
-    data::NTuple{104,UInt8}
+    data::NTuple{104, UInt8}
 end
 
 function Base.getproperty(x::Ptr{CUpti_ActivityNvLink3}, f::Symbol)
@@ -7621,11 +7649,11 @@ function Base.getproperty(x::Ptr{CUpti_ActivityNvLink3}, f::Symbol)
     f === :idDev1 && return Ptr{var"##Ctag#343"}(x + 32)
     f === :flag && return Ptr{UInt32}(x + 48)
     f === :physicalNvLinkCount && return Ptr{UInt32}(x + 52)
-    f === :portDev0 && return Ptr{NTuple{16,Int8}}(x + 56)
-    f === :portDev1 && return Ptr{NTuple{16,Int8}}(x + 72)
+    f === :portDev0 && return Ptr{NTuple{16, Int8}}(x + 56)
+    f === :portDev1 && return Ptr{NTuple{16, Int8}}(x + 72)
     f === :bandwidth && return Ptr{UInt64}(x + 88)
     f === :nvswitchConnected && return Ptr{UInt8}(x + 96)
-    f === :pad && return Ptr{NTuple{7,UInt8}}(x + 97)
+    f === :pad && return Ptr{NTuple{7, UInt8}}(x + 97)
     return getfield(x, f)
 end
 
@@ -7651,7 +7679,7 @@ function Base.propertynames(x::CUpti_ActivityNvLink3, private::Bool=false)
 end
 
 struct var"##Ctag#393"
-    data::NTuple{16,UInt8}
+    data::NTuple{16, UInt8}
 end
 
 function Base.getproperty(x::Ptr{var"##Ctag#393"}, f::Symbol)
@@ -7664,23 +7692,25 @@ function Base.getproperty(x::var"##Ctag#393", f::Symbol)
     r = Ref{var"##Ctag#393"}(x)
     ptr = Base.unsafe_convert(Ptr{var"##Ctag#393"}, r)
     fptr = getproperty(ptr, f)
-    GC.@preserve r unsafe_load(fptr)
+    return GC.@preserve r unsafe_load(fptr)
 end
 
 function Base.setproperty!(x::Ptr{var"##Ctag#393"}, f::Symbol, v)
     return unsafe_store!(getproperty(x, f), v)
 end
 
-function Base.propertynames(x::var"##Ctag#393", private::Bool=false)
-    return (:uuidDev, :npu, if private
-                fieldnames(typeof(x))
-            else
-                ()
-            end...)
+function Base.propertynames(x::var"##Ctag#393", private::Bool = false)
+    return (
+        :uuidDev, :npu, if private
+            fieldnames(typeof(x))
+        else
+            ()
+        end...,
+    )
 end
 
 struct var"##Ctag#395"
-    data::NTuple{16,UInt8}
+    data::NTuple{16, UInt8}
 end
 
 function Base.getproperty(x::Ptr{var"##Ctag#395"}, f::Symbol)
@@ -7693,23 +7723,25 @@ function Base.getproperty(x::var"##Ctag#395", f::Symbol)
     r = Ref{var"##Ctag#395"}(x)
     ptr = Base.unsafe_convert(Ptr{var"##Ctag#395"}, r)
     fptr = getproperty(ptr, f)
-    GC.@preserve r unsafe_load(fptr)
+    return GC.@preserve r unsafe_load(fptr)
 end
 
 function Base.setproperty!(x::Ptr{var"##Ctag#395"}, f::Symbol, v)
     return unsafe_store!(getproperty(x, f), v)
 end
 
-function Base.propertynames(x::var"##Ctag#395", private::Bool=false)
-    return (:uuidDev, :npu, if private
-                fieldnames(typeof(x))
-            else
-                ()
-            end...)
+function Base.propertynames(x::var"##Ctag#395", private::Bool = false)
+    return (
+        :uuidDev, :npu, if private
+            fieldnames(typeof(x))
+        else
+            ()
+        end...,
+    )
 end
 
 struct CUpti_ActivityNvLink4
-    data::NTuple{136,UInt8}
+    data::NTuple{136, UInt8}
 end
 
 function Base.getproperty(x::Ptr{CUpti_ActivityNvLink4}, f::Symbol)
@@ -7721,11 +7753,11 @@ function Base.getproperty(x::Ptr{CUpti_ActivityNvLink4}, f::Symbol)
     f === :idDev1 && return Ptr{var"##Ctag#395"}(x + 32)
     f === :flag && return Ptr{UInt32}(x + 48)
     f === :physicalNvLinkCount && return Ptr{UInt32}(x + 52)
-    f === :portDev0 && return Ptr{NTuple{32,Int8}}(x + 56)
-    f === :portDev1 && return Ptr{NTuple{32,Int8}}(x + 88)
+    f === :portDev0 && return Ptr{NTuple{32, Int8}}(x + 56)
+    f === :portDev1 && return Ptr{NTuple{32, Int8}}(x + 88)
     f === :bandwidth && return Ptr{UInt64}(x + 120)
     f === :nvswitchConnected && return Ptr{UInt8}(x + 128)
-    f === :pad && return Ptr{NTuple{7,UInt8}}(x + 129)
+    f === :pad && return Ptr{NTuple{7, UInt8}}(x + 129)
     return getfield(x, f)
 end
 
@@ -7733,21 +7765,23 @@ function Base.getproperty(x::CUpti_ActivityNvLink4, f::Symbol)
     r = Ref{CUpti_ActivityNvLink4}(x)
     ptr = Base.unsafe_convert(Ptr{CUpti_ActivityNvLink4}, r)
     fptr = getproperty(ptr, f)
-    GC.@preserve r unsafe_load(fptr)
+    return GC.@preserve r unsafe_load(fptr)
 end
 
 function Base.setproperty!(x::Ptr{CUpti_ActivityNvLink4}, f::Symbol, v)
     return unsafe_store!(getproperty(x, f), v)
 end
 
-function Base.propertynames(x::CUpti_ActivityNvLink4, private::Bool=false)
-    return (:kind, :nvlinkVersion, :typeDev0, :typeDev1, :idDev0, :idDev1, :flag,
-            :physicalNvLinkCount, :portDev0, :portDev1, :bandwidth, :nvswitchConnected,
-            :pad, if private
-                fieldnames(typeof(x))
-            else
-                ()
-            end...)
+function Base.propertynames(x::CUpti_ActivityNvLink4, private::Bool = false)
+    return (
+        :kind, :nvlinkVersion, :typeDev0, :typeDev1, :idDev0, :idDev1, :flag,
+        :physicalNvLinkCount, :portDev0, :portDev1, :bandwidth, :nvswitchConnected,
+        :pad, if private
+            fieldnames(typeof(x))
+        else
+            ()
+        end...,
+    )
 end
 
 struct CUpti_ActivityGraphTrace
@@ -10438,7 +10472,7 @@ function Base.getproperty(x::var"##Ctag#446", f::Symbol)
     r = Ref{var"##Ctag#446"}(x)
     ptr = Base.unsafe_convert(Ptr{var"##Ctag#446"}, r)
     fptr = getproperty(ptr, f)
-    GC.@preserve r unsafe_load(fptr)
+    return GC.@preserve r unsafe_load(fptr)
 end
 
 function Base.setproperty!(x::Ptr{var"##Ctag#446"}, f::Symbol, v)
@@ -10459,7 +10493,7 @@ function Base.getproperty(x::var"##Ctag#448", f::Symbol)
     r = Ref{var"##Ctag#448"}(x)
     ptr = Base.unsafe_convert(Ptr{var"##Ctag#448"}, r)
     fptr = getproperty(ptr, f)
-    GC.@preserve r unsafe_load(fptr)
+    return GC.@preserve r unsafe_load(fptr)
 end
 
 function Base.setproperty!(x::Ptr{var"##Ctag#448"}, f::Symbol, v)
@@ -10471,7 +10505,8 @@ const CUPTI_SUBSCRIBER_NAME_MAX_LEN = 53
 const CUPTI_OLD_SUBSCRIBER_NAME_MIN_LEN = 64
 
 const CUpti_SubscriberParams_STRUCT_SIZE = @CUPTI_CALLBACK_STRUCT_SIZE(CUpti_SubscriberParams,
-                                                                       padding)
+    padding
+)
 
 const CUPTI_EVENT_OVERFLOW = uint64_t(Culonglong(0xffffffffffffffff))
 
@@ -10517,8 +10552,10 @@ const CUPTI_DECOMPRESSED_BYTES_UNKNOWN = Clonglong(0)
 
 const CUPTI_MAX_GPUS = 32
 
-const CUpti_ActivityConfig_STRUCT_SIZE = @CUPTI_ACTIVITY_STRUCT_SIZE(CUpti_ActivityConfig,
-                                                                     fieldSelection)
+const CUpti_ActivityConfig_STRUCT_SIZE = @CUPTI_ACTIVITY_STRUCT_SIZE(
+    CUpti_ActivityConfig,
+    fieldSelection
+)
 
 const CUPTI_MAX_NVLINK_PORTS = 256
 
diff --git a/lib/cusolver/libcusolver.jl b/lib/cusolver/libcusolver.jl
index 063a51588..43a59e9d0 100644
--- a/lib/cusolver/libcusolver.jl
+++ b/lib/cusolver/libcusolver.jl
@@ -239,54 +239,78 @@ end
 
 @checked function cusolverDnSetFixedPointEmulationMantissaControl(handle, control)
     initialize_context()
-    @gcsafe_ccall libcusolver.cusolverDnSetFixedPointEmulationMantissaControl(handle::cusolverDnHandle_t,
-                                                                              control::cudaEmulationMantissaControl_t)::cusolverStatus_t
+    @gcsafe_ccall libcusolver.cusolverDnSetFixedPointEmulationMantissaControl(
+        handle::cusolverDnHandle_t,
+        control::cudaEmulationMantissaControl_t
+    )::cusolverStatus_t
 end
 
 @checked function cusolverDnGetFixedPointEmulationMantissaControl(handle, control)
     initialize_context()
-    @gcsafe_ccall libcusolver.cusolverDnGetFixedPointEmulationMantissaControl(handle::cusolverDnHandle_t,
-                                                                              control::Ptr{cudaEmulationMantissaControl_t})::cusolverStatus_t
+    @gcsafe_ccall libcusolver.cusolverDnGetFixedPointEmulationMantissaControl(
+        handle::cusolverDnHandle_t,
+        control::Ptr{cudaEmulationMantissaControl_t}
+    )::cusolverStatus_t
 end
 
-@checked function cusolverDnSetFixedPointEmulationMaxMantissaBitCount(handle,
-                                                                      mantissaBitCount)
+@checked function cusolverDnSetFixedPointEmulationMaxMantissaBitCount(
+        handle,
+        mantissaBitCount
+    )
     initialize_context()
-    @gcsafe_ccall libcusolver.cusolverDnSetFixedPointEmulationMaxMantissaBitCount(handle::cusolverDnHandle_t,
-                                                                                  mantissaBitCount::Cint)::cusolverStatus_t
+    @gcsafe_ccall libcusolver.cusolverDnSetFixedPointEmulationMaxMantissaBitCount(
+        handle::cusolverDnHandle_t,
+        mantissaBitCount::Cint
+    )::cusolverStatus_t
 end
 
-@checked function cusolverDnGetFixedPointEmulationMaxMantissaBitCount(handle,
-                                                                      mantissaBitCount)
+@checked function cusolverDnGetFixedPointEmulationMaxMantissaBitCount(
+        handle,
+        mantissaBitCount
+    )
     initialize_context()
-    @gcsafe_ccall libcusolver.cusolverDnGetFixedPointEmulationMaxMantissaBitCount(handle::cusolverDnHandle_t,
-                                                                                  mantissaBitCount::Ptr{Cint})::cusolverStatus_t
+    @gcsafe_ccall libcusolver.cusolverDnGetFixedPointEmulationMaxMantissaBitCount(
+        handle::cusolverDnHandle_t,
+        mantissaBitCount::Ptr{Cint}
+    )::cusolverStatus_t
 end
 
-@checked function cusolverDnSetFixedPointEmulationMantissaBitOffset(handle,
-                                                                    mantissaBitOffset)
+@checked function cusolverDnSetFixedPointEmulationMantissaBitOffset(
+        handle,
+        mantissaBitOffset
+    )
     initialize_context()
-    @gcsafe_ccall libcusolver.cusolverDnSetFixedPointEmulationMantissaBitOffset(handle::cusolverDnHandle_t,
-                                                                                mantissaBitOffset::Cint)::cusolverStatus_t
+    @gcsafe_ccall libcusolver.cusolverDnSetFixedPointEmulationMantissaBitOffset(
+        handle::cusolverDnHandle_t,
+        mantissaBitOffset::Cint
+    )::cusolverStatus_t
 end
 
-@checked function cusolverDnGetFixedPointEmulationMantissaBitOffset(handle,
-                                                                    mantissaBitOffset)
+@checked function cusolverDnGetFixedPointEmulationMantissaBitOffset(
+        handle,
+        mantissaBitOffset
+    )
     initialize_context()
-    @gcsafe_ccall libcusolver.cusolverDnGetFixedPointEmulationMantissaBitOffset(handle::cusolverDnHandle_t,
-                                                                                mantissaBitOffset::Ptr{Cint})::cusolverStatus_t
+    @gcsafe_ccall libcusolver.cusolverDnGetFixedPointEmulationMantissaBitOffset(
+        handle::cusolverDnHandle_t,
+        mantissaBitOffset::Ptr{Cint}
+    )::cusolverStatus_t
 end
 
 @checked function cusolverDnSetEmulationSpecialValuesSupport(handle, mask)
     initialize_context()
-    @gcsafe_ccall libcusolver.cusolverDnSetEmulationSpecialValuesSupport(handle::cusolverDnHandle_t,
-                                                                         mask::cudaEmulationSpecialValuesSupport_t)::cusolverStatus_t
+    @gcsafe_ccall libcusolver.cusolverDnSetEmulationSpecialValuesSupport(
+        handle::cusolverDnHandle_t,
+        mask::cudaEmulationSpecialValuesSupport_t
+    )::cusolverStatus_t
 end
 
 @checked function cusolverDnGetEmulationSpecialValuesSupport(handle, mask)
     initialize_context()
-    @gcsafe_ccall libcusolver.cusolverDnGetEmulationSpecialValuesSupport(handle::cusolverDnHandle_t,
-                                                                         mask::Ptr{cudaEmulationSpecialValuesSupport_t})::cusolverStatus_t
+    @gcsafe_ccall libcusolver.cusolverDnGetEmulationSpecialValuesSupport(
+        handle::cusolverDnHandle_t,
+        mask::Ptr{cudaEmulationSpecialValuesSupport_t}
+    )::cusolverStatus_t
 end
 
 @checked function cusolverDnIRSParamsCreate(params_ptr)
@@ -3520,98 +3544,114 @@ end
                                                info::CuPtr{Cint})::cusolverStatus_t
 end
 
-@checked function cusolverDnXsygvd_bufferSize(handle, params, itype, jobz, uplo, n,
-                                              dataTypeA, d_A, lda, dataTypeB, d_B, ldb,
-                                              dataTypeW, d_W, computeType,
-                                              workspaceInBytesOnDevice,
-                                              workspaceInBytesOnHost)
-    initialize_context()
-    @gcsafe_ccall libcusolver.cusolverDnXsygvd_bufferSize(handle::cusolverDnHandle_t,
-                                                          params::cusolverDnParams_t,
-                                                          itype::cusolverEigType_t,
-                                                          jobz::cusolverEigMode_t,
-                                                          uplo::cublasFillMode_t, n::Int64,
-                                                          dataTypeA::cudaDataType,
-                                                          d_A::Ptr{Cvoid}, lda::Int64,
-                                                          dataTypeB::cudaDataType,
-                                                          d_B::Ptr{Cvoid}, ldb::Int64,
-                                                          dataTypeW::cudaDataType,
-                                                          d_W::Ptr{Cvoid},
-                                                          computeType::cudaDataType,
-                                                          workspaceInBytesOnDevice::Ptr{Csize_t},
-                                                          workspaceInBytesOnHost::Ptr{Csize_t})::cusolverStatus_t
-end
-
-@checked function cusolverDnXsygvd(handle, params, itype, jobz, uplo, n, dataTypeA, d_A,
-                                   lda, dataTypeB, d_B, ldb, dataTypeW, d_W, computeType,
-                                   bufferOnDevice, workspaceInBytesOnDevice, bufferOnHost,
-                                   workspaceInBytesOnHost, d_info)
-    initialize_context()
-    @gcsafe_ccall libcusolver.cusolverDnXsygvd(handle::cusolverDnHandle_t,
-                                               params::cusolverDnParams_t,
-                                               itype::cusolverEigType_t,
-                                               jobz::cusolverEigMode_t,
-                                               uplo::cublasFillMode_t, n::Int64,
-                                               dataTypeA::cudaDataType, d_A::Ptr{Cvoid},
-                                               lda::Int64, dataTypeB::cudaDataType,
-                                               d_B::Ptr{Cvoid}, ldb::Int64,
-                                               dataTypeW::cudaDataType, d_W::Ptr{Cvoid},
-                                               computeType::cudaDataType,
-                                               bufferOnDevice::Ptr{Cvoid},
-                                               workspaceInBytesOnDevice::Csize_t,
-                                               bufferOnHost::Ptr{Cvoid},
-                                               workspaceInBytesOnHost::Csize_t,
-                                               d_info::Ptr{Cint})::cusolverStatus_t
-end
-
-@checked function cusolverDnXsygvdx_bufferSize(handle, params, itype, jobz, uplo, n,
-                                               dataTypeA, d_A, lda, dataTypeB, d_B, ldb, vl,
-                                               vu, il, iu, meig, dataTypeW, d_W,
-                                               computeType, workspaceInBytesOnDevice,
-                                               workspaceInBytesOnHost)
-    initialize_context()
-    @gcsafe_ccall libcusolver.cusolverDnXsygvdx_bufferSize(handle::cusolverDnHandle_t,
-                                                           params::cusolverDnParams_t,
-                                                           itype::cusolverEigType_t,
-                                                           jobz::cusolverEigMode_t,
-                                                           uplo::cublasFillMode_t, n::Int64,
-                                                           dataTypeA::cudaDataType,
-                                                           d_A::Ptr{Cvoid}, lda::Int64,
-                                                           dataTypeB::cudaDataType,
-                                                           d_B::Ptr{Cvoid}, ldb::Int64,
-                                                           vl::Ptr{Cvoid}, vu::Ptr{Cvoid},
-                                                           il::Int64, iu::Int64,
-                                                           meig::Ptr{Int64},
-                                                           dataTypeW::cudaDataType,
-                                                           d_W::Ptr{Cvoid},
-                                                           computeType::cudaDataType,
-                                                           workspaceInBytesOnDevice::Ptr{Csize_t},
-                                                           workspaceInBytesOnHost::Ptr{Csize_t})::cusolverStatus_t
-end
-
-@checked function cusolverDnXsygvdx(handle, params, itype, jobz, range, uplo, n, dataTypeA,
-                                    d_A, lda, dataTypeB, d_B, ldb, vl, vu, il, iu, meig,
-                                    dataTypeW, d_W, computeType, bufferOnDevice,
-                                    workspaceInBytesOnDevice, bufferOnHost,
-                                    workspaceInBytesOnHost, d_info)
-    initialize_context()
-    @gcsafe_ccall libcusolver.cusolverDnXsygvdx(handle::cusolverDnHandle_t,
-                                                params::cusolverDnParams_t,
-                                                itype::cusolverEigType_t,
-                                                jobz::cusolverEigMode_t,
-                                                range::cusolverEigRange_t,
-                                                uplo::cublasFillMode_t, n::Int64,
-                                                dataTypeA::cudaDataType, d_A::Ptr{Cvoid},
-                                                lda::Int64, dataTypeB::cudaDataType,
-                                                d_B::Ptr{Cvoid}, ldb::Int64, vl::Ptr{Cvoid},
-                                                vu::Ptr{Cvoid}, il::Int64, iu::Int64,
-                                                meig::Ptr{Int64}, dataTypeW::cudaDataType,
-                                                d_W::Ptr{Cvoid}, computeType::cudaDataType,
-                                                bufferOnDevice::Ptr{Cvoid},
-                                                workspaceInBytesOnDevice::Csize_t,
-                                                bufferOnHost::Ptr{Cvoid},
-                                                workspaceInBytesOnHost::Csize_t,
-                                                d_info::Ptr{Cint})::cusolverStatus_t
+@checked function cusolverDnXsygvd_bufferSize(
+        handle, params, itype, jobz, uplo, n,
+        dataTypeA, d_A, lda, dataTypeB, d_B, ldb,
+        dataTypeW, d_W, computeType,
+        workspaceInBytesOnDevice,
+        workspaceInBytesOnHost
+    )
+    initialize_context()
+    @gcsafe_ccall libcusolver.cusolverDnXsygvd_bufferSize(
+        handle::cusolverDnHandle_t,
+        params::cusolverDnParams_t,
+        itype::cusolverEigType_t,
+        jobz::cusolverEigMode_t,
+        uplo::cublasFillMode_t, n::Int64,
+        dataTypeA::cudaDataType,
+        d_A::Ptr{Cvoid}, lda::Int64,
+        dataTypeB::cudaDataType,
+        d_B::Ptr{Cvoid}, ldb::Int64,
+        dataTypeW::cudaDataType,
+        d_W::Ptr{Cvoid},
+        computeType::cudaDataType,
+        workspaceInBytesOnDevice::Ptr{Csize_t},
+        workspaceInBytesOnHost::Ptr{Csize_t}
+    )::cusolverStatus_t
+end
+
+@checked function cusolverDnXsygvd(
+        handle, params, itype, jobz, uplo, n, dataTypeA, d_A,
+        lda, dataTypeB, d_B, ldb, dataTypeW, d_W, computeType,
+        bufferOnDevice, workspaceInBytesOnDevice, bufferOnHost,
+        workspaceInBytesOnHost, d_info
+    )
+    initialize_context()
+    @gcsafe_ccall libcusolver.cusolverDnXsygvd(
+        handle::cusolverDnHandle_t,
+        params::cusolverDnParams_t,
+        itype::cusolverEigType_t,
+        jobz::cusolverEigMode_t,
+        uplo::cublasFillMode_t, n::Int64,
+        dataTypeA::cudaDataType, d_A::Ptr{Cvoid},
+        lda::Int64, dataTypeB::cudaDataType,
+        d_B::Ptr{Cvoid}, ldb::Int64,
+        dataTypeW::cudaDataType, d_W::Ptr{Cvoid},
+        computeType::cudaDataType,
+        bufferOnDevice::Ptr{Cvoid},
+        workspaceInBytesOnDevice::Csize_t,
+        bufferOnHost::Ptr{Cvoid},
+        workspaceInBytesOnHost::Csize_t,
+        d_info::Ptr{Cint}
+    )::cusolverStatus_t
+end
+
+@checked function cusolverDnXsygvdx_bufferSize(
+        handle, params, itype, jobz, uplo, n,
+        dataTypeA, d_A, lda, dataTypeB, d_B, ldb, vl,
+        vu, il, iu, meig, dataTypeW, d_W,
+        computeType, workspaceInBytesOnDevice,
+        workspaceInBytesOnHost
+    )
+    initialize_context()
+    @gcsafe_ccall libcusolver.cusolverDnXsygvdx_bufferSize(
+        handle::cusolverDnHandle_t,
+        params::cusolverDnParams_t,
+        itype::cusolverEigType_t,
+        jobz::cusolverEigMode_t,
+        uplo::cublasFillMode_t, n::Int64,
+        dataTypeA::cudaDataType,
+        d_A::Ptr{Cvoid}, lda::Int64,
+        dataTypeB::cudaDataType,
+        d_B::Ptr{Cvoid}, ldb::Int64,
+        vl::Ptr{Cvoid}, vu::Ptr{Cvoid},
+        il::Int64, iu::Int64,
+        meig::Ptr{Int64},
+        dataTypeW::cudaDataType,
+        d_W::Ptr{Cvoid},
+        computeType::cudaDataType,
+        workspaceInBytesOnDevice::Ptr{Csize_t},
+        workspaceInBytesOnHost::Ptr{Csize_t}
+    )::cusolverStatus_t
+end
+
+@checked function cusolverDnXsygvdx(
+        handle, params, itype, jobz, range, uplo, n, dataTypeA,
+        d_A, lda, dataTypeB, d_B, ldb, vl, vu, il, iu, meig,
+        dataTypeW, d_W, computeType, bufferOnDevice,
+        workspaceInBytesOnDevice, bufferOnHost,
+        workspaceInBytesOnHost, d_info
+    )
+    initialize_context()
+    @gcsafe_ccall libcusolver.cusolverDnXsygvdx(
+        handle::cusolverDnHandle_t,
+        params::cusolverDnParams_t,
+        itype::cusolverEigType_t,
+        jobz::cusolverEigMode_t,
+        range::cusolverEigRange_t,
+        uplo::cublasFillMode_t, n::Int64,
+        dataTypeA::cudaDataType, d_A::Ptr{Cvoid},
+        lda::Int64, dataTypeB::cudaDataType,
+        d_B::Ptr{Cvoid}, ldb::Int64, vl::Ptr{Cvoid},
+        vu::Ptr{Cvoid}, il::Int64, iu::Int64,
+        meig::Ptr{Int64}, dataTypeW::cudaDataType,
+        d_W::Ptr{Cvoid}, computeType::cudaDataType,
+        bufferOnDevice::Ptr{Cvoid},
+        workspaceInBytesOnDevice::Csize_t,
+        bufferOnHost::Ptr{Cvoid},
+        workspaceInBytesOnHost::Csize_t,
+        d_info::Ptr{Cint}
+    )::cusolverStatus_t
 end
 
 @checked function cusolverDnCreateSyevjInfo(info)
diff --git a/lib/nvml/libnvml.jl b/lib/nvml/libnvml.jl
index 1ea71656d..6d49114e2 100644
--- a/lib/nvml/libnvml.jl
+++ b/lib/nvml/libnvml.jl
@@ -1754,7 +1754,7 @@ struct nvmlVgpuSchedulerLogInfo_v2_t
     avgFactor::Cuint
     timeslice::Cuint
     entriesCount::Cuint
-    logEntries::NTuple{200,nvmlVgpuSchedulerLogEntry_v2_t}
+    logEntries::NTuple{200, nvmlVgpuSchedulerLogEntry_v2_t}
 end
 
 struct nvmlVgpuSchedulerState_v2_t
@@ -4158,38 +4158,50 @@ end
 
 @checked function nvmlDeviceGetVgpuSchedulerState_v2(device, pSchedulerStateInfo)
     initialize_context()
-    @gcsafe_ccall libnvml.nvmlDeviceGetVgpuSchedulerState_v2(device::nvmlDevice_t,
-                                                             pSchedulerStateInfo::Ptr{nvmlVgpuSchedulerStateInfo_v2_t})::nvmlReturn_t
+    @gcsafe_ccall libnvml.nvmlDeviceGetVgpuSchedulerState_v2(
+        device::nvmlDevice_t,
+        pSchedulerStateInfo::Ptr{nvmlVgpuSchedulerStateInfo_v2_t}
+    )::nvmlReturn_t
 end
 
 @checked function nvmlGpuInstanceGetVgpuSchedulerState_v2(gpuInstance, pSchedulerStateInfo)
     initialize_context()
-    @gcsafe_ccall libnvml.nvmlGpuInstanceGetVgpuSchedulerState_v2(gpuInstance::nvmlGpuInstance_t,
-                                                                  pSchedulerStateInfo::Ptr{nvmlVgpuSchedulerStateInfo_v2_t})::nvmlReturn_t
+    @gcsafe_ccall libnvml.nvmlGpuInstanceGetVgpuSchedulerState_v2(
+        gpuInstance::nvmlGpuInstance_t,
+        pSchedulerStateInfo::Ptr{nvmlVgpuSchedulerStateInfo_v2_t}
+    )::nvmlReturn_t
 end
 
 @checked function nvmlDeviceGetVgpuSchedulerLog_v2(device, pSchedulerLogInfo)
     initialize_context()
-    @gcsafe_ccall libnvml.nvmlDeviceGetVgpuSchedulerLog_v2(device::nvmlDevice_t,
-                                                           pSchedulerLogInfo::Ptr{nvmlVgpuSchedulerLogInfo_v2_t})::nvmlReturn_t
+    @gcsafe_ccall libnvml.nvmlDeviceGetVgpuSchedulerLog_v2(
+        device::nvmlDevice_t,
+        pSchedulerLogInfo::Ptr{nvmlVgpuSchedulerLogInfo_v2_t}
+    )::nvmlReturn_t
 end
 
 @checked function nvmlGpuInstanceGetVgpuSchedulerLog_v2(gpuInstance, pSchedulerLogInfo)
     initialize_context()
-    @gcsafe_ccall libnvml.nvmlGpuInstanceGetVgpuSchedulerLog_v2(gpuInstance::nvmlGpuInstance_t,
-                                                                pSchedulerLogInfo::Ptr{nvmlVgpuSchedulerLogInfo_v2_t})::nvmlReturn_t
+    @gcsafe_ccall libnvml.nvmlGpuInstanceGetVgpuSchedulerLog_v2(
+        gpuInstance::nvmlGpuInstance_t,
+        pSchedulerLogInfo::Ptr{nvmlVgpuSchedulerLogInfo_v2_t}
+    )::nvmlReturn_t
 end
 
 @checked function nvmlDeviceSetVgpuSchedulerState_v2(device, pSchedulerState)
     initialize_context()
-    @gcsafe_ccall libnvml.nvmlDeviceSetVgpuSchedulerState_v2(device::nvmlDevice_t,
-                                                             pSchedulerState::Ptr{nvmlVgpuSchedulerState_v2_t})::nvmlReturn_t
+    @gcsafe_ccall libnvml.nvmlDeviceSetVgpuSchedulerState_v2(
+        device::nvmlDevice_t,
+        pSchedulerState::Ptr{nvmlVgpuSchedulerState_v2_t}
+    )::nvmlReturn_t
 end
 
 @checked function nvmlGpuInstanceSetVgpuSchedulerState_v2(gpuInstance, pSchedulerState)
     initialize_context()
-    @gcsafe_ccall libnvml.nvmlGpuInstanceSetVgpuSchedulerState_v2(gpuInstance::nvmlGpuInstance_t,
-                                                                  pSchedulerState::Ptr{nvmlVgpuSchedulerState_v2_t})::nvmlReturn_t
+    @gcsafe_ccall libnvml.nvmlGpuInstanceSetVgpuSchedulerState_v2(
+        gpuInstance::nvmlGpuInstance_t,
+        pSchedulerState::Ptr{nvmlVgpuSchedulerState_v2_t}
+    )::nvmlReturn_t
 end
 
 struct nvmlVgpuVersion_st
@@ -4302,8 +4314,10 @@ end
 
 @checked function nvmlDeviceGetVgpuSchedulerCapabilities(device, pCapabilities)
     initialize_context()
-    @gcsafe_ccall libnvml.nvmlDeviceGetVgpuSchedulerCapabilities(device::nvmlDevice_t,
-                                                                 pCapabilities::Ptr{nvmlVgpuSchedulerCapabilities_t})::nvmlReturn_t
+    @gcsafe_ccall libnvml.nvmlDeviceGetVgpuSchedulerCapabilities(
+        device::nvmlDevice_t,
+        pCapabilities::Ptr{nvmlVgpuSchedulerCapabilities_t}
+    )::nvmlReturn_t
 end
 
 @checked function nvmlGetVgpuVersion(supported, current)
@@ -5169,7 +5183,7 @@ struct nvmlGpmMetricsGet_t
     numMetrics::Cuint
     sample1::nvmlGpmSample_t
     sample2::nvmlGpmSample_t
-    metrics::NTuple{333,nvmlGpmMetric_t}
+    metrics::NTuple{333, nvmlGpmMetric_t}
 end
 
 struct nvmlGpmSupport_t
diff --git a/res/wrap/libcupti_prologue.jl b/res/wrap/libcupti_prologue.jl
index 172e3f18a..2becb80b2 100644
--- a/res/wrap/libcupti_prologue.jl
+++ b/res/wrap/libcupti_prologue.jl
@@ -40,7 +40,7 @@ end
 macro CUPTI_ACTIVITY_STRUCT_SIZE(type, lastfield)
     type = esc(type)
     lastfield = QuoteNode(lastfield)
-    quote
+    return quote
         $struct_size($type, $lastfield)
     end
 end

@codecov

codecov Bot commented Mar 12, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 89.48%. Comparing base (5472295) to head (05694f6).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #3053   +/-   ##
=======================================
  Coverage   89.48%   89.48%           
=======================================
  Files         148      148           
  Lines       13043    13043           
=======================================
  Hits        11671    11671           
  Misses       1372     1372           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CUDA.jl Benchmarks

Details
Benchmark suite Current: 05694f6 Previous: 5472295 Ratio
latency/precompile 44878102916 ns 43893707632 ns 1.02
latency/ttfp 12758490692 ns 12909648613 ns 0.99
latency/import 3524041496 ns 3506340040 ns 1.01
integration/volumerhs 9439008.5 ns 9441122 ns 1.00
integration/byval/slices=1 146055 ns 145704 ns 1.00
integration/byval/slices=3 423122 ns 422873 ns 1.00
integration/byval/reference 144023 ns 143887 ns 1.00
integration/byval/slices=2 284786 ns 284218 ns 1.00
integration/cudadevrt 102763 ns 102447 ns 1.00
kernel/indexing 13414 ns 13397 ns 1.00
kernel/indexing_checked 14393 ns 14106 ns 1.02
kernel/occupancy 703.9444444444445 ns 642.1951219512196 ns 1.10
kernel/launch 2187.6666666666665 ns 2182.9444444444443 ns 1.00
kernel/rand 14604 ns 15509 ns 0.94
array/reverse/1d 18961 ns 19015.5 ns 1.00
array/reverse/2dL_inplace 66426.5 ns 66294 ns 1.00
array/reverse/1dL 69544 ns 69264 ns 1.00
array/reverse/2d 21634 ns 21406 ns 1.01
array/reverse/1d_inplace 10667.666666666666 ns 10627.666666666666 ns 1.00
array/reverse/2d_inplace 11869 ns 10996 ns 1.08
array/reverse/2dL 73446 ns 73336 ns 1.00
array/reverse/1dL_inplace 66416 ns 66391 ns 1.00
array/copy 19077 ns 18444 ns 1.03
array/iteration/findall/int 149537 ns 145423 ns 1.03
array/iteration/findall/bool 132658.5 ns 130731 ns 1.01
array/iteration/findfirst/int 85545 ns 84638 ns 1.01
array/iteration/findfirst/bool 83890.5 ns 81595 ns 1.03
array/iteration/scalar 67628 ns 67259 ns 1.01
array/iteration/logical 203835.5 ns 200755.5 ns 1.02
array/iteration/findmin/1d 89373.5 ns 86165.5 ns 1.04
array/iteration/findmin/2d 117357 ns 117304.5 ns 1.00
array/reductions/reduce/Int64/1d 43944 ns 39371 ns 1.12
array/reductions/reduce/Int64/dims=1 43934 ns 44367 ns 0.99
array/reductions/reduce/Int64/dims=2 60143 ns 59429 ns 1.01
array/reductions/reduce/Int64/dims=1L 87775 ns 87550 ns 1.00
array/reductions/reduce/Int64/dims=2L 85497 ns 85113.5 ns 1.00
array/reductions/reduce/Float32/1d 35344 ns 34268 ns 1.03
array/reductions/reduce/Float32/dims=1 40458 ns 48865.5 ns 0.83
array/reductions/reduce/Float32/dims=2 57602 ns 56196 ns 1.03
array/reductions/reduce/Float32/dims=1L 52299 ns 51777 ns 1.01
array/reductions/reduce/Float32/dims=2L 70784 ns 69644 ns 1.02
array/reductions/mapreduce/Int64/1d 43556 ns 39157 ns 1.11
array/reductions/mapreduce/Int64/dims=1 45540 ns 51282.5 ns 0.89
array/reductions/mapreduce/Int64/dims=2 59987 ns 59191 ns 1.01
array/reductions/mapreduce/Int64/dims=1L 87840 ns 87450 ns 1.00
array/reductions/mapreduce/Int64/dims=2L 85605 ns 85108.5 ns 1.01
array/reductions/mapreduce/Float32/1d 35372 ns 33989 ns 1.04
array/reductions/mapreduce/Float32/dims=1 50072 ns 48728 ns 1.03
array/reductions/mapreduce/Float32/dims=2 57281 ns 56178 ns 1.02
array/reductions/mapreduce/Float32/dims=1L 51971 ns 51465 ns 1.01
array/reductions/mapreduce/Float32/dims=2L 70070 ns 68877 ns 1.02
array/broadcast 20527.5 ns 20339 ns 1.01
array/copyto!/gpu_to_gpu 11496 ns 10634.166666666668 ns 1.08
array/copyto!/cpu_to_gpu 215766.5 ns 215032 ns 1.00
array/copyto!/gpu_to_cpu 285003 ns 283345.5 ns 1.01
array/accumulate/Int64/1d 119468 ns 118179 ns 1.01
array/accumulate/Int64/dims=1 80729 ns 79470 ns 1.02
array/accumulate/Int64/dims=2 156842 ns 155613 ns 1.01
array/accumulate/Int64/dims=1L 1706713 ns 1694158 ns 1.01
array/accumulate/Int64/dims=2L 962085.5 ns 960865 ns 1.00
array/accumulate/Float32/1d 101524 ns 100641.5 ns 1.01
array/accumulate/Float32/dims=1 76994.5 ns 76173 ns 1.01
array/accumulate/Float32/dims=2 144324 ns 144217.5 ns 1.00
array/accumulate/Float32/dims=1L 1585843 ns 1584446 ns 1.00
array/accumulate/Float32/dims=2L 657976 ns 656699 ns 1.00
array/construct 1324.8 ns 1306.3 ns 1.01
array/random/randn/Float32 39376 ns 41156 ns 0.96
array/random/randn!/Float32 31914 ns 30029 ns 1.06
array/random/rand!/Int64 34666 ns 34605 ns 1.00
array/random/rand!/Float32 8638.333333333334 ns 8182.25 ns 1.06
array/random/rand/Int64 37468 ns 32316 ns 1.16
array/random/rand/Float32 13268 ns 12466 ns 1.06
array/permutedims/4d 52218.5 ns 50943 ns 1.03
array/permutedims/2d 52889 ns 52373 ns 1.01
array/permutedims/3d 53701 ns 52694 ns 1.02
array/sorting/1d 2736242 ns 2734863 ns 1.00
array/sorting/by 3305275 ns 3304190.5 ns 1.00
array/sorting/2d 1076755 ns 1068173 ns 1.01
cuda/synchronization/stream/auto 1033.2 ns 1039.7692307692307 ns 0.99
cuda/synchronization/stream/nonblocking 8173.5 ns 7691.4 ns 1.06
cuda/synchronization/stream/blocking 823.1547619047619 ns 818.6910112359551 ns 1.01
cuda/synchronization/context/auto 1169.9 ns 1142.4 ns 1.02
cuda/synchronization/context/nonblocking 7652 ns 7606.8 ns 1.01
cuda/synchronization/context/blocking 919.2857142857143 ns 888.9473684210526 ns 1.03

This comment was automatically generated by workflow using github-action-benchmark.

@maleadt
maleadt merged commit 74b9f6b into master Mar 12, 2026
3 checks passed
@maleadt
maleadt deleted the tb/cuda_13.2 branch March 12, 2026 13:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant