From 99bc0f03e161c17894eb8fa8189dfd1b1bf0def7 Mon Sep 17 00:00:00 2001 From: Ben Sander Date: Tue, 26 Jul 2016 11:51:54 -0500 Subject: [PATCH] Doc update for FAQ and future RELEASE notes Change-Id: I7e7c32d9a19fdaea0a0e41f1d4fa4652e53640f2 --- RELEASE.md | 6 +++--- docs/markdown/hip_faq.md | 11 +++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 6e6fc60a8d..2f1a5e8c92 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -2,14 +2,14 @@ We have attempted to document known bugs and limitations - in particular the [HIP Kernel Language](docs/markdown/hip_kernel_language.md) document uses the phrase "Under Development", and the [HIP Runtime API bug list](http://gpuopen-professionalcompute-tools.github.io/HIP/bug.html) lists known bugs. -=================================================================================================== Upcoming: - hipLaunchKernel supports one-dimensional grid and/or block dims, without explicit cast to dim3 type. - Stability: Enforce perioidic host synchronization to reclaim resources if the application has launched a large - number of commands (>10K) without synchronizing. -- Doc updates: Add some more frequently asked questions to FAQ, fix TOC in some files, review. + number of commands (>1K) without synchronizing. - Register keyword now silently ignored on HCC (previously would emit warning). +- Doc updates: Add some more frequently asked questions to FAQ, fix TOC in some files, review. =================================================================================================== + Release:0.90.00 Date: 2016.06.29 - Support dynamic shared memory allocations diff --git a/docs/markdown/hip_faq.md b/docs/markdown/hip_faq.md index 1e578842fa..6a3d46f075 100644 --- a/docs/markdown/hip_faq.md +++ b/docs/markdown/hip_faq.md @@ -16,8 +16,10 @@ - [Can I develop HIP code on an Nvidia CUDA platform?](#can-i-develop-hip-code-on-an-nvidia-cuda-platform) - [Can I develop HIP code on an AMD HCC platform?](#can-i-develop-hip-code-on-an-amd-hcc-platform) - [Can a HIP binary run on both AMD and Nvidia platforms?](#can-a-hip-binary-run-on-both-amd-and-nvidia-platforms) +- [Can I link HIP code with host code compiled with another compiler such as gcc, icc, or clang ?] - [What's the difference between HIP and hc?](#whats-the-difference-between-hip-and-hc) - [HIP detected my platform (hcc vs nvcc) incorrectly - what should I do?](#hip-detected-my-platform-hcc-vs-nvcc-incorrectly---what-should-i-do) +- [Can I install both CUDA SDK and HCC on same machine?](#Q100) @@ -146,6 +148,12 @@ HIP is a portable C++ language that supports a strong subset of the CUDA run-tim A C++ dialect, hc is supported by the AMD HCC compiler. It provides C++ run time, C++ kernel-launch APIs (parallel_for_each), C++ kernel language, and several memory-management options, including pointers, arrays and array_view (with implicit data synchronization). It's intended to be a leading indicator of the ISO C++ standard. +### [On HCC, can I link HIP code with host code compiled with another compiler such as gcc, icc, or clang ? +Yes! HIP/HCC generates the object code which conforms to the GCC ABI, and also links with libstdc++. This means you can compile host code with the compiler of your choice and link this +with GPU code compiler with HIP. Larger projects often contain a mixture of accelerator code (initially written in CUDA with nvcc) plus host code (compiled with gcc, icc, or clang). These projects +can convert the accelerator code to HIP, compile that code with hipcc, and link with object code from the preferred compiler. + + ### HIP detected my platform (hcc vs nvcc) incorrectly - what should I do? HIP will set the platform to HCC if it sees that the AMD graphics driver is installed and has detected an AMD GPU. @@ -157,3 +165,6 @@ export HIP_PLATFORM=hcc One symptom of this problem is the message "error: 'unknown error'(11) at square.hipref.cpp:56". This can occur if you have a CUDA installation on an AMD platform, and HIP incorrectly detects the platform as nvcc. HIP may be able to compile the application using the nvcc tool-chain, but will generate this error at runtime since the platform does not have a CUDA device. The fix is to set HIP_PLATFORM=hcc and rebuild the issue. If you see issues related to incorrect platform detection, please file an issue with the GitHub issue tracker so we can improve HIP's platform detection logic. + +### [Can I install both CUDA SDK and HCC on same machine?] +Yes. You can use HIP_PLATFORM to choose which path hipcc targets. This configuration can be useful when using HIP to develop an application which is portable to both AMD and NVIDIA.