Commit Graph

12867 Commits

Author SHA1 Message Date
Aaron En Ye Shi 462b8f9369 Merge "Update hipcc to use HIP_COMPILER variable" into amd-master-next
[ROCm/clr commit: c1d5ba1d0a]
2020-04-30 17:31:33 -04:00
Michael Hong Bin Liao 40639abdaa Merge "[vdi] Skip null texture object in hipDestroyTextureObject." into amd-master-next
[ROCm/clr commit: 977efb14c6]
2020-04-30 16:07:58 -04:00
Aaron Enye Shi a5441b7c97 Update hipcc to use HIP_COMPILER variable
This will update the hipcc script so that it will use HIP_PLATFORM, HIP_COMPILER, and HIP_RUNTIME variables correctly based on updated hipconfig file.

Removing HIP_PLATFORM=clang, only use hcc and nvcc for now. HIP_PLATFORM should eventually switch to amd or nvcc.

Change-Id: Ie527d07a1add974cc3aab8e9f61b0518147d7602


[ROCm/clr commit: c729d52681]
2020-04-30 15:31:20 -04:00
German Andryeyev 6610976c7d Optimize synch operations
- Stall the queue only for HSA copy operations

Change-Id: Ia3debcc0f36284c5f8cd2776d31674f3aeed04ea


[ROCm/clr commit: 7302ebcfbc]
2020-04-30 11:17:48 -04:00
Alex Xie a97194485a SWDEV-232894 Port hipMemcpy optimizations from HCC to VDI
Apply the optimization to change for OpenCL too.
Clean up some unnecessary checks.

Change-Id: I840261fe35baeeadeba7388e86779d482f509aad


[ROCm/clr commit: 6c5a42b33c]
2020-04-30 11:06:28 -04:00
Chauncey Hui e853810230 SWDEV-2 - Change OpenCL version number from 3133 to 3134
[ROCm/clr commit: 1de8abd031]
2020-04-30 03:00:03 -04:00
Payam Ghafari 662485b575 Merge "renaming vdi to rocclr, part 1" into amd-master-next
[ROCm/clr commit: aa950adc73]
2020-04-29 19:42:20 -04:00
Vlad Sytchenko a11a651248 Merge branch 'amd-master-next' into amd-npi-next
Change-Id: Icd651e93f0c28eb2859f4997377379d0698ce84e


[ROCm/clr commit: e97809ca7a]
2020-04-29 18:54:58 -04:00
Vlad Sytchenko f48e51008c Fix order initialization warning
Change-Id: I77ddf1dbec2d11c273163efae6526d3deca92dbf


[ROCm/clr commit: d420baf664]
2020-04-29 18:52:41 -04:00
Laurent Morichetti 75b9fabedc Don't make a copy of the embedded device binaries
Embedded device binaries should not be cloned if we want the ROCR's
code object URI for this binary to point to the container (host
executable or shared library) instead of a memory location.

Depends-On: I7973bb0243f5a2d1b639b8a88445cfe6af919dd7
Change-Id: Id3afc981e027e5371114d011f2caaa6414f5fc58


[ROCm/clr commit: 4591b7469e]
2020-04-29 18:40:18 -04:00
Laurent Morichetti 963bae11a2 Make the device binary copy optional
Device binaries that are embedded inside the host binary do not
require a copy. Their lifetime is guaranteed to exceed that of the
loaded executable.

Add a 'make_copy' parameter to amd::Program::addDeviceProgram. If
make_copy is false the original image will be used and will not
get freed when the amd::Program is destroyed.

Change-Id: I7973bb0243f5a2d1b639b8a88445cfe6af919dd7


[ROCm/clr commit: 9e1964ddaa]
2020-04-29 18:39:57 -04:00
Payam 68c07279fb renaming vdi to rocclr, part 1
Change-Id: Idec9be2b6174217abcebaa1776e59168670740b1


[ROCm/clr commit: cb7d3227e8]
2020-04-29 17:54:37 -04:00
Saleel Kudchadker ea1c12b2b6 Fix error code when hipEventRecord is not called
Change-Id: I6672d4320280fd87fd2786bc54214d40944da845


[ROCm/clr commit: f52b2d4504]
2020-04-29 13:13:52 -04:00
Michael LIAO c8c52c59d4 [vdi] Skip null texture object in hipDestroyTextureObject.
- To match both CUDA and HCC runtime behavior.

Change-Id: I072b006dd554e17f8341f391d33bf6224a125a7e


