Add support for hipconfig to display details on HIP-Clang compiler and update HIP_COMPILER and HIP_RUNTIME to include clang and rocclr. Also, add hipcc flags --cxxflags and --ldflags to support HCC users who used hccconfig flags.
Change-Id: Ib12d81a4ff59d34fb000626836b1adb10be3ac61
[ROCm/clr commit: 2df5d92240]
This change is required by rocBLAS and rocFFT for OpenMP issue
since cmake needs to treat .cpp file as C++ program to detect
OpenMP support.
This is to match nvcc behavior, speed up compilation of C++
programs, and fix some compilation issue where C++ programs
are compiled as HIP programs.
Currently it is controlled by an environment variable
HIP_COMPILE_CXX_AS_HIP. By default it is 1, where
hipcc treats .cpp files as HIP programs. If it is
set to 0, hipcc will treat .cpp files as C++ programs.
This is because some math libraries are still not
ready for the change, however rocBLAS and rocFFT
require this feature for OpenMP, therefore put it
under an environment variable so that rocBLAS
and rocFFT can use it.
Change-Id: I56a51e27079df850ee39d4217fb647c22d79f612
[ROCm/clr commit: 4e7b1cdbd2]
- As different modules may have symbols with the same name, each symbol
needs identifying with a pair of the module handle and the symbol
name.
Change-Id: I85650a787d9a424545154cc40ebd59e706fa358f
[ROCm/clr commit: f8062c6fbd]
This added an unnecessary level of indirection, and also didn't
automatically pull in interface dependencies from the linked targets.
Change-Id: I7371ab3c184f6045947a96c8a393f2e3452fc5c1
[ROCm/clr commit: 5943e4d93e]
It was for HCC only. HIP-Clang also needs it for __fp16 since AMDMIGraphX uses it.
Change-Id: Id49322b7b89ef799accdf6b47627a6fce51d1ab5
[ROCm/clr commit: 29549ce4dc]
hipEventRecord is much slower in hipclang/vdi
- Make sure default streams don't sync each other.
- Add null stream into the list of default streams.
- Code clean-up to simplify queue look-up.
Change-Id: I36e1fc8d86a600e3dce806694d95d146ed8afd03
[ROCm/clr commit: 5a7c094729]
There's a lot of unnecessary system configuration junk here which
isn't used, and is already available through compiler predefines. This
is also blindly placed without really checking the host architecture.
-DLINUX is unused.
-D__AMD64__ is predefined by the compiler, and is also redundant with
__x86_64__ and ATI_BITS_64.
__x86_64__ should also be removed. It's used in libelf, but I'm not
sure if msvc predefines this or not.
-DqLittleEndian is unused, and also doesn't follow macro naming
conventions (plus compilers have their own predefines for checking
this).
Change-Id: I89f6fc4c88e861623be7f32df41aecbb4e9009ab
[ROCm/clr commit: e7d6a5e5a6]
This should allow the cmake build for the opencl runtime to work
without manually adding these definitions. The PAL build also adds
these as private defines in its build, so change rocm to match. This
should probably be including these a config header to benefit other
builds, but this will at least avoid some clutter in the opencl build
for now.
Change-Id: I1044984b87ba3fc72e280e255ceea2dd9e3337ff
[ROCm/clr commit: c60d7d860d]
Use target specific forms for define/include. Don't set
CMAKE_CXX_FLAGS for the standard, which is already implied from the
parent build.
Change-Id: I4000893376d6685e9889b66ad8451fc493020272
[ROCm/clr commit: 815198bec9]
Don't use find_path on the header, it's redundant with the interface
include directories on the imported target. Use the target specific
forms for including and linking it.
Change-Id: I3923143c992888ee7d5ee1130084ac2e5eaa0f3a
[ROCm/clr commit: 83455f36c5]
This is almost never the correct thing to use since it breaks adding
this as a subproject build in a larger build. Switch to refer to
CMAKE_CURRENT_SOURCE_DIR, which is equivalent in a standalone build.
Change-Id: Ib8dbbc0668491f4227389b9a5b27da770b3bc5ce
[ROCm/clr commit: a36f19df51]
This change is required by AMDMIGraphX.
It was for HCC only. HIP-Clang also needs it for __fp16 since AMDMIGraphX uses it.
Change-Id: Id49322b7b89ef799accdf6b47627a6fce51d1ab5
[ROCm/clr commit: 1013e4eca8]
75a5088446727c9f77d8
These are needed by MIOpen and rocBLAS.
Add __HIP_PLATFORM_HCC__ to hip::host target (#2029)
Fix hip-config.cmake for CMAKE_CXX_COMPILER=g++ (#2035)
* Fix hip-config.cmake for CMAKE_CXX_COMPILER=g++
* Add inlineall option to hip::device in hip-config.cmake
Change-Id: Ib51f82d0b9e38d2137df65c940592413e22ba07a
[ROCm/clr commit: 9227b08458]
- The driver code should not re-define `tex` again as it's already
defined in the kernel code. Eventually, the driver code should be as
regular C++ code instad of HIP code.
Change-Id: I8c7cab204b98990619d6e7109b990d7089ea9261
[ROCm/clr commit: b469e5c573]
These might contain garbage causing the runtime to incorrectly parse the state of the texture references.
Change-Id: I93c726fa30b580b3e14c50ac939f3c71b0d1c8d9
[ROCm/clr commit: bfa363d00c]
[ROCm][TCT][HIP] cooperative stream test case is failing.
Make sure lockXfer() in the blit manager returns a valid value.
Port the latest PAL backend logic into the ROCr backend.
This change doesn't fix the issue, reported in the ticket.
Change-Id: I54101a824f49a2dcfbbf5414cb5b3af41745306d
[ROCm/clr commit: 89133a7301]
Support hipDeviceAttributeIntegrated in hipDeviceGetAttribute() with hip-vdi rt
Change-Id: Ie5ba81222af3554a843c184ae75af7f369a3c24b
[ROCm/clr commit: 85abd8f028]
- Once device assertion occurs, abort the host execution as well.
- TODO: This's the initial support. As we need to drain hostcall queue
to ensure device assertion message being flushed out, hostcall
listener needs an interface to explicitly drain its queue.
Change-Id: I8a04400aa7109bfd054ae5777c41a4abbf0db4a9
[ROCm/clr commit: 97f55b5c7f]