Commit Graph

13474 Commits

Author SHA1 Message Date
Matt Arsenault 80bc98afee Fix installing generated header to include/include
This isn't the ideal solution, but a lot more cleanups are needed for
how install is used.

Change-Id: I63a9c1a46d0da13ee4373038ece228005207271a
2020-05-01 12:43:49 -04:00
Michael LIAO 6bfedf1a1d Fix more typos from 53dd6b7a66.
Change-Id: I75ed28a5862daffc0778910d7ba3b97f51a87949
2020-05-01 12:19:30 -04:00
Matt Arsenault 36432be962 Don't directly link pthreads
This was already searching for the right threads library, but ignoring
the result.

Change-Id: I10d898245696135c1ef928c7715efce8ec6b939f
2020-05-01 08:28:36 -04:00
Matt Arsenault b618939e2e Don't emit generated hip_prof_str.h to source directory
The build should never touch the source directory, and only write
generated files to the output directory.

Also track the dependency with a custom command and target, as is the
normal method for dependencies on generated files.

Change-Id: I9d835256c643aeef241d26ca05ab390ebba65111
2020-05-01 08:24:56 -04:00
Chauncey Hui 6d0fa49c5d SWDEV-2 - Change OpenCL version number from 3134 to 3135 2020-05-01 03:00:03 -04:00
Payam 94b203235e name change vdi to rocclr
Change-Id: I59650f7082dd118c1fe92309b76a5bdb20eee3c1
2020-04-30 19:06:58 -04:00
Matt Arsenault bd4ec781f2 Find python to generate prof API headers.
Don't rely on shell commands. On Ubuntu 20.04, /usr/bin/python no
longer exists, so I'm seeing some failures from somewhere assuming the
path.

The top level CMakeLists also repeats exactly this, which should be
fixed.

Change-Id: I56b26742920f0dc40b363b409892bd41cfa485ef
2020-04-30 18:21:03 -04:00
Aaron En Ye Shi c1d5ba1d0a Merge "Update hipcc to use HIP_COMPILER variable" into amd-master-next 2020-04-30 17:31:33 -04:00
Michael Hong Bin Liao 977efb14c6 Merge "[vdi] Skip null texture object in hipDestroyTextureObject." into amd-master-next 2020-04-30 16:07:58 -04:00
Aaron Enye Shi c729d52681 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
2020-04-30 15:31:20 -04:00
German Andryeyev 7302ebcfbc Optimize synch operations
- Stall the queue only for HSA copy operations

Change-Id: Ia3debcc0f36284c5f8cd2776d31674f3aeed04ea
2020-04-30 11:17:48 -04:00
Alex Xie 6c5a42b33c 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
2020-04-30 11:06:28 -04:00
Chauncey Hui 1de8abd031 SWDEV-2 - Change OpenCL version number from 3133 to 3134 2020-04-30 03:00:03 -04:00
Payam Ghafari aa950adc73 Merge "renaming vdi to rocclr, part 1" into amd-master-next 2020-04-29 19:42:20 -04:00
Vlad Sytchenko e97809ca7a Merge branch 'amd-master-next' into amd-npi-next
Change-Id: Icd651e93f0c28eb2859f4997377379d0698ce84e
2020-04-29 18:54:58 -04:00
Vlad Sytchenko d420baf664 Fix order initialization warning
Change-Id: I77ddf1dbec2d11c273163efae6526d3deca92dbf
2020-04-29 18:52:41 -04:00
Laurent Morichetti 4591b7469e 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
2020-04-29 18:40:18 -04:00
Laurent Morichetti 9e1964ddaa 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
2020-04-29 18:39:57 -04:00
Payam cb7d3227e8 renaming vdi to rocclr, part 1
Change-Id: Idec9be2b6174217abcebaa1776e59168670740b1
2020-04-29 17:54:37 -04:00
Saleel Kudchadker f52b2d4504 Fix error code when hipEventRecord is not called
Change-Id: I6672d4320280fd87fd2786bc54214d40944da845
2020-04-29 13:13:52 -04:00
Michael LIAO db4bcda1bf [vdi] Skip null texture object in hipDestroyTextureObject.
- To match both CUDA and HCC runtime behavior.

Change-Id: I072b006dd554e17f8341f391d33bf6224a125a7e
2020-04-29 12:20:42 -04:00
Christophe Paquot b54c3f7db9 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
2020-04-29 09:18:07 -07:00
German Andryeyev bc65ca64fc 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
2020-04-29 11:37:43 -04:00
Chauncey Hui 860ba6f0a1 SWDEV-2 - Change OpenCL version number from 3132 to 3133 2020-04-29 03:00:03 -04:00
Vlad Sytchenko 89b9befe42 Fix order initialization warning
Change-Id: I77ddf1dbec2d11c273163efae6526d3deca92dbf
2020-04-28 20:07:51 -04:00
Saleel Kudchadker 5f64e6e7ad 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
2020-04-28 17:11:24 -04:00
Matt Arsenault 585741a040 Use find_package to find rocclr
Maintain compatability with current hardcoded scheme for now for
commit order convenience.

Change-Id: I0b8299fceab1cc405ae5f26a129f2f1ea3d56773
2020-04-28 16:41:53 -04:00
Matt Arsenault cba7a4d20e 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
2020-04-28 16:41:34 -04:00
Vlad Sytchenko 2963d0d454 Add entry for another unannounced asic
Change-Id: I63c6ce6221e812a33e9427841be49840a8f48154
2020-04-28 14:23:57 -04:00
Vlad Sytchenko 63b90a32c4 Add entry for new device id
This is accomodate upcoming Pal::AsicRevision changes.

Change-Id: Ic108b647f3548d34b7aa83d6077fb88452768998
2020-04-28 14:23:49 -04:00
Payam bff03ec833 updating package name to hip-rocclr instead of hip-vdi
Change-Id: Ife8810d4dd224ce29c2e2a827b221a618c9f1b3d
2020-04-28 13:36:33 -04:00
Vlad Sytchenko 518be44661 Handle copy cases where the uses pases a bad ptr
Change-Id: I4490b8519e4d0dde25b845f9ca7e81c1d80d4f28
2020-04-28 11:04:29 -04:00
Payam Ghafari 10de80eb17 Merge "adding cltrace" into amd-master-next 2020-04-28 09:48:35 -04:00
agodavar f149fe0803 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
2020-04-28 07:10:57 -04:00
Payam 50563e4544 adding cltrace
Change-Id: I19b06f9a5954f317bbd00b5c2447ed5b6e9f30ae
2020-04-28 05:49:30 -04:00
Chauncey Hui 27bfd2a3ee SWDEV-2 - Change OpenCL version number from 3131 to 3132 2020-04-28 03:00:02 -04:00
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