Граф коммитов

13197 Коммитов

Автор SHA1 Сообщение Дата
Aaron En Ye Shi 31e772adb5 SWDEV-263964 - Fix hipconfig to work on Windows
Modify hipconfig and hipcc to properly run Windows compiler
executables. Support Windows Environmental Variables and
AMD Display Adapter info. Update flags to include quotes for
paths that have spaces, such as Program Files.

Change-Id: Ib721b318bd88be7dfa1247a30ce78c7ed6a334e8
2021-01-25 12:53:03 -05:00
Aaron En Ye Shi db43d7a3ac SWDEV-263964 - Add Windows CMake find_package(hip)
Modify hip-config.cmake to support building on Windows
using CMake's find_package(hip). Windows CMake will work
with Ninja Generator and inheritEnvironments clang_cl_x64.

Change-Id: I03d76b5f8d695ce50ecaacb449e4eb1c1ca49700
2021-01-25 12:52:46 -05:00
German Andryeyev dbc7abaecf SWDEV-257787 - Add engine tracking per signal
- The logic will trace compute, sdma read/write operations and
apply signals when necessary
- ROC_CPU_WAIT_FOR_SIGNAL, ROC_SYSTEM_SCOPE_SIGNAL
and ROC_SKIP_COPY_SYNC were added to control the tracking

Change-Id: I9e8e6174c63bf7784f7ab00964e2918c8667d364
2021-01-25 12:34:45 -05:00
Chauncey Hui 99da7ecba5 SWDEV-2 - Change OpenCL version number from 3247 to 3248 2021-01-24 03:00:07 -05:00
Jason Tang 1e08a3e0cd SWDEV-269147 - Disable ROC offline devices for now
Change-Id: I520f3c8e56db91cbc384d08beba4e0bd4626941d
2021-01-23 14:48:07 -05:00
Chauncey Hui 29596ac3be SWDEV-2 - Change OpenCL version number from 3246 to 3247 2021-01-23 03:00:04 -05:00
Vladislav Sytchenko 290a16716d SWDEV-264411 - Disable OCLDynamicBLines test
Change-Id: I067afa99b988e0b32edee7d27c1403d31775655c
2021-01-22 16:55:18 -05:00
Joseph Greathouse 51e53b6b56 SWDEV-269756 - Add missing Cooperative Groups error string
Change-Id: I1833f8bb4b48b19bb3d6cac57dda429231cf3562
2021-01-22 15:48:18 -06:00
Jason Tang 64714fdbbe SWDEV-268345 - Enable address sanitizer build when ADDRESS_SANITIZER is ON
Change-Id: I09e5c5b2c21637bc67c23267411c2996ee57aad4
2021-01-22 16:21:50 -05:00
Jason Tang 8d75c7e76f SWDEV-268345 - Enable address sanitizer build when ADDRESS_SANITIZER is ON
Change-Id: Iaef46358f33a399f8b047aaebc5154bb7352a69a
2021-01-21 18:31:14 -05:00
German Andryeyev ce2e5eba6b SWDEV-257787 - Reset active signal if ROCR call failed
- ROCR fails the call for some reason, then the signal will
become invalid and can hang on a wait. The logic will reset the
active signal in such cases

Change-Id: Ia131420200f1bbd7c9a162b8f1b06db8cecf41c6
2021-01-21 17:29:34 -05:00
Tao Sang a0c8c30ae5 SWDEV-268757 - Disable deprecation warning
Disable it as it will fail rocgdb test

Change-Id: Ibf34c780d5bd4278adcedba1d6e057639c258483
2021-01-21 15:35:32 -05:00
Tao Sang 8cf28aa5b3 SWDEV-257056 - Fix cyclic dependence of hip/rocclr libs
Solve upstream building failure due to the cyclic dependence.

Change-Id: Ibf34c789d5bd4278adcedba1d6e057639c258488
2021-01-21 13:00:22 -05:00
jujiang cfca71352a SWDEV-265003 - update HIP document
Change-Id: I1e8ec3ad380330b48d164a2ca60b0a70f7e54ae6
2021-01-20 16:24:20 -05:00
Chauncey Hui de3e8b092c SWDEV-2 - Change OpenCL version number from 3245 to 3246 2021-01-20 03:00:06 -05:00
Satyanvesh Dittakavi 8da9f4d432 SWDEV-268989 - Modify atomicAdd double to use clang builtin
Change-Id: If9d40046df2f3f5af7cc1bd6c935fbe7d686e7d8
2021-01-20 02:39:15 -05:00
German Andryeyev 5a8946190a SWDEV-268381 - Enable wait on CPU before SDMA transfer
- There is a performance regression with a HW wait for HSA signal
on ROCr async operation. For now move the logic back to CPU wait.

- Fix profiling issue with multiple HSA signal per single timestamp
object. Some copies require multiple ROCR calls and if profiling is
required, then the execution time is derived from all used signals.

