Skip to content

Latest commit

 

History

History
98 lines (73 loc) · 4.94 KB

faq.md

File metadata and controls

98 lines (73 loc) · 4.94 KB

Frequently Asked Questions

What is this?

Please see @jlgreathouse's answer to Issue #1.

Who owns this project?

You, alongside every other past, present and future contributor:) Whilst initial development was done at AMD, at the point when you are reading this everything has been opened up. There is no closed-off, separate development, and there are no special privileges for any particular group of contributors.

Does it require an AMD CPU?

No, the HIP CPU Runtime is CPU agnostic. As long as you have a C++17 compliant toolchain that can target it, the HIP CPU Runtime shall work with it. Please create an issue if you have identified a case where this does not hold, as it is a bug.

Do I need the HIP-CPU-Compiler?

There is no such thing, the HIP CPU Runtime is compiler agnostic and does not rely on any non-upstream / dedicated functionality. Otherwise stated, we expect and want to compose with any C++17 compliant toolchain. Please create an issue if you have identified a case where this does not hold, as it is a bug.

Do I need ROCm?

No, the HIP CPU Runtime does not depend on any ROCm component. It is not necessary to install ROCm in order to use the HIP CPU Runtime. Installing ROCm shall not install the HIP CPU Runtime - this latter point might change at a some point in the future, but there is no commitment to it at the moment.

Is it Linux only?

No, the HIP CPU Runtime is OS agnostic. As long as a C++17 compliant toolchain is available for some OS then the HIP CPU Runtime shall work in that environment. Please create an issue if you have identified a case where this does not hold, as it is a bug.

Can I interoperate with the HIP GPU Runtime?

Not in an architected way. Since we expect the HIP CPU Runtime to undergo rapid, iterative development, we decided to keep it as nimble as possible and not lock into particularly restrictive decisions early on. As such, whilst convergence with the HIP GPU Runtime is a valid medium-term goal, no cross-dependencies exist at the moment. Please create an issue of you feel this is crucial for your use-case and is preventing experimentation with the HIP CPU Runtime.

Can I use it in C?

The HIP CPU Runtime is a C++ codebase, and cannot be used as-is from C. Whilst it is possible and relatively straightforward to design and implement C bindings for the HIP CPU Runtime public interface, this is not currently being pursued as part of this project's development. External projects doing would be most welcome.

Can I use insert HIP library here?

Possibly - it depends on whether or not said library relies on any functionality that is not implemented by the HIP CPU Runtime at the moment. Furthermore, not all missing functionality is the same e.g. a missing element of the public interface is likely to be added with alacrity, whereas inline GCN ASM shall never work. Thus, whilst a library relying on the former is highly likely to be usable quite rapidly, a library relying on the latter shall never work.

Can I use insert CPU library here?

Yes, including in kernel code - there is nothing preventing you from e.g. using std::sort in a __global__ or __device__ function. However, please be aware that such code is inherently non-portable to codebases using the HIP GPU Runtime and the HIP or CUDA dialects of Clang. Therefore, doing this is discouraged if portability across heterogeneous targets is intended.

I have a question and it is not answered here!

Please help with filling up this gap:

Whichever option you choose, thank you for helping!