@@ -154,61 +154,61 @@ static int ft_cuda_pointer_set_attribute(void *buf)
154154static int ft_cuda_detect_memory_support (void )
155155{
156156#if HAVE_CUDA_DMABUF
157- CUresult cuda_ret ;
158- CUdevice dev ;
159- int cc_major = 0 , cc_minor = 0 ;
160- int dma_buf_attr = 0 ;
161- int gdr_attr = 0 ;
162- cuda_memory_support = FT_CUDA_NOT_INITIALIZED ;
157+ CUresult cuda_ret ;
158+ CUdevice dev ;
159+ int cc_major = 0 , cc_minor = 0 ;
160+ int dma_buf_attr = 0 ;
161+ int gdr_attr = 0 ;
162+ cuda_memory_support = FT_CUDA_NOT_INITIALIZED ;
163+
164+ cuda_ret = cuda_ops .cuDeviceGet (& dev , 0 );
165+ if (cuda_ret != CUDA_SUCCESS ) {
166+ ft_cuda_driver_api_print_error (cuda_ret , "cuDeviceGet" );
167+ cuda_memory_support = FT_CUDA_NOT_SUPPORTED ;
168+ return - FI_EIO ;
169+ }
170+
171+ cuda_ret = cuda_ops .cuDeviceGetAttribute (& cc_major ,
172+ CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR , dev );
173+ if (cuda_ret != CUDA_SUCCESS ) {
174+ ft_cuda_driver_api_print_error (cuda_ret , "cuDeviceGetAttribute(CC_MAJOR)" );
175+ cuda_memory_support = FT_CUDA_NOT_SUPPORTED ;
176+ return - FI_EIO ;
177+ }
163178
164- cuda_ret = cuda_ops .cuDeviceGet (& dev , 0 );
165- if (cuda_ret != CUDA_SUCCESS ) {
166- ft_cuda_driver_api_print_error (cuda_ret , "cuDeviceGet" );
167- cuda_memory_support = FT_CUDA_NOT_SUPPORTED ;
168- return - FI_EIO ;
169- }
170-
171- cuda_ret = cuda_ops .cuDeviceGetAttribute (& cc_major ,
172- CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR , dev );
173- if (cuda_ret != CUDA_SUCCESS ) {
174- ft_cuda_driver_api_print_error (cuda_ret , "cuDeviceGetAttribute(CC_MAJOR)" );
175- cuda_memory_support = FT_CUDA_NOT_SUPPORTED ;
176- return - FI_EIO ;
177- }
178-
179- cuda_ret = cuda_ops .cuDeviceGetAttribute (& cc_minor ,
180- CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR , dev );
181- if (cuda_ret != CUDA_SUCCESS ) {
182- ft_cuda_driver_api_print_error (cuda_ret , "cuDeviceGetAttribute(CC_MINOR)" );
183- cuda_memory_support = FT_CUDA_NOT_SUPPORTED ;
184- return - FI_EIO ;
185- }
186-
187- cuda_ret = cuda_ops .cuDeviceGetAttribute (& dma_buf_attr ,
188- CU_DEVICE_ATTRIBUTE_DMA_BUF_SUPPORTED , dev );
189- if (cuda_ret != CUDA_SUCCESS ) {
190- ft_cuda_driver_api_print_error (cuda_ret , "cuDeviceGetAttribute(DMA_BUF_SUPPORTED)" );
191- cuda_memory_support = FT_CUDA_NOT_SUPPORTED ;
192- return - FI_EIO ;
193- }
194-
195- cuda_ret = cuda_ops .cuDeviceGetAttribute (& gdr_attr ,
196- CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED , dev );
197- if (cuda_ret != CUDA_SUCCESS ) {
198- ft_cuda_driver_api_print_error (cuda_ret , "cuDeviceGetAttribute(GPU_DIRECT_RDMA_SUPPORTED)" );
199- cuda_memory_support = FT_CUDA_NOT_SUPPORTED ;
200- return - FI_EIO ;
201- }
202-
203- dmabuf_supported = (dma_buf_attr == 1 );
204-
205- // Blackwell or newer: nv-p2p deprecated
206- if (cc_major >= 10 )
207- gdr_supported = false;
208- else
209- gdr_supported = (gdr_attr == 1 );
210-
211- // Final truth table
179+ cuda_ret = cuda_ops .cuDeviceGetAttribute (& cc_minor ,
180+ CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR , dev );
181+ if (cuda_ret != CUDA_SUCCESS ) {
182+ ft_cuda_driver_api_print_error (cuda_ret , "cuDeviceGetAttribute(CC_MINOR)" );
183+ cuda_memory_support = FT_CUDA_NOT_SUPPORTED ;
184+ return - FI_EIO ;
185+ }
186+
187+ cuda_ret = cuda_ops .cuDeviceGetAttribute (& dma_buf_attr ,
188+ CU_DEVICE_ATTRIBUTE_DMA_BUF_SUPPORTED , dev );
189+ if (cuda_ret != CUDA_SUCCESS ) {
190+ ft_cuda_driver_api_print_error (cuda_ret , "cuDeviceGetAttribute(DMA_BUF_SUPPORTED)" );
191+ cuda_memory_support = FT_CUDA_NOT_SUPPORTED ;
192+ return - FI_EIO ;
193+ }
194+
195+ cuda_ret = cuda_ops .cuDeviceGetAttribute (& gdr_attr ,
196+ CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED , dev );
197+ if (cuda_ret != CUDA_SUCCESS ) {
198+ ft_cuda_driver_api_print_error (cuda_ret , "cuDeviceGetAttribute(GPU_DIRECT_RDMA_SUPPORTED)" );
199+ cuda_memory_support = FT_CUDA_NOT_SUPPORTED ;
200+ return - FI_EIO ;
201+ }
202+
203+ dmabuf_supported = (dma_buf_attr == 1 );
204+
205+ // Blackwell or newer: nv-p2p deprecated
206+ if (cc_major >= 10 )
207+ gdr_supported = false;
208+ else
209+ gdr_supported = (gdr_attr == 1 );
210+
211+ // Final truth table
212212 if (!gdr_supported && !dmabuf_supported )
213213 cuda_memory_support = FT_CUDA_NOT_SUPPORTED ;
214214 else if (gdr_supported && dmabuf_supported )
@@ -218,15 +218,14 @@ static int ft_cuda_detect_memory_support(void)
218218 else
219219 cuda_memory_support = FT_CUDA_GDR_ONLY ;
220220
221- return FI_SUCCESS ;
221+ return FI_SUCCESS ;
222222
223223#else
224- cuda_memory_support = FT_CUDA_NOT_INITIALIZED ;
225- return FI_SUCCESS ;
224+ cuda_memory_support = FT_CUDA_NOT_INITIALIZED ;
225+ return FI_SUCCESS ;
226226#endif
227227}
228228
229-
230229int ft_cuda_init (void )
231230{
232231 cudaError_t cuda_ret ;
@@ -370,8 +369,8 @@ int ft_cuda_init(void)
370369 goto err_dlclose_cuda ;
371370 }
372371
373- ret = ft_cuda_detect_memory_support ();
374- if (ret != FI_SUCCESS ) {
372+ ret = ft_cuda_detect_memory_support ();
373+ if (ret != FI_SUCCESS ) {
375374 goto err_dlclose_cuda ;
376375 }
377376
@@ -595,7 +594,7 @@ int ft_cuda_put_dmabuf_fd(int fd)
595594
596595enum ft_cuda_memory_support ft_cuda_memory_support (void )
597596{
598- return cuda_memory_support ;
597+ return cuda_memory_support ;
599598}
600599
601600#else
0 commit comments