Change-Id: Id003e4abb8c2de378eedc152a7e389500fc6f4ce
2021-01-19 18:24:21 -05:00
agodavar 2b84b58c31 SWDEV-267298 - update install script to build hip-rocclr
Change-Id: Ia8d72ebc41184d2fc58aa4e99966ef9b71a7fc26
2021-01-19 11:50:42 -05:00
agodavar f4edf51736 SWDEV-268552 - HIP sample hipDispatchEnqueueRateMT segfaults, updated to use hipModuleLoadData
Change-Id: Ibf34c780d5bd4278adcedba1d6e057637c258485
2021-01-19 09:32:14 -05:00
Chauncey Hui 44659d5d7e SWDEV-2 - Change OpenCL version number from 3244 to 3245 2021-01-19 03:00:05 -05:00
Tony Tye 6b641fb368 SWDEV-268864 - Use new isa class to access isa related information (part 2)
Change-Id: If7ed535b3012aec3f2cb4eb7ab93d8f5aed9783f
2021-01-19 03:36:22 +00:00
Tony Tye 91bb64409b SWDEV-268864 - Use new isa class to access isa related information
Change-Id: I866eeef06f86df77c651a25fdf7bceed2c28af52
2021-01-18 22:33:25 +00:00
Tony Tye c2308216dd SWDEV-268864 - Remove duplicatation of isa related information
Remove targetId_, gfxipMajor_, gfxipMinor_ and gfxipStepping_ from
device::Info as they are now available in device::Isa.

Change-Id: I381b1d4798ebf50655740e004a01ac7f86dbf668
2021-01-18 22:32:37 +00:00
Tony Tye cd1117d627 SWDEV-268864 - Use new isa class to access isa related information
Change-Id: I2122bf85155997d802ca54e456c2dae66b801825
2021-01-18 22:31:01 +00:00
Jason Tang c0730b69d5 Fix build error when building with clang++
Change-Id: If1c9fbd6af6028bd39ff43ee53d74d5e778e2a27
2021-01-18 09:45:19 -05:00
Jatin Chaudhary 9943fcd81b Adding compiler option to be passed to comgr
Change-Id: I6247cfc8f323e7ccbc95e35408ab3e8a55e16495
2021-01-18 06:25:44 -05:00
Sameer Sahasrabuddhe 2cac768a07 Implement assert() using the new fprintf_stderr facility
The device library now provides functions to specify the host stderr
stream in a hostcall printf message. This change implements an
assert() macro which can construct such a message. The end result is
that assertions on the device are now correctly printed on the host
stderr instead of stdout.

Change-Id: I85ab8f7848bcf28303cb8dbb8a798bc6aece7d75
2021-01-17 23:54:46 -05:00
David Salinas de3031988d remove extractkernel
Change-Id: I46a380059fa336aa7553669629a21e8aa7717e7b
2021-01-15 11:34:32 -08:00
Satyanvesh Dittakavi 84cda7f9c2 device property __HIP_ARCH_HAS_SHARED_INT64_ATOMICS__ set to 1 as it has compiler support
Change-Id: Ic91c4955d4f2d52d844471f81e6f0d19418018f5
2021-01-15 11:40:09 -05:00
Chauncey Hui 97dd6c128b SWDEV-2 - Change OpenCL version number from 3243 to 3244 2021-01-15 03:00:06 -05:00
DURGESH KROTTAPALLI d27db0f038 [dtest] Kernel Execution time fix for hipExtLaunchKernelGGL and hipExtModuleLaunchKernel API's
Fix for kernel execution time using clock rate

SWDEV-238517 for enhancing hip unit tests

Change-Id: Id06df31387ecab96f219e0c1fbcdda1609f75605
2021-01-15 01:58:22 -05:00
David Salinas 7e9b9534d3 add new code object tooling: roc-obj-ls and roc-obj-extract
SWDEV-229776

Change-Id: Icb11c4552515d3eff3bcf303c4a470ab90d1dd58
2021-01-14 14:45:46 -05:00
Tao Sang 8fc1ff7d4f Fix building mathlibs failure
Add back
__HIP_PLATFORM_HCC__
__HIP_PLATFORM_NVCC__

Change-Id: I1ae48678eafd849d6c25bcb204c1724b026be22f
2021-01-14 14:03:15 -05:00
Saleel Kudchadker ce56d04dee Cleanup redundant Barrier packet fill function
Change-Id: I31f3250f00a362c2fdd35aca31df177fed7ddb98
2021-01-14 12:38:00 -05:00
Tony Tye 2026a24438 Make HSAILProgram::gpuNullDevice private
Change-Id: I822d1800eff0703a154dac997fe940d232eab542
2021-01-14 11:12:14 -05:00
Tony Tye c7e8d91e14 Update code object handling for GSL, PAL and ROCm
- Correct GSL path to report targets using the TargetID syntax.

- Correct GSL path to check compatibility of code objects when
  loading.

