Giter Site home page Giter Site logo

tomsang / hipcc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rocm/hipcc

0.0 0.0 0.0 133 KB

HIPCC: HIP compiler driver

Home Page: https://rocm.docs.amd.com/projects/HIPCC/en/latest/

License: MIT License

C++ 64.12% Perl 30.74% CMake 5.07% Batchfile 0.07%

hipcc's Introduction

HIP compiler driver (hipcc)

Table of Contents

hipcc

hipcc is a compiler driver utility that will call clang or nvcc, depending on target, and pass the appropriate include and library options for the target compiler and HIP infrastructure. Historically, hipcc was provided as a script in the HIP repo ( https://github.com/ROCm-Developer-Tools/HIP/blob/main/bin/hipcc ). The hipcc provided in this project provides the same functionality, but is a binary rather than a script. At some point in the future, the hipcc script will be deprecated and ultimately removed from the HIP repo.

hipcc will pass-through options to the target compiler. The tools calling hipcc must ensure the compiler options are appropriate for the target compiler.

Documentation

Run the steps below to build documentation locally.

cd docs

pip3 install -r .sphinx/requirements.txt

python3 -m sphinx -T -E -b html -d _build/doctrees -D language=en . _build/html

Environment Variables

The environment variable HIP_PLATFORM may be used to specify amd/nvidia:

  • HIP_PLATFORM='amd' or HIP_PLATFORM='nvidia'.
  • If HIP_PLATFORM is not set, then hipcc will attempt to auto-detect based on if nvcc is found.

Other environment variable controls:

  • HIP_PATH : Path to HIP directory, default is one dir level above location of hipcc.
  • CUDA_PATH : Path to CUDA SDK (default /usr/local/cuda). Used on NVIDIA platforms only.
  • HSA_PATH : Path to HSA dir (defaults to ../../hsa relative to abs_path of hipcc). Used on AMD platforms only.
  • HIP_ROCCLR_HOME : Path to HIP/ROCclr directory. Used on AMD platforms only.
  • HIP_CLANG_PATH : Path to HIP-Clang (default to ../../llvm/bin relative to hipcc's abs_path). Used on AMD platforms only.

hipcc: usage

The built executables can be used the same way as the hipcc/hipconfig perl scripts. To use the newly built executables from the build folder use ./ in front of the executable name - Example:

./hipconfig --help
./hipcc --help
./hipcc --version
./hipconfig --full

when the excutables are copied to /opt/rocm/hip/bin or hip/bin. The ./ is not required as the HIP path is added to the envirnoment variables list.

hipcc: building

mkdir build
cd build

cmake ..

make -j

The hipcc and hipconfig executables are created in the current build folder. These executables need to be copied to /opt/rocm/hip/bin folder location. Packaging and installing will be handled in future releases.

hipcc: testing

Currently hipcc/hipconfig executables are tested by building and executing HIP tests. Separate tests for hipcc/hipconfig is currently not planned.

hipcc's People

Contributors

aakanksha555 avatar agunashe avatar arjun-raj-kuppala avatar arvindcheru avatar cjatin avatar david-salinas avatar dependabot[bot] avatar emankov avatar kzhuravl avatar mystro256 avatar raramakr avatar samjwu avatar scchan avatar searlmc1 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.