Skip to end of banner
Go to start of banner

Porting Cuda Codes to HIP

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

HIP: Heterogeneous Interface for Portability is developed by AMD to program on AMD GPUs. 

ROCm environment offers two automated methods for automatically converting CUDA projects to HIP:  Hipify perl a Perl script you can run on the CUDA source code to convert it to HIP format and Hipify clang a preprocessor that operates from within the HIP/ Clang compiler tool chain, converting the code as a preliminary step within the compiler process.

The hipify perl script acts directly on the CUDA source code using a series of simple string replacements. Ex., (sed e ’s/cuda/hip/g’)

To convert a CUDA file (foo.cu , for example) to HIP format, enter the following after loading a ROCm module:

Terminal N. Explaining the use the "hello_jobstep" code from an salloc session (list allocated GPUs)
$ module load rocm/<version>
$ hipify-perl foo.cu > new_foo.cpp


You can then compile the HIP ready . cpp file for the ROCm environment using the HIP/ Clang compiler provided in the ROCm installation:

$ hipcc new_foo.cpp

There are several other utility scripts available to support the porting of codes:

$ echo $(hipconfig --path)
$ findcode.sh hipcc hipconfig hipconvertinplace.sh hip_embed_pch.sh hipexamine.sh hipify-perl roc-obj-extract finduncodep.sh hipcc_cmake_linker_helper hipconvertinplace-perl.sh hipdemangleatp hipexamine-perl.sh hipify-cmakefile hipvars.pm roc-obj-ls

for example:

$ hipify perl inplace <filename>
It modifies the filename input inplace , replacing input with hipified output, save backup in . prehip file.
$ hipexamine-perl.sh <filename/directory>
This script will scan a file/directory to determine which file/files contain CUDA code and how much of that code can be automatically hipified.

$ hipconvertinplace-perl.sh <directory>
It converts all the related files that are located inside the directory

for more information see HIP/hip_programming_guide.md at develop · ROCm-Developer-Tools/HIP · GitHub, HIP/hip_porting_guide.md at develop · ROCm-Developer-Tools/HIP · GitHub, HIPIFY/README.md at master · ROCm-Developer-Tools/HIPIFY · GitHub

  • No labels