- Add concept of an device isa and create a registery used by ROCm,
  PAL and GSL.

- Support XNACK and SRAMECC target features consistently for PAL and ROCm.

- Correct logic for NullDevices and asserts to avoid memory coruption.

- Allow all NullDevices to be created for HIP.

- Numerous other code improvements.

Change-Id: I40abf3d2b22249c1492d1af5919665f8184f4e0e
2021-01-14 11:11:51 -05:00
Chauncey Hui 4c16051f6d SWDEV-2 - Change OpenCL version number from 3242 to 3243 2021-01-14 03:00:06 -05:00
Tony Tye 7d35a43165 Use ROCclr Info.targetId_
Use Info.targetId_ instead of Info.name_ so it will work on Windows
PAL driver and ROCm.

Change-Id: I20537899c36c0ee330a4c09136a52e53d9f35e0d
2021-01-14 05:17:20 +00:00
jujiang 32f35bbd2a SWDEV-265003-Update HIP documents
Change-Id: I3aea36f9a817ff0d2a379fc902b1ba7794f9736e
2021-01-13 17:55:16 -05:00
Tony Tye e0448535a3 Use strncpy
Use strncpy instead of strcpy to ensure the arrays will not be
overflowered. Only copy one less than size of char array to leave a
NUL character at the end even if the copy is truncated provided the
original object is zeroed memory.

Change-Id: I00f7679630cf28dcb9a51cb0aba2810a4f4c72b9
2021-01-13 08:24:28 +00:00
Tony Tye 76c371d78a Make hsa_agent_t handles use pointer to device::Device
For roc devices create hsa_agent_t handles using a pointer to the
device::Device. This ensures each device has a different hsa_agent_t
handle. This may be necessary to ensure the loader symbol lookup will
search only symbols for the correct device.

Change-Id: Iee6dd40d68bf22a02ce8c75cbe5ac8f5a0d9e418
2021-01-13 08:24:28 +00:00
Tony Tye 583dddf6b6 Simplify handling of Settings
roc:Settings and pal::Settings are derivations. Allocate them as their
derived class then assign that to the base class member to avoid the
need for a static_cast.

Use device::settings to access the Settings consistently.

Change-Id: I0f85157962fbf6fed176da0caf83b723bcbe1452
2021-01-13 08:24:28 +00:00
Tony Tye f92b060707 Use properties() method consistently in paldevice.cpp
Change-Id: I8074ecc283dde57bddfabf72a439bf6132ee900e
2021-01-13 08:24:28 +00:00
Tony Tye 682774a09d Refine sampler handling
- Use std::unique_ptr to levarage RAII for managing the allocation in
  the presence of errors.

Change-Id: I55de515bbf72938e1dd09731c5e51f538cf9d34a
2021-01-13 08:24:28 +00:00
Tony Tye 08f3126f6c Make roc::Device::getBackendDevice non-virtual
Make roc::Device::getBackendDevice non-virtual and only defined by
roc::Device and not roc::NullDevice. It is only meaningful for an
online device.

Change-Id: Ic333a3a42f650bea524e80dab587a34f1353e593
2021-01-13 08:24:28 +00:00
Tony Tye 783fe2e01b Delete roc::Program::hsaDevice
Delete roc::Program::hsaDevice and access directly from device
associated with program. This allows to be clear if the device is a
NullDevice which has no meaningful HSA agent backend device.

Change-Id: I81f96aff47bf9b8166d0ff6a5efc7c01f0fb6de3
2021-01-13 08:24:28 +00:00
Tony Tye c1ea70b539 Make roc::Device constructor and create() method private
Make roc::Device constructor and create() method private as creating
devices is performed by the factory static methods.

Change-Id: Ifa2edb8ec645b4ce6070c4aef355b9ef88294cf1
2021-01-13 08:24:28 +00:00
Tony Tye 30729a716f Check error return from aqlCreateHWInfo
Change-Id: If57c30d0605dc628d93a0d8131836ecde9834261
2021-01-13 08:24:28 +00:00
Tony Tye e5431676d4 Add stronger checking
- Add assertions to enforce that objects are of the correct kind and
  have been allocated.

- Make destructors check if objects have been allocated before
  deleting.

- Operations that require a non-NullDevice return failure if given a
  NullDevice.

- Use static_cast rather than reinterpret_cast when cohersing from a
  base class to a derived class.

Change-Id: I02ee0ea9d7982fd7ca29d49c9b02cfae111b7127
2021-01-13 08:24:28 +00:00
Tony Tye 001fd66cac Rename device access functions
Rename functions that access devices to reflect the derived device
they return. This includes the base device::Device and the derived
gpu/pal/roc device classes in both NullDevice and Device forms. Change
to use the least derived versions to clarify what operations will be
available.

Change-Id: I1abb6bfed7efa24852bc8d0d49acaea357d8b5d0
2021-01-13 08:24:28 +00:00