[ROCm/clr commit: db4bcda1bf]
2020-04-29 12:20:42 -04:00
Christophe Paquot 2b3875882f Couple of cleanups.
Remove queue limitation since we loop through HW queues now.
Add a DevLogError if we fail to create the hsa_queue. A ticket showed a regression there.

Change-Id: I4f58e405f88e75600a762f6d6352838c969cdb5e


[ROCm/clr commit: b54c3f7db9]
2020-04-29 09:18:07 -07:00
German Andryeyev 632a78c104 Clean-up the list of blocking streams
- Insert the stream into the list on the host queue creation,
instead of stream creation

Change-Id: Ib25053019f7df97e5bc786922a6587b9514852d3


[ROCm/clr commit: bc65ca64fc]
2020-04-29 11:37:43 -04:00
Chauncey Hui bb295c0b67 SWDEV-2 - Change OpenCL version number from 3132 to 3133
[ROCm/clr commit: 860ba6f0a1]
2020-04-29 03:00:03 -04:00
Vlad Sytchenko f0fee110c1 Fix order initialization warning
Change-Id: I77ddf1dbec2d11c273163efae6526d3deca92dbf


[ROCm/clr commit: 89b9befe42]
2020-04-28 20:07:51 -04:00
Saleel Kudchadker 6b7c6748b1 Add a threshold for forcing ROCr to take blit path
This workaround is to avoid performance penalty of SDMA engine
taking a while to clock up from a lower DPM state. Add env var
GPU_FORCE_BLIT_COPY_SIZE (1024 by default for HIP in KB). Forcing
Src and Dst agent to be amdgpu makes ROCr take blit copy path for
what otherwise should have been SDMA copy

Change-Id: I222f687155f86000d17d66d25182e490b6710463


[ROCm/clr commit: 5f64e6e7ad]
2020-04-28 17:11:24 -04:00
Matt Arsenault e1961eac6b Use find_package to find rocclr
Maintain compatability with current hardcoded scheme for now for
commit order convenience.

Change-Id: I0b8299fceab1cc405ae5f26a129f2f1ea3d56773


[ROCm/clr commit: 585741a040]
2020-04-28 16:41:53 -04:00
Matt Arsenault 1cb198dba2 Avoid intermediate object library
Object libraries are weird, and producing a library by using the
target objects from them doesn't automatically import the interface
properties of the linked targets. These object libraries only have
single uses, so just directly create the final library from the
sources.

Leaves libelf as an object library, since there seems to be some cmake
oddity when trying to link an unexported target to an exported one.

Change-Id: Ic379612c89340c40085c9862cfe111fa4bbff425


[ROCm/clr commit: cba7a4d20e]
2020-04-28 16:41:34 -04:00
Vlad Sytchenko a646af408f Add entry for another unannounced asic
Change-Id: I63c6ce6221e812a33e9427841be49840a8f48154


[ROCm/clr commit: 2963d0d454]
2020-04-28 14:23:57 -04:00
Vlad Sytchenko dae0d59594 Add entry for new device id
This is accomodate upcoming Pal::AsicRevision changes.

Change-Id: Ic108b647f3548d34b7aa83d6077fb88452768998


[ROCm/clr commit: 63b90a32c4]
2020-04-28 14:23:49 -04:00
Payam 6aac9f836c updating package name to hip-rocclr instead of hip-vdi
Change-Id: Ife8810d4dd224ce29c2e2a827b221a618c9f1b3d


[ROCm/clr commit: bff03ec833]
2020-04-28 13:36:33 -04:00
Vlad Sytchenko edcaa80694 Handle copy cases where the uses pases a bad ptr
Change-Id: I4490b8519e4d0dde25b845f9ca7e81c1d80d4f28


[ROCm/clr commit: 518be44661]
2020-04-28 11:04:29 -04:00
Payam Ghafari efeee416a1 Merge "adding cltrace" into amd-master-next
[ROCm/clr commit: 10de80eb17]
2020-04-28 09:48:35 -04:00
agodavar d6275e96d9 P2PStating buffer allocation when P2P is not enabled between all GPUs
SWDEV-232580 & SWDEV-232580
Allocate p2p statging buffer when full P2P access is not available between all devices.
p2p staging buffer will eventually be used when required.

Change-Id: If8490ba7b1c52c432c1e942ae95421b9d2ec7097


[ROCm/clr commit: f149fe0803]
2020-04-28 07:10:57 -04:00
Payam caf39ab53f adding cltrace
Change-Id: I19b06f9a5954f317bbd00b5c2447ed5b6e9f30ae


