Commit Graph

12238 Commits

Author SHA1 Message Date
Freddy Paul 2a271dc418 hip-on-vdi: Enable RUNPATH and versioning
1. Enable versioning for HIP libraries
2. Enable RUNPATH on HIP libraries to find ROCm dependencies
3. Control HIP package install using CPACK_INSTALL_PREFIX

Change-Id: I9096da56592e9c78cdba329011f6e1bae99adaa2
2020-04-27 19:48:44 -04:00
Alex Xie 009d0b5f55 SWDEV-232894 Port hipMemcpy optimizations from HCC to VDI
Change-Id: I6bebe9ac503a9f80d067aeea8a848409ad210338
2020-04-27 14:53:58 -04:00
Aaron Enye Shi 2df5d92240 Update hipconfig to support HIP-Clang
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
2020-04-27 11:44:53 -04:00
Yaxun (Sam) Liu 4e7b1cdbd2 Let hipcc treats .cpp files as C++ files for HIP-Clang
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
2020-04-27 11:43:05 -04:00
kjayapra-amd 19c654e794 SWDEV-232008 - Handle cases where Memcpy size is less than Symbol Size.
Change-Id: I046bc70445dfd4f6fdfd06415f53d1fc06f425b4
2020-04-27 10:47:28 -04:00
German Andryeyev 082cbfa1f5 Don't attempt to reuse the cooperative queue
Change-Id: I0e98e292a562715a7b395118f899af859f3e42bb
2020-04-27 09:18:05 -04:00
root b5031f39b1 Merge master into amd-master-next
Change-Id: I3fc1dc0c860d627053537581e75561e8a7efe327
2020-04-26 22:19:37 +00:00
Chauncey Hui d2091cc266 SWDEV-2 - Change OpenCL version number from 3130 to 3131 2020-04-25 03:00:03 -04:00
Michael LIAO f8062c6fbd [vdi] Revise the symbol management.
- 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
2020-04-24 22:28:31 -04:00
Matt Arsenault 5943e4d93e Don't use intermediate object library
This added an unnecessary level of indirection, and also didn't
automatically pull in interface dependencies from the linked targets.

