Commit Graph

1375 Commits

Author SHA1 Message Date
Siu Chi Chan f39873c584 Support more than one bundles in a single .kernel section
When compiling with Early Finalization enabled in HCC,
the resulting .kernel section of the host object now may
contain more than one device code bundles.  This is to
teach the HIP runtime to correctly extract all the
bundles from the .kernel section.
2018-10-18 17:00:27 -04:00
Alex Voicu 602280eb8b Re-sync with upstream. 2018-10-18 12:27:03 +01:00
Maneesh Gupta 9143ae6bdb Merge pull request #692 from whchung/hip-reinit-take2
HIP program state re-initialization logic (take 2)
2018-10-18 12:06:41 +05:30
Maneesh Gupta 95be669f4a Merge pull request #703 from mangupta/stream_create_with_priority
Implementation for stream priority
2018-10-17 10:53:43 +05:30
Alex Voicu 9ec697c620 Re-sync with upstream. 2018-10-10 11:43:49 +01:00
Maneesh Gupta 07ee1f07d8 Implementation for stream priority
- Requires ROCm 1.9.x or higher
- Requires HCC with PR#886 merged

Change-Id: Id7c95ea091ee610e80c9ad815f1cb989cba570ca
2018-10-05 16:27:46 +05:30
Rahul Garg a78d68d639 Corrected the width calculation logic to accomodate multi channels 2018-10-03 12:07:38 +05:30
Rahul Garg 167265c279 Fixed image width for linear resource type texture 2018-10-01 15:28:34 +05:30
Wen-Heng (Jack) Chung e257de95f3 Keep the map which tracks GPU kernel symbols to grow monotonically 2018-09-26 19:49:02 +00:00
Wen-Heng (Jack) Chung 060b3c0bf8 Improve performance of re-initialization logic
Keep track of shared libaries already discovered. Do not build HSA executables
for them.
2018-09-26 19:48:56 +00:00
Wen-Heng (Jack) Chung 319f007bf1 HIP program state re-initialization logic
This commit is to support kernels dynamically loaded thru means such as
dlopen() after HIP runtime initializes.
2018-09-26 19:48:47 +00:00
Rahul Garg bd27310127 Return hipSuccess when sizeBytes=0 in hipMemset 2018-09-26 12:47:36 +05:30
Alex Voicu 26c26f63cb Align with HC Next. 2018-09-17 11:50:29 +03:00
Maneesh Gupta b23609ad42 Merge branch 'master' into support-malloc 2018-09-17 10:17:25 +05:30
Yaxun Sam Liu ce13c2061a Add HIP_DB=fatbin for debugging fat binary issues 2018-08-17 11:53:45 -04:00
Maneesh Gupta e10fa70173 Merge pull request #621 from ROCm-Developer-Tools/disable_startup_loader
Disable startup loader by default and guard with env var
2018-08-10 10:18:25 +05:30
sunway513 7c467220a8 resolve a segfault bug when env var not set; remove startup_kernel_loader class 2018-08-09 16:40:26 +00:00
sunway513 7d776ae665 Add more check to ensure the startup loader only be enabled with the env var set to 1 2018-08-04 01:52:27 +00:00
sunway513 9af862d364 Add startup loader under HIP_STARTUP_LOADER env var, disable by default 2018-08-04 01:48:06 +00:00
Wen-Heng (Jack) Chung 1fe7f1be91 Revert "HIP program state re-initialization logic"
This reverts commit 04640992dc.
2018-08-03 17:03:04 -05:00
Wen-Heng (Jack) Chung f6178c2159 Revert "Improve performance of re-initialization logic"
This reverts commit b883ea759d.
2018-08-03 17:02:58 -05:00
Wen-Heng (Jack) Chung 329f3b7a5e Revert "Keep the map which tracks GPU kernel symbols to grow monotonically"
This reverts commit 8f521edff1.
2018-08-03 17:02:50 -05:00
Rahul Garg 5eb11b58f3 Added support for pinned 2D SDMA copy 2018-07-31 14:05:35 +05:30
Sarunya Pumma 84aadb9274 Remove device mapping from shareWithAll memory
When shareWithAll memory (e.g., host memory) is allocated, set appId
in hc::AmPointerInfo to -1 to indicate that this memory is not mapped
to any device.  Peer checking in ihipStream_t::canSeeMemory is not
necessary if memory is shared with all devices.  Thus, it is skipped.

Note that earlier host memory is always mapped to device 0 and HIP
always performs peer checking for all kinds of hipMemcpy.  Since the
peer checking process requires context locking, hipMemcpy from/to host
memory always grabs device 0's context lock.  Therefore, if there is
another thread holding the context lock of device 0 (e.g.,
hipDeviceSynchronize on device 0), hipMemcpy will have to wait for the
lock until it can actually perform memcpy.  This can significantly
deteriorate execution performance.

Signed-off-by: Sarunya Pumma <sarunya.pumma@amd.com>
2018-07-28 23:15:16 -07:00
Yaxun Sam Liu d17dc21c9c Support malloc/free for hip-clang 2018-07-27 16:24:51 -04:00
Rahul Garg f17c897751 Null check before setting offset 2018-07-24 12:25:40 +05:30
Rahul Garg 0ec64e8b24 Set offset in hipGetTextureAlignmentOffset 2018-07-24 10:11:26 +05:30
Alex Voicu 633ce36ea7 It is unclear what I was thinking when authoring the original code... 2018-07-17 14:04:57 +01:00
Maneesh Gupta 1fc3ef3cd4 Merge branch 'master' into move-memcpy 2018-07-17 10:51:42 +05:30
Maneesh Gupta 7d8c1ae761 Merge pull request #515 from ROCm-Developer-Tools/hipclang-add-amdgcn-funcs
Add hipclang amdgcn functions
2018-07-17 09:25:09 +05:30
Maneesh Gupta 4702a6c86e Merge pull request #562 from ROCm-Developer-Tools/fix-build-failure
Fix build failure in code_object_bundle.cpp
2018-07-12 07:49:41 +05:30
Maneesh Gupta d63db71b61 Merge pull request #546 from gargrahul/fix_bindtex_offset_null_check
Fixed offset null check in bind texture functions
2018-07-11 12:52:31 +05:30
Maneesh Gupta 404bd43a0e Merge pull request #545 from ROCm-Developer-Tools/revert-521-temp_fixmemcpy2dasync_trsmissue
Revert "Use memcpy kernel for all pinned memory cases in hipMemcpy2DAsync"
2018-07-11 12:52:09 +05:30
Yaxun (Sam) Liu 903dfa94eb Move __hip_hc_memcpy and __hip_hc_memset from device_utils.cpp to device_functions.h as inline functions 2018-07-10 18:12:41 -04:00
Yaxun (Sam) Liu e6d155bcd5 Fix build failure in code_object_bundle.cpp 2018-07-10 16:49:59 -04:00
Aaron Enye Shi d39508b4fd Implement hip_ldg Functions into HIP header
Move all the function definitions for hip_ldg.cpp into hip_ldg.h header and enable for HIP clang path.
2018-07-05 20:38:46 +00:00
Aaron Enye Shi b362c53475 Implement min/max functions in HIP header
Remove using hc::precise_math min and max. Instead we can use ocml directly for device and std:: for host.
2018-07-05 20:15:41 +00:00
Aaron Enye Shi 96ab7c7b25 Implement Memory Fence Functions in header
Enabled __llvm_fence_* functions for seq_cst.
2018-07-04 23:35:24 +00:00
Aaron Enye Shi f8109c5b06 Merge branch 'master' into hipclang-add-amdgcn-funcs 2018-07-04 17:36:08 +00:00
Maneesh Gupta d372d0eaad Update hip_hcc_internal.h
Adding missing include for hip_hcc_internal in order to build with HCC
2018-07-04 09:33:51 +05:30
Rahul Garg 77cbd4476d Fixed offset null check in bind texture functions 2018-07-03 08:54:17 +05:30
Rahul Garg f554e48db3 Revert "Use memcpy kernel for all pinned memory cases in hipMemcpy2DAsync" 2018-07-02 14:32:11 +05:30
Aaron Enye Shi e44eaa1a1e Implement __shfl_* funcs into HIP headers 2018-06-26 18:32:11 +00:00
Aaron Enye Shi 9a295a732d Implement __ballot, __any, __all into HIP headers 2018-06-20 17:39:39 +00:00
Aaron Enye Shi 175c87f2bf Implement hip_hc.ll into HIP headers
Move all __hip_hc_ir_* functions from hip_hc.ll into HIP header as inline asm. Remove hip_hc.ll and build dependencies from HIP.
2018-06-20 17:39:31 +00:00
Aaron Enye Shi ad5f1dcbf2 Implement device_functions.cpp into HIP headers
Move all Integer Intrinsics, device_functions.cpp definitions and HIP specific device functions into HIP headers. Implement the device functions using llvm_intrinsics and device-libs functions instead of calling hc::__* functions. Remove device_functions.cpp since everything is now defined in header.
2018-06-20 17:39:23 +00:00
Aaron Enye Shi f4399d57a3 Add hipclang amdgcn functions
These are moving from hipclang in device library to hip headers. These are required for the functionality of HIPclang project.
2018-06-20 17:38:37 +00:00
Maneesh Gupta d27991e1c8 Merge pull request #490 from ROCm-Developer-Tools/feature_decouple_atomics_from_hc
Switch the atomic implementation to use Clang  builtins.
2018-06-20 14:16:43 +05:30
Maneesh Gupta 8ff33a83b1 Merge pull request #457 from whchung/hip-reinit
HIP program state re-initialization logic
2018-06-20 09:37:27 +05:30
Wen-Heng (Jack) Chung 8f521edff1 Keep the map which tracks GPU kernel symbols to grow monotonically 2018-06-18 16:54:18 -05:00