Fixes SWDEV-207362,
The output file name should not contribute to picking up the right flags for the compiler. This fix solves issues when the output has conflicting extensions which confuses hipcc to treat them as the source files and add the required flags for them.
PS: Output file refers to the file followed by -o
Example: hipcc test.o -o test.hip will add the flags for .hip compilation ignoring the fact that it is an output file
Fixes SWDEV-226025,
Right now -x c++ can come before libhip_hcc.so which forces the compiler to treat libhip_hcc.so as a text file and generates a lot of gibberish unicode. This PR changes the order of flags ensuring that -x c++ and similar flags come after libhip_hcc.so
Hopefully, this will not have any negative side effect.
Currently there is a clang bug on Windows causing duplicate -mllvm options in clang -cc1.
Tempoarily disable -mllvm options for HIP-Clang on Windows until the bug is fixed.
Change-Id: I3a4393ba7745989398dc6c6001722837dad18704
There are now two implementations of printf in HIP:
1. The implemenation for HCC is controlled by the HC_FEATURE_PRINTF
macro, and it works only with the HCC compiler used in combination
with the HCC runtime.
2. The implementation for hip-clang requires the VDI runtime, and is
always enabled with that combination.
This is a quick workaround to match HCC behavior for performance since inlining usually
results in more optimization opportunities therefore better performance.
We will fine tuning inline threashold later.
Some PyTorch unit tests have regression. Disabling cov3 to allow more
time to debug and unblock PyTorch
Change-Id: Iba7f425ef3499c20c42ec45d9152b5d27ce97d03
- The known target checking should skip `gfx000` as well as it won't be
used in real compilation command formation. The avoid generating
annoying warning on `gfx000`.
* Fix hipcc warning related to hipVersion
* Rename hipVersion.h to hip_version.h
* Remove HIP_VERSION splitting
* Update .gitignore
- Ignore generated include/hip/hip_version.h
- Removed some stale entries
- Added executables from samples/1_Utils/*/ for consistency with bin/ entries.
HIP_VERSION_MAJOR, HIP_VERSION_MINOR, HIP_VERSION_PATCH and HIP_VERSION pre-processor macros are now defined in hipVersion.h instead of being set by hipcc.
Currently hipcc uses -O3 for hip-clang by default but uses -O0 if -g is used. This
causes surprise for users since -g should not affect default opt level.
- Once HIP_VDI_HOME is defined but HIP_CLANG_INCLUDE_PATH is not,
calculate it directly without HIP_CLANG_PATH is defined or not;
Otherwise, we may leave HIP_CLANG_INCLUDE_PATH undefined, if clang is
not installed following the official way (so far, HIP-Clang breaks
that), we may leave HIP_CLANG_INCLUDE_PATH undefined before its uses.
There is soft link /opt/rocm/bin/.hipVersion, therefore when hipcc is executed
as /opt/rocm/bin/hipcc, it will set HIP_VDI_HOME to /opt/rocm, which is
incorrect. Check ../lib/bitcode instead to identify HIP_VDI_HOME.
* Fix hipcc for hip-clang.
If there is -g, do not add -O3 by default.
If HIP_VDI_HOME is not set, set HIP_VDI_HOME based on hipcc directory for HIP/VDI runtime.
For HIP/VDI runtime, set HIP_CLANG_PATH and DEVICE_LIB_PATH based on HIP_VDI_HOME only if they exist.
This allows using HIP/VDI runtime with hip-clang installed at /opt/rocm/llvm and device lib installed
at /opt/rocm/lib.
* Fix HIP_VDI_HOME for hipcc called from /opt/rocm/bin
- With `--rpath`, app's RUNPATH is set to the temporary library path
during build. Instead, `--rpath-link` should be used to leave RUNPATH
untouched. User should set LD_LIBRARY_PATH or system ld.so.conf to
proper setting.
* Add CMAKE dep to amd_comgr
* Use COMGR for read_kernarg_metadata in COV2
* Do not assume kernargs exist
* Add proper metadata destroy cleanup
* Use a process function for easier destroy
* Remove old read_kernarg_metadata
* Clean up HCC, prints, names
* Use COMGR in CMAKE by default
* Move metadata lookup for keyword values into helper
* Remove C string usage for lookup_keyword_value
* Guard COMGR for non-NVCC path
* Add hip_hcc dependency on comgr package
* Add lifetime to metadata nodes
* Find COMGR config file for amd_comgr target
* Move set_active data earlier