Change-Id: I7371ab3c184f6045947a96c8a393f2e3452fc5c1
2020-04-24 15:31:35 -04:00
Yaxun (Sam) Liu 29549ce4dc Enable template max and min for HIP-Clang (#2028)
It was for HCC only. HIP-Clang also needs it for __fp16 since AMDMIGraphX uses it.

Change-Id: Id49322b7b89ef799accdf6b47627a6fce51d1ab5
2020-04-24 12:30:28 -07:00
German Andryeyev 5a7c094729 SWDEV-232918
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
2020-04-24 14:40:43 -04:00
Matt Arsenault e7d6a5e5a6 Prune some unused compile definitions
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
2020-04-24 12:38:42 -04:00
Matt Arsenault c60d7d860d Add comgr macros to public definition export
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
2020-04-24 12:12:54 -04:00
Christophe Paquot cf6df62b3a Merge "cherrypick from master branch" into amd-master-next 2020-04-24 11:48:18 -04:00
Yaxun Liu 040ca11925 Merge "Enable template max and min for HIP-Clang" into amd-master-next 2020-04-24 11:44:49 -04:00
Tao Sang cf6345d7c7 Merge "Add Performance/memory/hipPerfMemMallocCpyFree" into amd-master-next 2020-04-24 11:32:47 -04:00
Matt Arsenault 350d54e198 Don't use include_directories for ROCR includes
Use the modern cmake, target specified method.

Change-Id: Icd7196bfccb85f255bbc01bc87c6667d961bb236
2020-04-24 11:05:40 -04:00
Matt Arsenault ff12016c7b Use target_compile_definitions for HSA vs. PAL device macros
Change-Id: I7e1240cb4d32ce86948814d727a516025ee976fa
2020-04-24 11:05:16 -04:00
Matt Arsenault 815198bec9 Cleanup libelf build
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
2020-04-24 11:04:52 -04:00
Matt Arsenault ec62f9b8de Unscreamake some cmake functions
This was already using the new lowercase style in most places.

Change-Id: I7ed04a3652c932581a2897f2fee79d79aa732f8e
2020-04-24 11:04:21 -04:00
Matt Arsenault 3c2e0f6155 Remove leftover cmake debug printing
Change-Id: I886b21717eadab6b4365ddaff063fbcd37300aa8
2020-04-24 11:03:37 -04:00
Matt Arsenault 83455f36c5 Modernize cmake usage for finding amd_comgr
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
2020-04-24 11:03:27 -04:00
Matt Arsenault a36f19df51 Don't use CMAKE_SOURCE_DIR
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
2020-04-24 11:02:52 -04:00
Michael Hong Bin Liao 17e9c63708 Merge "[vdi] Fix texture reference sample." into amd-master-next 2020-04-24 10:30:38 -04:00
Michael Hong Bin Liao 2e61683b33 Merge "[vdi] Fix hang due to recursive locking." into amd-master-next 2020-04-24 10:30:26 -04:00
Yaxun (Sam) Liu 1013e4eca8 Enable template max and min for HIP-Clang
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
2020-04-24 09:51:17 -04:00
Paul Fultz II 9227b08458 cherrypick from master branch
75a5088446
727c9f77d8

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
2020-04-24 09:32:02 -04:00
Chauncey Hui bb348a463d SWDEV-2 - Change OpenCL version number from 3129 to 3130 2020-04-24 03:00:03 -04:00
Tao Sang 33d7005b10 Add Performance/memory/hipPerfMemMallocCpyFree
Change-Id: Id1ac415f85028da3e9517c2226764bcb4acec1b1
2020-04-23 23:49:56 -04:00
Michael LIAO b469e5c573 [vdi] Fix texture reference sample.
- 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
2020-04-23 23:41:56 -04:00
Michael LIAO c56a3ca63e [vdi] Fix hang due to recursive locking.
- Declare recursive lock for global function map.

Change-Id: I3e792e21688c980343c4fd1c61dcad97f7a890cd
2020-04-23 23:32:56 -04:00
kjayapra-amd 92c63384cb SWDEV - 231874 - Do Dword aligned memset if the total size aligns.
Change-Id: Id05db4cfd9c43b2cffa3cec8b02f1cd07f340dd6
2020-04-23 21:08:50 -04:00
Vlad Sytchenko bfa363d00c Make sure to zero out all the unset texture fields
These might contain garbage causing the runtime to incorrectly parse the state of the texture references.

Change-Id: I93c726fa30b580b3e14c50ac939f3c71b0d1c8d9
2020-04-23 16:38:52 -04:00
German Andryeyev 89133a7301 SWDEV-232807
[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
2020-04-23 15:01:02 -04:00
Michael Hong Bin Liao b70dac2557 Merge "[hip] Fix typos." into amd-master-next 2020-04-23 13:32:09 -04:00
eshcherb 6cb57ee64a fix pointers format (#2037)
* fix pointers format

* fix pointers format - cleanup

* fix pointers format - fix
2020-04-23 21:54:51 +05:30
Yaxun (Sam) Liu 5abcda3ab7 Fix hip-config.cmake for CMAKE_CXX_COMPILER=g++ (#2035)
* Fix hip-config.cmake for CMAKE_CXX_COMPILER=g++

Change-Id: I84ae83a5d223853706dd36834b7962ffe9573c1f

* Fix HIP_CXX_COMPILER

Change-Id: I4e2523b560113420af1ab877a0bc48ca2e9e957a

* Fix hip-config.cmake

Change-Id: Ida4ef8f40fed83d5f659a9a9835b1f521cb6a374

* Add inlineall option to hip::device in hip-config.cmake

Change-Id: Ib51f82d0b9e38d2137df65c940592413e22ba07a
2020-04-23 21:51:54 +05:30
Aaron Enye Shi 17e439e572 extractkernel obj dump args to use double dashes (#2034)
More recent llvm-objdump has changed disassemble and mcpu arguments to require double dashes.
2020-04-23 21:51:33 +05:30
Paul Fultz II 445953aa94 Add __HIP_PLATFORM_HCC__ to hip::host target (#2029) 2020-04-23 21:51:02 +05:30
Maneesh Gupta f2e1118d7a Merge in the rocclr based hip runtime (#2032)
* Merge master-next changes in master (include vdi development in master branch)
2020-04-23 09:12:06 -07:00
Chauncey Hui a3f163be6a SWDEV-2 - Change OpenCL version number from 3128 to 3129 2020-04-23 03:00:03 -04:00
Evgeny Shcherbakov e8d64b509e Merge "cleanup" into amd-master-next 2020-04-22 23:28:22 -04:00
Michael LIAO a353df6b36 [hip] Fix typos.
Change-Id: I9d85d0e70033d144dbd4d61cb434ffbe023af8c0
2020-04-22 16:44:54 -04:00
Tao Sang 85abd8f028 Fix hip_get_devices failure in lammps
Support hipDeviceAttributeIntegrated in hipDeviceGetAttribute() with hip-vdi rt

Change-Id: Ie5ba81222af3554a843c184ae75af7f369a3c24b
2020-04-22 15:16:59 -04:00
Evgeny b05e54bf84 cleanup
Change-Id: Ia0ee0e4cab2ee8eaa9931024681d0db5b2802594
2020-04-22 13:42:45 -05:00
Michael LIAO 97f55b5c7f [vdi] Add device assertion support.
- 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
2020-04-22 10:03:55 -04:00
Chauncey Hui 43a8e929a2 SWDEV-2 - Change OpenCL version number from 3127 to 3128 2020-04-22 03:00:03 -04:00
Michael LIAO 2c1933e0f3 [hip] Generate assertion message in assertion.
Change-Id: Ie66f6563e8728fd0e21cf22dcc6619e4a0e5c28d
2020-04-21 16:44:40 -04:00
Matt Arsenault d4a447967e Use cmake features to set c++ version
Change-Id: I2649cdca5bc68298371f770a7a624a21db3f4137
2020-04-21 16:01:30 -04:00