HIP API Support

HIP API Support#

hipFORT API Reference: HIP API Support
HIP API Support

# API Name Variants
1 hipMalloc C binding
2 hipMallocManaged C binding
3 hipHostMalloc C binding
4 hipFree C binding
5 hipHostFree C binding
6 hipMemcpy C binding, assumed_rank
7 hipMemcpyAsync C binding, assumed_rank
8 hipMemcpy2D C binding
9 hipMemcpy2DAsync C binding
10 hipHostRegister C binding
11 hipHostUnregister C binding
12 hipHostGetDevicePointer C binding
13 hipHostGetFlags C binding
14 hipGetDeviceProperties C binding
15 hipCreateChannelDesc C binding
16 hipInit C binding
17 hipDriverGetVersion C binding
18 hipRuntimeGetVersion C binding
19 hipDeviceGet C binding
20 hipDeviceComputeCapability C binding
21 hipDeviceGetName C binding
22 hipDeviceGetUuid C binding
23 hipDeviceGetP2PAttribute C binding
24 hipDeviceGetPCIBusId C binding
25 hipDeviceGetByPCIBusId C binding
26 hipDeviceTotalMem C binding
27 hipDeviceSynchronize C binding
28 hipDeviceReset C binding
29 hipSetDevice C binding
30 hipSetValidDevices C binding
31 hipGetDevice C binding
32 hipGetDeviceCount C binding
33 hipDeviceGetAttribute C binding
34 hipDeviceGetDefaultMemPool C binding
35 hipDeviceSetMemPool C binding
36 hipDeviceGetMemPool C binding
37 hipDeviceGetTexture1DLinearMaxWidth C binding
38 hipDeviceSetCacheConfig C binding
39 hipDeviceGetCacheConfig C binding
40 hipDeviceGetLimit C binding
41 hipDeviceSetLimit C binding
42 hipDeviceGetSharedMemConfig C binding
43 hipGetDeviceFlags C binding
44 hipDeviceSetSharedMemConfig C binding
45 hipSetDeviceFlags C binding
46 hipChooseDeviceR0600 C binding
47 hipExtGetLinkTypeAndHopCount C binding
48 hipIpcGetMemHandle C binding
49 hipIpcOpenMemHandle C binding
50 hipIpcCloseMemHandle C binding
51 hipIpcGetEventHandle C binding
52 hipIpcOpenEventHandle C binding
53 hipFuncSetAttribute C binding
54 hipKernelSetAttribute C binding
55 hipKernelGetFunction C binding
56 hipFuncSetCacheConfig C binding
57 hipFuncSetSharedMemConfig C binding
58 hipGetLastError C binding
59 hipExtGetLastError C binding
60 hipPeekAtLastError C binding
61 hipGetErrorName C binding
62 hipGetErrorString C binding
63 hipDrvGetErrorName C binding
64 hipDrvGetErrorString C binding
65 hipStreamCreate C binding
66 hipStreamCreateWithFlags C binding
67 hipStreamCreateWithPriority C binding
68 hipDeviceGetStreamPriorityRange C binding
69 hipStreamDestroy C binding
70 hipStreamQuery C binding
71 hipStreamSynchronize C binding
72 hipStreamWaitEvent C binding
73 hipStreamGetFlags C binding
74 hipStreamGetId C binding
75 hipStreamGetPriority C binding
76 hipStreamGetDevice C binding
77 hipExtStreamCreateWithCUMask C binding
78 hipExtStreamGetCUMask C binding
79 hipStreamAddCallback C binding
80 hipStreamSetAttribute C binding
81 hipStreamGetAttribute C binding
82 hipStreamCopyAttributes C binding
83 hipStreamWaitValue32 C binding
84 hipStreamWaitValue64 C binding
85 hipStreamWriteValue32 C binding
86 hipStreamWriteValue64 C binding
87 hipStreamBatchMemOp C binding
88 hipGraphAddBatchMemOpNode C binding
89 hipGraphBatchMemOpNodeGetParams C binding
90 hipGraphBatchMemOpNodeSetParams C binding
91 hipGraphExecBatchMemOpNodeSetParams C binding
92 hipEventCreateWithFlags C binding
93 hipEventCreate C binding
94 hipEventRecordWithFlags C binding
95 hipEventRecord C binding
96 hipEventDestroy C binding
97 hipEventSynchronize C binding
98 hipEventElapsedTime C binding
99 hipEventQuery C binding
100 hipPointerSetAttribute C binding
101 hipPointerGetAttributes C binding
102 hipPointerGetAttribute C binding
103 hipDrvPointerGetAttributes C binding
104 hipImportExternalSemaphore C binding
105 hipSignalExternalSemaphoresAsync C binding
106 hipWaitExternalSemaphoresAsync C binding
107 hipDestroyExternalSemaphore C binding
108 hipImportExternalMemory C binding
109 hipExternalMemoryGetMappedBuffer C binding
110 hipDestroyExternalMemory C binding
111 hipExternalMemoryGetMappedMipmappedArray C binding
112 hipExtMallocWithFlags C binding
113 hipMallocHost C binding
114 hipMemAllocHost C binding
115 hipMemPrefetchAsync C binding
116 hipMemPrefetchAsync_v2 C binding
117 hipMemPrefetchBatchAsync C binding
118 hipMemDiscardBatchAsync C binding
119 hipDrvMemDiscardBatchAsync C binding
120 hipMemDiscardAndPrefetchBatchAsync C binding
121 hipDrvMemDiscardAndPrefetchBatchAsync C binding
122 hipMemAdvise C binding
123 hipMemAdvise_v2 C binding
124 hipMemRangeGetAttribute C binding
125 hipMemRangeGetAttributes C binding
126 hipStreamAttachMemAsync C binding
127 hipMallocAsync C binding
128 hipFreeAsync C binding
129 hipMemPoolTrimTo C binding
130 hipMemPoolSetAttribute C binding
131 hipMemPoolGetAttribute C binding
132 hipMemPoolSetAccess C binding
133 hipMemPoolGetAccess C binding
134 hipMemPoolCreate C binding
135 hipMemPoolDestroy C binding
136 hipMallocFromPoolAsync C binding
137 hipMemPoolExportToShareableHandle C binding
138 hipMemPoolImportFromShareableHandle C binding
139 hipMemPoolExportPointer C binding
140 hipMemPoolImportPointer C binding
141 hipMemSetMemPool C binding
142 hipMemGetMemPool C binding
143 hipMemGetDefaultMemPool C binding
144 hipHostAlloc C binding
145 hipMallocPitch C binding
146 hipMemAllocPitch C binding
147 hipFreeHost C binding
148 hipMemcpyWithStream C binding
149 hipMemcpyHtoD C binding
150 hipMemcpyDtoH C binding
151 hipMemcpyDtoD C binding
152 hipMemcpyAtoD C binding
153 hipMemcpyDtoA C binding
154 hipMemcpyAtoA C binding
155 hipMemcpyHtoDAsync C binding
156 hipMemcpyDtoHAsync C binding
157 hipMemcpyDtoDAsync C binding
158 hipMemcpyAtoHAsync C binding
159 hipMemcpyHtoAAsync C binding
160 hipModuleGetGlobal C binding
161 hipGetSymbolAddress C binding
162 hipGetSymbolSize C binding
163 hipGetProcAddress C binding
164 hipMemcpyToSymbol C binding
165 hipMemcpyToSymbolAsync C binding
166 hipMemcpyFromSymbol C binding
167 hipMemcpyFromSymbolAsync C binding
168 hipMemset C binding
169 hipMemsetD8 C binding
170 hipMemsetD8Async C binding
171 hipMemsetD16 C binding
172 hipMemsetD16Async C binding
173 hipMemsetD32 C binding
174 hipMemsetAsync C binding
175 hipMemsetD32Async C binding
176 hipMemset2D C binding
177 hipMemset2DAsync C binding
178 hipMemset3D C binding
179 hipMemset3DAsync C binding
180 hipMemsetD2D8 C binding
181 hipMemsetD2D8Async C binding
182 hipMemsetD2D16 C binding
183 hipMemsetD2D16Async C binding
184 hipMemsetD2D32 C binding
185 hipMemsetD2D32Async C binding
186 hipMemGetInfo C binding
187 hipMemPtrGetInfo C binding
188 hipMallocArray C binding
189 hipArrayCreate C binding
190 hipArrayDestroy C binding
191 hipArray3DCreate C binding
192 hipMalloc3D C binding
193 hipFreeArray C binding
194 hipMalloc3DArray C binding
195 hipArrayGetInfo C binding
196 hipArrayGetDescriptor C binding
197 hipArray3DGetDescriptor C binding
198 hipMemcpyParam2D C binding
199 hipMemcpyParam2DAsync C binding
200 hipMemcpy2DToArray C binding
201 hipMemcpy2DToArrayAsync C binding
202 hipMemcpy2DArrayToArray C binding
203 hipMemcpyToArray C binding
204 hipMemcpyFromArray C binding
205 hipMemcpy2DFromArray C binding
206 hipMemcpy2DFromArrayAsync C binding
207 hipMemcpyAtoH C binding
208 hipMemcpyHtoA C binding
209 hipMemcpy3D C binding
210 hipMemcpy3DAsync C binding
211 hipDrvMemcpy3D C binding
212 hipDrvMemcpy3DAsync C binding
213 hipMemGetAddressRange C binding
214 hipMemcpyBatchAsync C binding
215 hipMemcpy3DBatchAsync C binding
216 hipMemcpy3DPeer C binding
217 hipMemcpy3DPeerAsync C binding
218 hipMipmappedArrayGetMemoryRequirements C binding
219 hipDeviceCanAccessPeer C binding
220 hipDeviceEnablePeerAccess C binding
221 hipDeviceDisablePeerAccess C binding
222 hipMemcpyPeer C binding
223 hipMemcpyPeerAsync C binding
224 hipDeviceGetDevResource C binding
225 hipDevSmResourceSplitByCount C binding
226 hipDevSmResourceSplit C binding
227 hipDevResourceGenerateDesc C binding
228 hipGreenCtxCreate C binding
229 hipExecutionCtxDestroy C binding
230 hipDeviceGetExecutionCtx C binding
231 hipExecutionCtxStreamCreate C binding
232 hipExecutionCtxGetDevResource C binding
233 hipExecutionCtxGetDevice C binding
234 hipExecutionCtxGetId C binding
235 hipStreamGetDevResource C binding
236 hipExecutionCtxRecordEvent C binding
237 hipExecutionCtxSynchronize C binding
238 hipExecutionCtxWaitEvent C binding
239 hipCtxCreate C binding
240 hipCtxDestroy C binding
241 hipCtxPopCurrent C binding
242 hipCtxPushCurrent C binding
243 hipCtxSetCurrent C binding
244 hipCtxGetCurrent C binding
245 hipCtxGetDevice C binding
246 hipCtxGetApiVersion C binding
247 hipCtxGetCacheConfig C binding
248 hipCtxSetCacheConfig C binding
249 hipCtxSetSharedMemConfig C binding
250 hipCtxGetSharedMemConfig C binding
251 hipCtxSynchronize C binding
252 hipCtxGetFlags C binding
253 hipCtxEnablePeerAccess C binding
254 hipCtxDisablePeerAccess C binding
255 hipDevicePrimaryCtxGetState C binding
256 hipDevicePrimaryCtxRelease C binding
257 hipDevicePrimaryCtxRetain C binding
258 hipDevicePrimaryCtxReset C binding
259 hipDevicePrimaryCtxSetFlags C binding
260 hipModuleLoadFatBinary C binding
261 hipModuleLoad C binding
262 hipModuleUnload C binding
263 hipModuleGetFunction C binding
264 hipModuleGetFunctionCount C binding
265 hipKernelGetAttribute C binding
266 hipLibraryLoadData C binding
267 hipLibraryLoadFromFile C binding
268 hipLibraryUnload C binding
269 hipLibraryGetKernel C binding
270 hipLibraryGetKernelCount C binding
271 hipLibraryGetGlobal C binding
272 hipLibraryGetManaged C binding
273 hipLibraryEnumerateKernels C binding
274 hipKernelGetLibrary C binding
275 hipKernelGetName C binding
276 hipKernelGetParamInfo C binding
277 hipFuncGetAttributes C binding
278 hipFuncGetAttribute C binding
279 hipGetFuncBySymbol C binding
280 hipGetDriverEntryPoint C binding
281 hipModuleGetTexRef C binding
282 hipModuleLoadData C binding
283 hipModuleLoadDataEx C binding
284 hipLinkAddData C binding
285 hipLinkAddFile C binding
286 hipLinkComplete C binding
287 hipLinkCreate C binding
288 hipLinkDestroy C binding
289 hipModuleLaunchKernel C binding
290 hipModuleLaunchCooperativeKernel C binding
291 hipModuleLaunchCooperativeKernelMultiDevice C binding
292 hipLaunchCooperativeKernel C binding
293 hipLaunchCooperativeKernelMultiDevice C binding
294 hipExtLaunchMultiKernelMultiDevice C binding
295 hipLaunchKernelExC C binding
296 hipDrvLaunchKernelEx C binding
297 hipMemGetHandleForAddressRange C binding
298 hipModuleOccupancyMaxPotentialBlockSize C binding
299 hipModuleOccupancyMaxPotentialBlockSizeWithFlags C binding
300 hipModuleOccupancyMaxActiveBlocksPerMultiprocessor C binding
301 hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags C binding
302 hipOccupancyMaxActiveBlocksPerMultiprocessor C binding
303 hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags C binding
304 hipOccupancyMaxPotentialBlockSize C binding
305 hipOccupancyAvailableDynamicSMemPerBlock C binding
306 hipOccupancyMaxActiveClusters C binding
307 hipOccupancyMaxPotentialClusterSize C binding
308 hipProfilerStart C binding
309 hipProfilerStop C binding
310 hipConfigureCall C binding
311 hipSetupArgument C binding
312 hipLaunchByPtr C binding
313 hipLaunchKernel C binding
314 hipLaunchHostFunc C binding
315 hipDrvMemcpy2DUnaligned C binding
316 hipExtLaunchKernel C binding
317 hipCreateTextureObject C binding
318 hipDestroyTextureObject C binding
319 hipGetChannelDesc C binding
320 hipGetTextureObjectResourceDesc C binding
321 hipGetTextureObjectResourceViewDesc C binding
322 hipGetTextureObjectTextureDesc C binding
323 hipTexObjectCreate C binding
324 hipTexObjectDestroy C binding
325 hipTexObjectGetResourceDesc C binding
326 hipTexObjectGetResourceViewDesc C binding
327 hipTexObjectGetTextureDesc C binding
328 hipMallocMipmappedArray C binding
329 hipFreeMipmappedArray C binding
330 hipGetMipmappedArrayLevel C binding
331 hipMipmappedArrayCreate C binding
332 hipMipmappedArrayDestroy C binding
333 hipMipmappedArrayGetLevel C binding
334 hipBindTextureToMipmappedArray C binding
335 hipGetTextureReference C binding
336 hipTexRefGetBorderColor C binding
337 hipTexRefGetArray C binding
338 hipTexRefSetAddressMode C binding
339 hipTexRefSetArray C binding
340 hipTexRefSetFilterMode C binding
341 hipTexRefSetFlags C binding
342 hipTexRefSetFormat C binding
343 hipBindTexture C binding
344 hipBindTexture2D C binding
345 hipBindTextureToArray C binding
346 hipGetTextureAlignmentOffset C binding
347 hipUnbindTexture C binding
348 hipTexRefGetAddress C binding
349 hipTexRefGetAddressMode C binding
350 hipTexRefGetFilterMode C binding
351 hipTexRefGetFlags C binding
352 hipTexRefGetFormat C binding
353 hipTexRefGetMaxAnisotropy C binding
354 hipTexRefGetMipmapFilterMode C binding
355 hipTexRefGetMipmapLevelBias C binding
356 hipTexRefGetMipmapLevelClamp C binding
357 hipTexRefGetMipMappedArray C binding
358 hipTexRefSetAddress C binding
359 hipTexRefSetAddress2D C binding
360 hipTexRefSetMaxAnisotropy C binding
361 hipTexRefSetBorderColor C binding
362 hipTexRefSetMipmapFilterMode C binding
363 hipTexRefSetMipmapLevelBias C binding
364 hipTexRefSetMipmapLevelClamp C binding
365 hipTexRefSetMipmappedArray C binding
366 hipApiName C binding
367 hipKernelNameRef C binding
368 hipKernelNameRefByPtr C binding
369 hipGetStreamDeviceId C binding
370 hipStreamBeginCapture C binding
371 hipStreamBeginCaptureToGraph C binding
372 hipStreamEndCapture C binding
373 hipStreamGetCaptureInfo C binding
374 hipStreamGetCaptureInfo_v2 C binding
375 hipStreamIsCapturing C binding
376 hipStreamUpdateCaptureDependencies C binding
377 hipThreadExchangeStreamCaptureMode C binding
378 hipGraphCreate C binding
379 hipGraphDestroy C binding
380 hipGraphAddDependencies C binding
381 hipGraphRemoveDependencies C binding
382 hipGraphGetEdges C binding
383 hipGraphGetNodes C binding
384 hipGraphGetRootNodes C binding
385 hipGraphNodeGetDependencies C binding
386 hipGraphNodeGetDependentNodes C binding
387 hipGraphNodeGetType C binding
388 hipGraphDestroyNode C binding
389 hipGraphClone C binding
390 hipGraphNodeFindInClone C binding
391 hipGraphInstantiate C binding
392 hipGraphInstantiateWithFlags C binding
393 hipGraphInstantiateWithParams C binding
394 hipGraphLaunch C binding
395 hipGraphUpload C binding
396 hipGraphAddNode C binding
397 hipGraphExecGetFlags C binding
398 hipGraphNodeSetParams C binding
399 hipGraphExecNodeSetParams C binding
400 hipGraphExecDestroy C binding
401 hipGraphExecUpdate C binding
402 hipGraphAddKernelNode C binding
403 hipGraphKernelNodeGetParams C binding
404 hipGraphKernelNodeSetParams C binding
405 hipGraphExecKernelNodeSetParams C binding
406 hipDrvGraphAddMemcpyNode C binding
407 hipGraphAddMemcpyNode C binding
408 hipGraphMemcpyNodeGetParams C binding
409 hipGraphMemcpyNodeSetParams C binding
410 hipGraphKernelNodeSetAttribute C binding
411 hipGraphKernelNodeGetAttribute C binding
412 hipGraphExecMemcpyNodeSetParams C binding
413 hipGraphAddMemcpyNode1D C binding
414 hipGraphMemcpyNodeSetParams1D C binding
415 hipGraphExecMemcpyNodeSetParams1D C binding
416 hipGraphAddMemcpyNodeFromSymbol C binding
417 hipGraphMemcpyNodeSetParamsFromSymbol C binding
418 hipGraphExecMemcpyNodeSetParamsFromSymbol C binding
419 hipGraphAddMemcpyNodeToSymbol C binding
420 hipGraphMemcpyNodeSetParamsToSymbol C binding
421 hipGraphExecMemcpyNodeSetParamsToSymbol C binding
422 hipGraphAddMemsetNode C binding
423 hipGraphMemsetNodeGetParams C binding
424 hipGraphMemsetNodeSetParams C binding
425 hipGraphExecMemsetNodeSetParams C binding
426 hipGraphAddHostNode C binding
427 hipGraphHostNodeGetParams C binding
428 hipGraphHostNodeSetParams C binding
429 hipGraphExecHostNodeSetParams C binding
430 hipGraphAddChildGraphNode C binding
431 hipGraphChildGraphNodeGetGraph C binding
432 hipGraphExecChildGraphNodeSetParams C binding
433 hipGraphAddEmptyNode C binding
434 hipGraphAddEventRecordNode C binding
435 hipGraphEventRecordNodeGetEvent C binding
436 hipGraphEventRecordNodeSetEvent C binding
437 hipGraphExecEventRecordNodeSetEvent C binding
438 hipGraphAddEventWaitNode C binding
439 hipGraphEventWaitNodeGetEvent C binding
440 hipGraphEventWaitNodeSetEvent C binding
441 hipGraphExecEventWaitNodeSetEvent C binding
442 hipGraphAddMemAllocNode C binding
443 hipGraphMemAllocNodeGetParams C binding
444 hipGraphAddMemFreeNode C binding
445 hipGraphMemFreeNodeGetParams C binding
446 hipDeviceGetGraphMemAttribute C binding
447 hipDeviceSetGraphMemAttribute C binding
448 hipDeviceGraphMemTrim C binding
449 hipUserObjectCreate C binding
450 hipUserObjectRelease C binding
451 hipUserObjectRetain C binding
452 hipGraphRetainUserObject C binding
453 hipGraphReleaseUserObject C binding
454 hipGraphDebugDotPrint C binding
455 hipGraphKernelNodeCopyAttributes C binding
456 hipGraphNodeSetEnabled C binding
457 hipGraphNodeGetEnabled C binding
458 hipGraphAddExternalSemaphoresWaitNode C binding
459 hipGraphAddExternalSemaphoresSignalNode C binding
460 hipGraphExternalSemaphoresSignalNodeSetParams C binding
461 hipGraphExternalSemaphoresWaitNodeSetParams C binding
462 hipGraphExternalSemaphoresSignalNodeGetParams C binding
463 hipGraphExternalSemaphoresWaitNodeGetParams C binding
464 hipGraphExecExternalSemaphoresSignalNodeSetParams C binding
465 hipGraphExecExternalSemaphoresWaitNodeSetParams C binding
466 hipDrvGraphMemcpyNodeGetParams C binding
467 hipDrvGraphMemcpyNodeSetParams C binding
468 hipDrvGraphAddMemsetNode C binding
469 hipDrvGraphAddMemFreeNode C binding
470 hipDrvGraphExecMemcpyNodeSetParams C binding
471 hipDrvGraphExecMemsetNodeSetParams C binding
472 hipMemAddressFree C binding
473 hipMemAddressReserve C binding
474 hipMemCreate C binding
475 hipMemExportToShareableHandle C binding
476 hipMemGetAccess C binding
477 hipMemGetAllocationGranularity C binding
478 hipMemGetAllocationPropertiesFromHandle C binding
479 hipMemImportFromShareableHandle C binding
480 hipMemMap C binding
481 hipMemMapArrayAsync C binding
482 hipMemRelease C binding
483 hipMemRetainAllocationHandle C binding
484 hipMemSetAccess C binding
485 hipMemUnmap C binding
486 hipGraphicsMapResources C binding
487 hipGraphicsSubResourceGetMappedArray C binding
488 hipGraphicsResourceGetMappedPointer C binding
489 hipGraphicsUnmapResources C binding
490 hipGraphicsUnregisterResource C binding
491 hipCreateSurfaceObject C binding
492 hipDestroySurfaceObject C binding
493 hipExtEnableLogging C binding
494 hipExtDisableLogging C binding
495 hipExtSetLoggingParams C binding
496 hipMemcpy_spt C binding
497 hipMemcpyToSymbol_spt C binding
498 hipMemcpyFromSymbol_spt C binding
499 hipMemcpy2D_spt C binding
500 hipMemcpy2DFromArray_spt C binding
501 hipMemcpy3D_spt C binding
502 hipMemset_spt C binding
503 hipMemsetAsync_spt C binding
504 hipMemset2D_spt C binding
505 hipMemset2DAsync_spt C binding
506 hipMemset3DAsync_spt C binding
507 hipMemset3D_spt C binding
508 hipMemcpyAsync_spt C binding
509 hipMemcpy3DAsync_spt C binding
510 hipMemcpy2DAsync_spt C binding
511 hipMemcpyFromSymbolAsync_spt C binding
512 hipMemcpyToSymbolAsync_spt C binding
513 hipMemcpyFromArray_spt C binding
514 hipMemcpy2DToArray_spt C binding
515 hipMemcpy2DFromArrayAsync_spt C binding
516 hipMemcpy2DToArrayAsync_spt C binding
517 hipStreamQuery_spt C binding
518 hipStreamSynchronize_spt C binding
519 hipStreamGetPriority_spt C binding
520 hipStreamWaitEvent_spt C binding
521 hipStreamGetFlags_spt C binding
522 hipStreamAddCallback_spt C binding
523 hipEventRecord_spt C binding
524 hipLaunchCooperativeKernel_spt C binding
525 hipLaunchKernel_spt C binding
526 hipGraphLaunch_spt C binding
527 hipStreamBeginCapture_spt C binding
528 hipStreamEndCapture_spt C binding
529 hipStreamIsCapturing_spt C binding
530 hipStreamGetCaptureInfo_spt C binding
531 hipStreamGetCaptureInfo_v2_spt C binding
532 hipLaunchHostFunc_spt C binding
533 hipGetDriverEntryPoint_spt C binding
534 hipGetProcAddress_spt C binding
535 hipChooseDevice C binding