Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for CUDA 12.0. #1742

Merged
merged 21 commits into from
Mar 11, 2023
Merged

Add support for CUDA 12.0. #1742

merged 21 commits into from
Mar 11, 2023

Conversation

maleadt
Copy link
Member

@maleadt maleadt commented Jan 24, 2023

Release notes: https://developer.nvidia.com/blog/cuda-toolkit-12-0-released-for-general-availability/

TODO:

  • CUSPARSE: there's been deprecations, renames, and some actual test failures (maybe @amontoison can take a look)
  • CUDA driver: Graph API changes
  • CUBLAS: do we want to default to the 64-bits APIs? Regardless, we should update the wrappers (adding appropriate CuPtr stuff)
  • CUSPARSE: conversions are broken, Update CUSPARSE for CUDA v12.0 #1744 (comment)

@maleadt maleadt added the dependencies About things we use. label Jan 24, 2023
@amontoison
Copy link
Member

amontoison commented Jan 24, 2023

I can have a look @maleadt, CUDA v12.0 should fix some bugs but it also removed a lot of depreciated routines that we are using.
The failures could be related to them too.
Is it possible to regenerate the wrappers with CUDA Toolkit v"12.0" such that we have a "diff" of the removed functions?

The current error with buildkite is

ERROR: LoadError: UndefVarError: libcudart not defined

and I have a similar error

julia> using CUDA

julia> CUDA.versioninfo()
CUDA runtime 11.8, artifact installation
CUDA driver 11.8
NVIDIA driver 520.61.5

Libraries: 
- CUBLAS: 11.11.3
- CURAND: 10.3.0
- CUFFT: 10.9.0
- CUSOLVER: 11.4.1
- CUSPARSE: 11.7.5
- CUPTI: 18.0.0
- NVML: 11.0.0+520.61.5

Toolchain:
- Julia: 1.8.1
- LLVM: 13.0.1
- PTX ISA support: 3.2, 4.0, 4.1, 4.2, 4.3, 5.0, 6.0, 6.1, 6.3, 6.4, 6.5, 7.0, 7.1, 7.2
- Device capability support: sm_35, sm_37, sm_50, sm_52, sm_53, sm_60, sm_61, sm_62, sm_70, sm_72, sm_75, sm_80, sm_86

8 devices:
  0: Tesla P100-PCIE-12GB (sm_60, 11.910 GiB / 12.000 GiB available)
  1: Tesla P100-PCIE-12GB (sm_60, 11.910 GiB / 12.000 GiB available)
  2: Tesla P100-PCIE-12GB (sm_60, 11.910 GiB / 12.000 GiB available)
  3: Tesla P100-PCIE-12GB (sm_60, 11.910 GiB / 12.000 GiB available)
  4: Tesla P100-PCIE-12GB (sm_60, 11.910 GiB / 12.000 GiB available)
  5: Tesla P100-PCIE-12GB (sm_60, 11.910 GiB / 12.000 GiB available)
  6: Tesla P100-PCIE-12GB (sm_60, 11.910 GiB / 12.000 GiB available)
  7: Tesla P100-PCIE-12GB (sm_60, 11.910 GiB / 12.000 GiB available)

