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
46 lines
1.3 KiB
ReStructuredText
46 lines
1.3 KiB
ReStructuredText
.. meta::
|
|
:description: Tools to automatically translate CUDA source code into portable HIP C++
|
|
:keywords: HIPIFY, ROCm, library, tool, CUDA, CUDA2HIP, hipify-clang, hipify-perl
|
|
|
|
.. _hipify-perl:
|
|
|
|
===================
|
|
Using hipify-perl
|
|
===================
|
|
|
|
``hipify-perl`` is perl-based script that heavily uses regular expressions, that is automatically generated from ``hipify-clang``.
|
|
|
|
**Advantages:**
|
|
|
|
- Ease of use
|
|
- No checks for input source NVIDIA CUDA code for correctness required
|
|
- No dependency on third party tools, including CUDA
|
|
|
|
**Disadvantages:**
|
|
|
|
- Inability or difficulty in implementing the following constructs:
|
|
|
|
- Macros expansion
|
|
- Namespaces:
|
|
|
|
- Redefinition of CUDA entities in user namespaces
|
|
- Using directive
|
|
|
|
- Templates (some cases)
|
|
- Device or host function calls differentiation
|
|
- Correct injection of header files
|
|
- Parsing complicated argument lists
|
|
|
|
Example
|
|
=======
|
|
|
|
For additional details on the following ``hipify-perl`` command options, see :ref:`hipify-perl-cmd`. For more advanced translation needs use ``hipify-clang`` as it is more comprehensive and accurate.
|
|
|
|
Convert a simple CUDA file (``square.cu``) to HIP using ``hipify-perl``:
|
|
|
|
.. code-block:: shell
|
|
|
|
hipify-perl square.cu -o square.cu.hip
|
|
|
|
This command translates the input file and writes the result to ``square.cu.hip``.
|