CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
95 lines
2.1 KiB
ReStructuredText
95 lines
2.1 KiB
ReStructuredText
.. meta::
|
|
:description: Maps CUDA API syntax to HIP API syntax with an example
|
|
:keywords: AMD, ROCm, HIP, CUDA, syntax, HIP syntax
|
|
|
|
********************************************************************************
|
|
CUDA to HIP API Function Comparison
|
|
********************************************************************************
|
|
|
|
This page introduces key syntax differences between CUDA and HIP APIs with a focused code
|
|
example and comparison table. For a complete list of mappings, visit :ref:`HIPIFY <HIPIFY:index>`.
|
|
|
|
The following CUDA code example illustrates several CUDA API syntaxes.
|
|
|
|
.. literalinclude:: ../tools/example_codes/block_reduction.cu
|
|
:start-after: // [sphinx-start]
|
|
:end-before: // [sphinx-end]
|
|
:language: cpp
|
|
|
|
The following table maps CUDA API functions to corresponding HIP API functions, as demonstrated in the
|
|
preceding code examples.
|
|
|
|
.. list-table::
|
|
:header-rows: 1
|
|
:name: syntax-mapping-table
|
|
|
|
*
|
|
- CUDA
|
|
- HIP
|
|
|
|
*
|
|
- ``#include <cuda_runtime.h>``
|
|
- ``#include <hip/hip_runtime.h>``
|
|
|
|
*
|
|
- ``cudaError_t``
|
|
- ``hipError_t``
|
|
|
|
*
|
|
- ``cudaEvent_t``
|
|
- ``hipEvent_t``
|
|
|
|
*
|
|
- ``cudaStream_t``
|
|
- ``hipStream_t``
|
|
|
|
*
|
|
- ``cudaMalloc``
|
|
- ``hipMalloc``
|
|
|
|
*
|
|
- ``cudaStreamCreateWithFlags``
|
|
- ``hipStreamCreateWithFlags``
|
|
|
|
*
|
|
- ``cudaStreamNonBlocking``
|
|
- ``hipStreamNonBlocking``
|
|
|
|
*
|
|
- ``cudaEventCreate``
|
|
- ``hipEventCreate``
|
|
|
|
*
|
|
- ``cudaMemcpyAsync``
|
|
- ``hipMemcpyAsync``
|
|
|
|
*
|
|
- ``cudaMemcpyHostToDevice``
|
|
- ``hipMemcpyHostToDevice``
|
|
|
|
*
|
|
- ``cudaEventRecord``
|
|
- ``hipEventRecord``
|
|
|
|
*
|
|
- ``cudaEventSynchronize``
|
|
- ``hipEventSynchronize``
|
|
|
|
*
|
|
- ``cudaEventElapsedTime``
|
|
- ``hipEventElapsedTime``
|
|
|
|
*
|
|
- ``cudaFree``
|
|
- ``hipFree``
|
|
|
|
*
|
|
- ``cudaEventDestroy``
|
|
- ``hipEventDestroy``
|
|
|
|
*
|
|
- ``cudaStreamDestroy``
|
|
- ``hipStreamDestroy``
|
|
|
|
In summary, this comparison highlights the primary differences between CUDA and HIP APIs.
|