[ROCm/clr commit: 50563e4544]
2020-04-28 05:49:30 -04:00
Chauncey Hui 0cd4c0bfcf SWDEV-2 - Change OpenCL version number from 3131 to 3132
[ROCm/clr commit: 27bfd2a3ee]
2020-04-28 03:00:02 -04:00
Freddy Paul 4e4d1b98f3 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


[ROCm/clr commit: 2a271dc418]
2020-04-27 19:48:44 -04:00
Alex Xie c158b9b3d0 SWDEV-232894 Port hipMemcpy optimizations from HCC to VDI
Change-Id: I6bebe9ac503a9f80d067aeea8a848409ad210338


[ROCm/clr commit: 009d0b5f55]
2020-04-27 14:53:58 -04:00
Aaron Enye Shi b1904716e1 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


[ROCm/clr commit: 2df5d92240]
2020-04-27 11:44:53 -04:00
Yaxun (Sam) Liu 6b0c1024c2 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


[ROCm/clr commit: 4e7b1cdbd2]
2020-04-27 11:43:05 -04:00
kjayapra-amd 8070085d1c SWDEV-232008 - Handle cases where Memcpy size is less than Symbol Size.
Change-Id: I046bc70445dfd4f6fdfd06415f53d1fc06f425b4


[ROCm/clr commit: 19c654e794]
2020-04-27 10:47:28 -04:00
German Andryeyev 0567dd299a Don't attempt to reuse the cooperative queue
Change-Id: I0e98e292a562715a7b395118f899af859f3e42bb


[ROCm/clr commit: 082cbfa1f5]
2020-04-27 09:18:05 -04:00
root 6a7aa0c1c6 Merge master into amd-master-next
Change-Id: I3fc1dc0c860d627053537581e75561e8a7efe327


[ROCm/clr commit: b5031f39b1]
2020-04-26 22:19:37 +00:00
Chauncey Hui 4f9046b49b SWDEV-2 - Change OpenCL version number from 3130 to 3131
[ROCm/clr commit: d2091cc266]
2020-04-25 03:00:03 -04:00
Michael LIAO 134b33e4e0 [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


[ROCm/clr commit: f8062c6fbd]
2020-04-24 22:28:31 -04:00
Matt Arsenault be849b740d 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


[ROCm/clr commit: 5943e4d93e]
2020-04-24 15:31:35 -04:00
Yaxun (Sam) Liu c13a63bcff 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

[ROCm/clr commit: 29549ce4dc]
2020-04-24 12:30:28 -07:00
German Andryeyev 6aa9951a42 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


[ROCm/clr commit: 5a7c094729]
2020-04-24 14:40:43 -04:00
Matt Arsenault 1060511a84 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


[ROCm/clr commit: e7d6a5e5a6]
2020-04-24 12:38:42 -04:00
Matt Arsenault 9ad645d7a8 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


[ROCm/clr commit: c60d7d860d]
2020-04-24 12:12:54 -04:00
Christophe Paquot 6a64edc032 Merge "cherrypick from master branch" into amd-master-next
[ROCm/clr commit: cf6df62b3a]
2020-04-24 11:48:18 -04:00
Yaxun Liu 80edc2b562 Merge "Enable template max and min for HIP-Clang" into amd-master-next
[ROCm/clr commit: 040ca11925]
2020-04-24 11:44:49 -04:00
Tao Sang 8d2cbef722 Merge "Add Performance/memory/hipPerfMemMallocCpyFree" into amd-master-next
[ROCm/clr commit: cf6345d7c7]
2020-04-24 11:32:47 -04:00
Matt Arsenault df90e345d0 Don't use include_directories for ROCR includes
Use the modern cmake, target specified method.

Change-Id: Icd7196bfccb85f255bbc01bc87c6667d961bb236


[ROCm/clr commit: 350d54e198]
2020-04-24 11:05:40 -04:00
Matt Arsenault a8f183bb1b Use target_compile_definitions for HSA vs. PAL device macros
Change-Id: I7e1240cb4d32ce86948814d727a516025ee976fa


[ROCm/clr commit: ff12016c7b]
2020-04-24 11:05:16 -04:00
Matt Arsenault e12c98c3dd 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


[ROCm/clr commit: 815198bec9]
2020-04-24 11:04:52 -04:00
Matt Arsenault c81f73d82b Unscreamake some cmake functions
This was already using the new lowercase style in most places.

Change-Id: I7ed04a3652c932581a2897f2fee79d79aa732f8e


[ROCm/clr commit: ec62f9b8de]
2020-04-24 11:04:21 -04:00