julia> CUDA.set_runtime_version!(v"12.0")
[ Info: Set CUDA Runtime version preference to 12.0, please re-start Julia for this to take effect.
montalex@pandora.gerad.lan:~/git/CUDA.jl (1016)>julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.8.1 (2022-09-06)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia> using CUDA
[ Info: Precompiling CUDA [052768ef-5323-5732-b1bb-66c8b64840ba]
┌ Error: No CUDA Runtime library found. This can have several reasons:
│ * you are using an unsupported platform: CUDA.jl only supports Linux (x86_64, aarch64, ppc64le), and Windows (x86_64).
│   refer to the documentation for instructions on how to use a custom CUDA runtime.
│ * you precompiled CUDA.jl in an environment where the CUDA driver was not available.
│   in that case, you need to specify (during pre compilation) which version of CUDA to use.
│   refer to the documentation for instructions on how to use `CUDA.set_runtime_version!`.
│ * you requested use of a local CUDA toolkit, but not all components were discovered.
│   try running with JULIA_DEBUG=CUDA_Runtime_Discovery for more information.
└ @ CUDA ~/git/CUDA.jl/src/initialization.jl:77

@maleadt
Copy link
Member Author

maleadt commented Jan 25, 2023

I'll update the headers.

┌ Error: No CUDA Runtime library found. This can have several reasons:

That's because your driver is too old, only supporting up to CUDA 11.8, not CUDA 12.0.

EDIT: Oh, I forgot to bump the Project.toml change, maybe that's the reason.

@maleadt maleadt force-pushed the tb/cuda_12 branch 3 times, most recently from a10716f to 0dbc162 Compare January 25, 2023 09:15
@maleadt maleadt marked this pull request as draft January 25, 2023 09:15
@amontoison
Copy link
Member

@maleadt
Do you plan to keep support for CUDA Toolkit 10.2 or not?
I need to keep some old wrappers in libcusparse_deprecated.jl if it's the case.

@maleadt
Copy link
Member Author

maleadt commented Jan 25, 2023

Do you plan to keep support for CUDA Toolkit 10.2 or not?

Now may be a good time to remove that, so yeah feel free to get rid of those.

@maleadt
Copy link
Member Author

maleadt commented Jan 27, 2023

FWIW, now that we've bumped the minimum requirement to CUDA 11.0, these are the driver-level functions that are supported (since it isn't always documented exactly which functions are supported; often deprecated or undocumented ones are silently still available):

cuArray3DCreate
cuArray3DCreate_v2
cuArray3DGetDescriptor
cuArray3DGetDescriptor_v2
cuArrayCreate
cuArrayCreate_v2
cuArrayDestroy
cuArrayGetDescriptor
cuArrayGetDescriptor_v2
cuCtxAttach
cuCtxCreate
cuCtxCreate_v2
cuCtxDestroy
cuCtxDestroy_v2
cuCtxDetach
cuCtxDisablePeerAccess
cuCtxEnablePeerAccess
cuCtxGetApiVersion
cuCtxGetCacheConfig
cuCtxGetCurrent
cuCtxGetDevice
cuCtxGetFlags
cuCtxGetLimit
cuCtxGetSharedMemConfig
cuCtxGetStreamPriorityRange
cuCtxPopCurrent
cuCtxPopCurrent_v2
cuCtxPushCurrent
cuCtxPushCurrent_v2
cuCtxResetPersistingL2Cache
cuCtxSetCacheConfig
cuCtxSetCurrent
cuCtxSetLimit
cuCtxSetSharedMemConfig
cuCtxSynchronize
cudbgApiAttach
cudbgApiClientPid
cudbgApiClientRevision
cudbgApiDetach
cudbgApiInit
cudbgAttachHandlerAvailable
cudbgDebuggerInitialized
cudbgDetachSuspendedDevicesMask
cudbgEnableIntegratedMemcheck
cudbgEnableLaunchBlocking
cudbgEnablePreemptionDebugging
cudbgGetAPI
cudbgGetAPIVersion
cudbgInjectionPath
cudbgIpcFlag
cudbgMain
cudbgReportDriverApiError
cudbgReportDriverApiErrorFlags
cudbgReportDriverInternalError
cudbgReportedDriverApiErrorCode
cudbgReportedDriverApiErrorFuncNameAddr
cudbgReportedDriverApiErrorFuncNameSize
cudbgReportedDriverInternalErrorCode
cudbgResumeForAttachDetach
cudbgRpcEnabled
cudbgSessionId
cuDestroyExternalMemory
cuDestroyExternalSemaphore
cuDeviceCanAccessPeer
cuDeviceComputeCapability
cuDeviceGet
cuDeviceGetAttribute
cuDeviceGetByPCIBusId
cuDeviceGetCount
cuDeviceGetName
cuDeviceGetNvSciSyncAttributes
cuDeviceGetP2PAttribute
cuDeviceGetPCIBusId
cuDeviceGetProperties
cuDeviceGetUuid
cuDevicePrimaryCtxGetState
cuDevicePrimaryCtxRelease
cuDevicePrimaryCtxRelease_v2
cuDevicePrimaryCtxReset
cuDevicePrimaryCtxReset_v2
cuDevicePrimaryCtxRetain
cuDevicePrimaryCtxSetFlags
cuDevicePrimaryCtxSetFlags_v2
cuDeviceTotalMem
cuDeviceTotalMem_v2
cuDriverGetVersion
cuEGLApiInit
cuEGLStreamConsumerAcquireFrame
cuEGLStreamConsumerConnect
cuEGLStreamConsumerConnectWithFlags
cuEGLStreamConsumerDisconnect
cuEGLStreamConsumerReleaseFrame
cuEGLStreamProducerConnect
cuEGLStreamProducerDisconnect
cuEGLStreamProducerPresentFrame
cuEGLStreamProducerReturnFrame
cuEventCreate
cuEventDestroy
cuEventDestroy_v2
cuEventElapsedTime
cuEventQuery
cuEventRecord
cuEventRecord_ptsz
cuEventSynchronize
cuExternalMemoryGetMappedBuffer
cuExternalMemoryGetMappedMipmappedArray
cuFuncGetAttribute
cuFuncGetModule
cuFuncSetAttribute
cuFuncSetBlockShape
cuFuncSetCacheConfig
cuFuncSetSharedMemConfig
cuFuncSetSharedSize
cuGetErrorName
cuGetErrorString
cuGetExportTable
cuGLCtxCreate
cuGLCtxCreate_v2
cuGLGetDevices
cuGLGetDevices_v2
cuGLInit
cuGLMapBufferObject
cuGLMapBufferObject_v2
cuGLMapBufferObject_v2_ptds
cuGLMapBufferObjectAsync
cuGLMapBufferObjectAsync_v2
cuGLMapBufferObjectAsync_v2_ptsz
cuGLRegisterBufferObject
cuGLSetBufferObjectMapFlags
cuGLUnmapBufferObject
cuGLUnmapBufferObjectAsync
cuGLUnregisterBufferObject
cuGraphAddChildGraphNode
cuGraphAddDependencies
cuGraphAddEmptyNode
cuGraphAddHostNode
cuGraphAddKernelNode
cuGraphAddMemcpyNode
cuGraphAddMemsetNode
cuGraphChildGraphNodeGetGraph
cuGraphClone
cuGraphCreate
cuGraphDestroy
cuGraphDestroyNode
cuGraphExecDestroy
cuGraphExecHostNodeSetParams
cuGraphExecKernelNodeSetParams
cuGraphExecMemcpyNodeSetParams
cuGraphExecMemsetNodeSetParams
cuGraphExecUpdate
cuGraphGetEdges
cuGraphGetNodes
cuGraphGetRootNodes
cuGraphHostNodeGetParams
cuGraphHostNodeSetParams
cuGraphicsEGLRegisterImage
cuGraphicsGLRegisterBuffer
cuGraphicsGLRegisterImage
cuGraphicsMapResources
cuGraphicsMapResources_ptsz
cuGraphicsResourceGetMappedEglFrame
cuGraphicsResourceGetMappedMipmappedArray
cuGraphicsResourceGetMappedPointer
cuGraphicsResourceGetMappedPointer_v2
cuGraphicsResourceSetMapFlags
cuGraphicsResourceSetMapFlags_v2
cuGraphicsSubResourceGetMappedArray
cuGraphicsUnmapResources
cuGraphicsUnmapResources_ptsz
cuGraphicsUnregisterResource
cuGraphicsVDPAURegisterOutputSurface
cuGraphicsVDPAURegisterVideoSurface
cuGraphInstantiate
cuGraphInstantiate_v2
cuGraphKernelNodeCopyAttributes
cuGraphKernelNodeGetAttribute
cuGraphKernelNodeGetParams
cuGraphKernelNodeSetAttribute
cuGraphKernelNodeSetParams
cuGraphLaunch
cuGraphLaunch_ptsz
cuGraphMemcpyNodeGetParams
cuGraphMemcpyNodeSetParams
cuGraphMemsetNodeGetParams
cuGraphMemsetNodeSetParams
cuGraphNodeFindInClone
cuGraphNodeGetDependencies
cuGraphNodeGetDependentNodes
cuGraphNodeGetType
cuGraphRemoveDependencies
cuImportExternalMemory
cuImportExternalSemaphore
cuInit
cuIpcCloseMemHandle
cuIpcGetEventHandle
cuIpcGetMemHandle
cuIpcOpenEventHandle
cuIpcOpenMemHandle
cuLaunch
cuLaunchCooperativeKernel
cuLaunchCooperativeKernel_ptsz
cuLaunchCooperativeKernelMultiDevice
cuLaunchGrid
cuLaunchGridAsync
cuLaunchHostFunc
cuLaunchHostFunc_ptsz
cuLaunchKernel
cuLaunchKernel_ptsz
cuLinkAddData
cuLinkAddData_v2
cuLinkAddFile
cuLinkAddFile_v2
cuLinkComplete
cuLinkCreate
cuLinkCreate_v2
cuLinkDestroy
cuMemAddressFree
cuMemAddressReserve
cuMemAdvise
cuMemAlloc
cuMemAlloc_v2
cuMemAllocHost
cuMemAllocHost_v2
cuMemAllocManaged
cuMemAllocPitch
cuMemAllocPitch_v2
cuMemcpy
cuMemcpy_ptds
cuMemcpy2D
cuMemcpy2D_v2
cuMemcpy2D_v2_ptds
cuMemcpy2DAsync
cuMemcpy2DAsync_v2
cuMemcpy2DAsync_v2_ptsz
cuMemcpy2DUnaligned
cuMemcpy2DUnaligned_v2
cuMemcpy2DUnaligned_v2_ptds
cuMemcpy3D
cuMemcpy3D_v2
cuMemcpy3D_v2_ptds
cuMemcpy3DAsync
cuMemcpy3DAsync_v2
cuMemcpy3DAsync_v2_ptsz
cuMemcpy3DPeer
cuMemcpy3DPeer_ptds
cuMemcpy3DPeerAsync
cuMemcpy3DPeerAsync_ptsz
cuMemcpyAsync
cuMemcpyAsync_ptsz
cuMemcpyAtoA
cuMemcpyAtoA_v2
cuMemcpyAtoA_v2_ptds
cuMemcpyAtoD
cuMemcpyAtoD_v2
cuMemcpyAtoD_v2_ptds
cuMemcpyAtoH
cuMemcpyAtoH_v2
cuMemcpyAtoH_v2_ptds
cuMemcpyAtoHAsync
cuMemcpyAtoHAsync_v2
cuMemcpyAtoHAsync_v2_ptsz
cuMemcpyDtoA
cuMemcpyDtoA_v2
cuMemcpyDtoA_v2_ptds
cuMemcpyDtoD
cuMemcpyDtoD_v2
cuMemcpyDtoD_v2_ptds
cuMemcpyDtoDAsync
cuMemcpyDtoDAsync_v2
cuMemcpyDtoDAsync_v2_ptsz
cuMemcpyDtoH
cuMemcpyDtoH_v2
cuMemcpyDtoH_v2_ptds
cuMemcpyDtoHAsync
cuMemcpyDtoHAsync_v2
cuMemcpyDtoHAsync_v2_ptsz
cuMemcpyHtoA
cuMemcpyHtoA_v2
cuMemcpyHtoA_v2_ptds
cuMemcpyHtoAAsync
cuMemcpyHtoAAsync_v2
cuMemcpyHtoAAsync_v2_ptsz
cuMemcpyHtoD
cuMemcpyHtoD_v2
cuMemcpyHtoD_v2_ptds
cuMemcpyHtoDAsync
cuMemcpyHtoDAsync_v2
cuMemcpyHtoDAsync_v2_ptsz
cuMemcpyPeer
cuMemcpyPeer_ptds
cuMemcpyPeerAsync
cuMemcpyPeerAsync_ptsz
cuMemCreate
cuMemExportToShareableHandle
cuMemFree
cuMemFree_v2
cuMemFreeHost
cuMemGetAccess
cuMemGetAddressRange
cuMemGetAddressRange_v2
cuMemGetAllocationGranularity
cuMemGetAllocationPropertiesFromHandle
cuMemGetAttribute
cuMemGetAttribute_v2
cuMemGetInfo
cuMemGetInfo_v2
cuMemHostAlloc
cuMemHostGetDevicePointer
cuMemHostGetDevicePointer_v2
cuMemHostGetFlags
cuMemHostRegister
cuMemHostRegister_v2
cuMemHostUnregister
cuMemImportFromShareableHandle
cuMemMap
cuMemPrefetchAsync
cuMemPrefetchAsync_ptsz
cuMemRangeGetAttribute
cuMemRangeGetAttributes
cuMemRelease
cuMemRetainAllocationHandle
cuMemSetAccess
cuMemsetD16
cuMemsetD16_v2
cuMemsetD16_v2_ptds
cuMemsetD16Async
cuMemsetD16Async_ptsz
cuMemsetD2D16
cuMemsetD2D16_v2
cuMemsetD2D16_v2_ptds
cuMemsetD2D16Async
cuMemsetD2D16Async_ptsz
cuMemsetD2D32
cuMemsetD2D32_v2
cuMemsetD2D32_v2_ptds
cuMemsetD2D32Async
cuMemsetD2D32Async_ptsz
cuMemsetD2D8
cuMemsetD2D8_v2
cuMemsetD2D8_v2_ptds
cuMemsetD2D8Async
cuMemsetD2D8Async_ptsz
cuMemsetD32
cuMemsetD32_v2
cuMemsetD32_v2_ptds
cuMemsetD32Async
cuMemsetD32Async_ptsz
cuMemsetD8
cuMemsetD8_v2
cuMemsetD8_v2_ptds
cuMemsetD8Async
cuMemsetD8Async_ptsz
cuMemUnmap
cuMipmappedArrayCreate
cuMipmappedArrayDestroy
cuMipmappedArrayGetLevel
cuModuleGetFunction
cuModuleGetGlobal
cuModuleGetGlobal_v2
cuModuleGetSurfRef
cuModuleGetTexRef
cuModuleLoad
cuModuleLoadData
cuModuleLoadDataEx
cuModuleLoadFatBinary
cuModuleUnload
cuOccupancyAvailableDynamicSMemPerBlock
cuOccupancyMaxActiveBlocksPerMultiprocessor
cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags
cuOccupancyMaxPotentialBlockSize
cuOccupancyMaxPotentialBlockSizeWithFlags
cuParamSetf
cuParamSeti
cuParamSetSize
cuParamSetTexRef
cuParamSetv
cuPointerGetAttribute
cuPointerGetAttributes
cuPointerSetAttribute
cuProfilerInitialize
cuProfilerStart
cuProfilerStop
cuSignalExternalSemaphoresAsync
cuSignalExternalSemaphoresAsync_ptsz
cuStreamAddCallback
cuStreamAddCallback_ptsz
cuStreamAttachMemAsync
cuStreamAttachMemAsync_ptsz
cuStreamBatchMemOp
cuStreamBatchMemOp_ptsz
cuStreamBeginCapture
cuStreamBeginCapture_ptsz
cuStreamBeginCapture_v2
cuStreamBeginCapture_v2_ptsz
cuStreamCopyAttributes
cuStreamCopyAttributes_ptsz
cuStreamCreate
cuStreamCreateWithPriority
cuStreamDestroy
cuStreamDestroy_v2
cuStreamEndCapture
cuStreamEndCapture_ptsz
cuStreamGetAttribute
cuStreamGetAttribute_ptsz
cuStreamGetCaptureInfo
cuStreamGetCaptureInfo_ptsz
cuStreamGetCtx
cuStreamGetCtx_ptsz
cuStreamGetFlags
cuStreamGetFlags_ptsz
cuStreamGetPriority
cuStreamGetPriority_ptsz
cuStreamIsCapturing
cuStreamIsCapturing_ptsz
cuStreamQuery
cuStreamQuery_ptsz
cuStreamSetAttribute
cuStreamSetAttribute_ptsz
cuStreamSynchronize
cuStreamSynchronize_ptsz
cuStreamWaitEvent
cuStreamWaitEvent_ptsz
cuStreamWaitValue32
cuStreamWaitValue32_ptsz
cuStreamWaitValue64
cuStreamWaitValue64_ptsz
cuStreamWriteValue32
cuStreamWriteValue32_ptsz
cuStreamWriteValue64
cuStreamWriteValue64_ptsz
cuSurfObjectCreate
cuSurfObjectDestroy
cuSurfObjectGetResourceDesc
cuSurfRefGetArray
cuSurfRefSetArray
cuTexObjectCreate
cuTexObjectDestroy
cuTexObjectGetResourceDesc
cuTexObjectGetResourceViewDesc
cuTexObjectGetTextureDesc
cuTexRefCreate
cuTexRefDestroy
cuTexRefGetAddress
cuTexRefGetAddress_v2
cuTexRefGetAddressMode
cuTexRefGetArray
cuTexRefGetBorderColor
cuTexRefGetFilterMode
cuTexRefGetFlags
cuTexRefGetFormat
cuTexRefGetMaxAnisotropy
cuTexRefGetMipmapFilterMode
cuTexRefGetMipmapLevelBias
cuTexRefGetMipmapLevelClamp
cuTexRefGetMipmappedArray
cuTexRefSetAddress
cuTexRefSetAddress_v2
cuTexRefSetAddress2D
cuTexRefSetAddress2D_v2
cuTexRefSetAddress2D_v3
cuTexRefSetAddressMode
cuTexRefSetArray
cuTexRefSetBorderColor
cuTexRefSetFilterMode
cuTexRefSetFlags
cuTexRefSetFormat
cuTexRefSetMaxAnisotropy
cuTexRefSetMipmapFilterMode
cuTexRefSetMipmapLevelBias
cuTexRefSetMipmapLevelClamp
cuTexRefSetMipmappedArray
cuThreadExchangeStreamCaptureMode
cuVDPAUCtxCreate
cuVDPAUCtxCreate_v2
cuVDPAUGetDevice
cuWaitExternalSemaphoresAsync
cuWaitExternalSemaphoresAsync_ptsz

Posting this list because we can't do CI for this

@maleadt maleadt force-pushed the tb/cuda_12 branch 2 times, most recently from ae8d1a9 to d5e36ce Compare January 27, 2023 10:52
@amontoison
Copy link
Member

amontoison commented Jan 29, 2023

@maleadt
I checked the code for the conversions CSC <-> CSR and I don't see any problem from our side.
In libcusparse.jl, I remarked that they updated the algorithms supported by the conversion routines (https://github.com/JuliaGPU/CUDA.jl/pull/1742/files#diff-906e2733876f2d01ca1f413e5e22ef3b0f0284bae945f232db5a9a9cd25333d4L5852-L5855).
I highly suspect that the conversions were modified.
I will send a message to Nvidia next week to see with them if they break something for corner cases like small sparse matrices.

ps: I also added some others fixes for the release v"12.0" on my branch cusparse_v12:
https://github.com/amontoison/CUDA.jl/pull/4/files

@maleadt
Copy link
Member Author

maleadt commented Jan 31, 2023

I also added some others fixes for the release v"12.0" on my branch cusparse_v12:
https://github.com/amontoison/CUDA.jl/pull/4/files

Thanks, I've merged them here.

@maleadt
Copy link
Member Author

maleadt commented Feb 3, 2023

As expected, the upgrade to 12.0 Update 1 didn't help with the CUSPARSE issues.

@maleadt
Copy link
Member Author

maleadt commented Feb 8, 2023

@amontoison Any update from NVIDIA? Worst case, we make the cusparse/broadcast use larger inputs and introduce a test marked as broken on CUDA 12 for the problematic conversions.

@amontoison
Copy link
Member

@amontoison Any update from NVIDIA? Worst case, we make the cusparse/broadcast use larger inputs and introduce a test marked as broken on CUDA 12 for the problematic conversions.

They still try to understand where is the issue.
I propose to wait the end of this week and if we don't have news, we will do what you suggest.
Is it fine for you?

@maleadt
Copy link
Member Author

maleadt commented Feb 8, 2023

Yep, that's OK for me :-)

@amontoison
Copy link
Member

amontoison commented Feb 8, 2023

I will open a PR tonight to fix test/cusparse/interfaces.jl.
I still have some errors.

@maleadt maleadt force-pushed the tb/cuda_12 branch 3 times, most recently from e700005 to 6669cab Compare March 10, 2023 14:20
@maleadt
Copy link
Member Author

maleadt commented Mar 10, 2023

The remaining problem with the cudadrv tests is do cuLinkCreate segfaulting when running with the forward-compatible driver. I've filed this with NVIDIA, but in the mean time upgraded our CI server which should hopefully resolve this too.

@maleadt maleadt force-pushed the tb/cuda_12 branch 4 times, most recently from e03f2e3 to c010c22 Compare March 10, 2023 16:58
@maleadt maleadt marked this pull request as ready for review March 10, 2023 16:58
@maleadt
Copy link
Member Author

maleadt commented Mar 10, 2023

Ahh, so close. @amontoison Looks like some of the conversions regressed on CUDA 11.0.

@amontoison
Copy link
Member

Fixed with #1791 🤞

@maleadt
Copy link
Member Author

maleadt commented Mar 11, 2023

Great! Let's do a final check after merging your other changes, and get this over the finish line. Just in time for CUDA 12.1... 😅

@codecov
Copy link

codecov bot commented Mar 11, 2023

Codecov Report

Patch coverage: 87.87% and project coverage change: -0.61 ⚠️

Comparison is base (1271e11) 60.46% compared to head (51b3dc9) 59.85%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1742      +/-   ##
==========================================
- Coverage   60.46%   59.85%   -0.61%     
==========================================
  Files         148      147       -1     
  Lines       11885    12086     +201     
==========================================
+ Hits         7186     7234      +48     
- Misses       4699     4852     +153     
Impacted Files Coverage Δ
lib/cusparse/CUSPARSE.jl 78.26% <ø> (ø)
lib/cusparse/level3.jl 89.07% <ø> (+14.37%) ⬆️
src/compatibility.jl 96.29% <ø> (ø)
lib/cudadrv/graph.jl 72.46% <25.00%> (-10.87%) ⬇️
src/initialization.jl 54.79% <50.00%> (+1.93%) ⬆️
lib/cusparse/array.jl 67.84% <71.42%> (-0.13%) ⬇️
lib/cusparse/generic.jl 94.79% <88.88%> (+7.33%) ⬆️
lib/cusparse/conversions.jl 93.05% <94.54%> (-0.17%) ⬇️
lib/cusparse/interfaces.jl 93.03% <100.00%> (+21.72%) ⬆️
lib/cusparse/level2.jl 91.07% <100.00%> (+0.08%) ⬆️

... and 28 files with indirect coverage changes

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report in Codecov by Sentry.
📢 Do you have feedback about the report comment? Let us know in this issue.

@maleadt
Copy link
Member Author

maleadt commented Mar 11, 2023

Finally, CI is all green. Thanks for the help @amontoison!

@maleadt maleadt merged commit aca936b into master Mar 11, 2023
@maleadt maleadt deleted the tb/cuda_12 branch March 11, 2023 11:58
simonbyrne pushed a commit to simonbyrne/CUDA.jl that referenced this pull request Nov 13, 2023
Co-authored-by: Alexis Montoison <alexis.montoison@polymtl.ca>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies About things we use.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants