Wykres commitów

66 Commity

Autor SHA1 Wiadomość Data
mhbliao d511c3e363 [hip] Stop using noduplicate and replace it with convergent. (#1390) 2019-09-05 10:03:43 +00:00
mshivama f74903851e Device side support for Cooperative Group feature (#1202)
* first cut of the header implementation of cooperative group feature

* add diclarations for device library functions

* fixed various compile time issues in the CG headers

* enabled copy construction and copy assignment

* fixed a minor bug related to conditional compilation macro

* fixed few more CG constructor issues and added a unit testcase

* fixed typo

* extended unit testcase

* compute size of partitioned CG from mask

* bit of code refactoring

* removed boilerplate code

* fixed few of the review comments by Brian

* Changes to the sigantures of few grid and multi-grid related OCKL functions

* changes to declarations of OCKL functions related to CG feature

* removed all the block level support as it is not planned for 2.9

* Have taken care of review comments by Brian

* Have taken care of review comments by Brian

* removed unused functions which were initially intended to use in block level cg support
2019-08-29 01:01:25 +00:00
kpyzhov d81267ae15 Corrected declaration of __ockl_clz_u64() (#1340) 2019-08-20 12:06:36 +00:00
Alex Voicu 0e3d967656 This difference makes absolutely no sense. 2019-08-02 12:30:03 +03:00
Michael LIAO 2655003fde [hip] Minor fix to silence compilation warnings.
- Add parenthese to silence repeative compilation warnings across
  projects built against hip.
2019-06-04 10:39:31 -04:00
Aaron Enye Shi 2b11a8bf0c Fix bug in __smid not setting correct size
The SZ field should minus by 1 since SIZE range is 1..32. Also add comments that results may vary.
2019-05-22 19:20:09 +00:00
Maneesh Gupta 2eafa5dcf9 Merge pull request #1062 from mhbliao/hliao/master/icmp
[hip] Re-implement ballot using AMDGCN builtins
2019-05-03 17:48:19 +05:30
Michael LIAO 2380eb8ecc [Device Function] Fix implementation of __bitinsert_u64
- It's a common mistake by assuming 1 << shamt would be promoted to
  64-bit, if shamt is a 64-bit integer. That's not the case. Replace
  that left shift to a 64-bit one to ensure it won't fall into undefined
  behavior.
- Fix the host-side implementation as well for device function testing.
2019-04-30 08:59:13 -04:00
Michael LIAO a7a4d80f54 [devfunc] Re-implement ballot using AMDGCN builtins
- As the signature of `amdgcn.icmp` is changed for next-gen chip, using
  clang builtins is portable way to hide that details.
2019-04-29 17:21:25 -04:00
Konstantin Pyzhov f6fbf8751d Fix for __popcll() device function implementation. 2019-04-19 08:53:22 -04:00
Konstantin Pyzhov 5664ed3206 Fix for __ffsll() device functions. 2019-04-18 13:07:24 -04:00
Michael LIAO d355122bf9 SWDEV-184380 Fix hcc compilation
- `hcc` has no builtin. Need to invoke LLVM intrinsic directly.
2019-03-26 15:20:17 -04:00
Michael LIAO f42e84cef7 [Device Function] Fix typos. 2019-03-19 15:32:19 -04:00
Michael LIAO b74b4500c4 [Device Function] Support immediate argument.
- `immarg`, immediate argument, is enabled on all AMDGPU intrinsics.
  Revise device functions using these intrinsics with immediate
  arguments.
2019-03-15 12:38:04 -04:00
Maneesh Gupta c7f2198c6e Merge pull request #714 from aaronenyeshi/remove-static-hip-device
Remove libhip_device.a static library
2018-10-31 14:08:29 +05:30
Aaron Enye Shi ba43d1ce1b Remove libhip_device.a static library
Move remaining function definitions from device_util.cpp to hip_runtime.h header. We can now remove the static library completely as device_util.cpp was the last file part of target hip::hip_device .
2018-10-25 19:52:35 +00:00
Maneesh Gupta 05beeec84d Merge pull request #723 from mangupta/fix_double_shfl
Fix logic for double variants of __shfl*
2018-10-25 06:01:38 +05:30
Maneesh Gupta 7b6d232672 Fix logic for double variants of __shfl*
Change-Id: I604f00b54cf4bd9c5f26ca6fa680fca5e9629417
2018-10-24 12:39:09 +05:30
Maneesh Gupta b01ac26948 Make HIP functional again with HCC from ROCm 1.9.x
Change-Id: I214acdfd0b79dcf783993e44fe31baee64fd4dc3
2018-10-24 10:41:56 +05:30
Aaron Enye Shi 03822afaa9 Replace IRIF fences with atomic_work_item_fence 2018-10-04 21:47:28 +00:00
Yaxun Sam Liu 781f0d97b5 Fix build failure of hipTestHalf and hipTestIncludeMath for hip-clang 2018-09-18 21:00:15 -04:00
Maneesh Gupta b23609ad42 Merge branch 'master' into support-malloc 2018-09-17 10:17:25 +05:30
carlushuang 15281b7b84 fix __longlong_as_double() problem, return the double value
previous version return a long long valus *as* double, hence we may get the wrong result.
this also affect atomicAdd(double * ...), which use long long pointer to mimic double pointer.

Signed-off-by: carlushuang <carlus.huang@amd.com>
2018-09-12 13:25:00 +08:00
Maneesh Gupta 6dfb6fac8b Merge pull request #657 from yxsamliu/fix-clz
Fix ambiguity of __clz and __clzll
2018-09-03 16:34:42 +05:30
Maneesh Gupta d515998ac4 Merge pull request #651 from yxsamliu/hip-clang-clock
Add clock() and clock64()
2018-09-03 16:32:30 +05:30
Yaxun Sam Liu 701519d27d Fix ambiguity of __clz and __clzll 2018-08-31 18:07:57 -04:00
Yaxun Sam Liu 0f4546deca Add clock() and clock64() 2018-08-29 10:51:00 -04:00
Aaron Enye Shi 031c0204d8 Add bitinsert64 to device functions 2018-08-28 20:01:14 +00:00
Aaron Enye Shi 24429eabb0 Clean up and add meaningful variables to bit funcs 2018-08-28 18:19:48 +00:00
Aaron Enye Shi fb1da42d0e Add bitextract and bitinsert functions 2018-08-20 16:46:12 +00:00
Yaxun Sam Liu d17dc21c9c Support malloc/free for hip-clang 2018-07-27 16:24:51 -04:00
Brian Sumner 8d80abb30f Drop use of NVCC_COMPAT since it is always set 2018-07-27 09:29:29 -07:00
Maneesh Gupta 1fc3ef3cd4 Merge branch 'master' into move-memcpy 2018-07-17 10:51:42 +05:30
Maneesh Gupta 9e142ea66a Merge branch 'master' into feature_native_vector_types
Change-Id: I943b94ee230871a960d8f9c321ad5e096183b415
2018-07-17 09:51:22 +05:30
Yaxun (Sam) Liu 2531815dfe Include stddef.h in device_functions.h and remove use of uint8_t 2018-07-10 18:12:41 -04:00
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
Aaron Enye Shi 9f3404cfea Fix min/max, icmp asm and add comment for conversion functions 2018-07-10 18:56:48 +00:00
Aaron Enye Shi f8746ecc64 Remove activelanemask asm using ockl and llvm instrinsics
Replace implementation of __any and __all functions using OCKL functions and replaced __ballot implementation to use llvm intrinsic llvm.amdgcn.icmp.i32 instead of calls to __activelanemask_v4_b64_b1 which is not convergent.
2018-07-10 17:56:57 +00:00
Yaxun (Sam) Liu 9aaa792286 Add workaround __local_to_generic 2018-07-09 17:56:33 +00:00
Yaxun (Sam) Liu 1f34993ac1 Add declare of __get_dynamicgroupbaseptr for host compilation 2018-07-09 17:56:25 +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 ce9ca744dc Workaround cast warning of smaller integer type for __to_local
For now, guard the __to_local function for device compile only since a local pointer should be same size as unsigned int on GPU compile. Also change to void* instead of char*.
2018-07-04 20:52:55 +00:00
Aaron Enye Shi e44eaa1a1e Implement __shfl_* funcs into HIP headers 2018-06-26 18:32:11 +00:00
Aaron Enye Shi 5d4986d470 Replace __hip_hc_ir_ inline asm with __ockl_* functions 2018-06-20 20:40:14 +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 e8a18a5473 Move hipclang funcs into corresponding headers 2018-06-20 17:39:15 +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
Alex Voicu 513ba4eb8a Switch the atomic implementation to use Clang builtins. 2018-06-02 12:27:17 +01:00