Wykres commitów

93 Commity

Autor SHA1 Wiadomość Data
Sameer Sahasrabuddhe c36c0bad22 Do not inline the body of __assert_fail()
The device side assertion calls printf to write out a message. In the
device compiler, printf is expanded into a series of hostcalls that
transmit the printf payload to the host. This expansion increases the
length of the kernel, resulting in sub-optimal compilation. The
solution is to ensure that the assert() implementation is not inlined
into the kernel.

Change-Id: Ia3a075461a755cf007218f262b0863e1926c76aa
2020-10-10 01:03:04 -04:00
Yaxun (Sam) Liu c7ac5531d3 Fix warpSize for gfx10
Change-Id: I8029ebeb91db1efa8e166ad349aaae6364e8069d
2020-10-05 20:45:07 -04:00
Vladislav Sytchenko ad2d55c144 Revert "Revert "Merge branch 'amd-master-next' into amd-npi-next""
This reverts commit 374ead1d19.

Reason for revert: <INSERT REASONING HERE>

Change-Id: I92ceb171e31026ed1864704cef2fc1497b883ef9
2020-10-05 13:20:58 -04:00
Vladislav Sytchenko 374ead1d19 Revert "Merge branch 'amd-master-next' into amd-npi-next"
This reverts commit 73558e3363.

Reason for revert: <INSERT REASONING HERE>

Change-Id: I53322718dadde2c98f96140b8e260ec7ee9ef721
2020-10-05 13:02:39 -04:00
Sarbojit Sarkar bf20337fc1 SWDEV-253247: add ulong and ulonglong version of__shfl*
Change-Id: I40ab6cfa12175f334e8392b71f567054d8256e2a
2020-09-30 01:58:22 -04:00
mshivama 27e237ef48 Add support for few CUDA compatible reduction operations like __syncthreads_count()
Change-Id: I0917820058f0edad5c0bdd42dea37f06353fc63c
2020-07-14 12:03:14 -04:00
Rahul Garg 00301b1665 Addback __mbcnt_lo and __mbcnt_hi
Change-Id: Ic3facba2e2245461515799f6a17842da0f5d9933
2020-06-11 21:21:36 -04:00
Matt Arsenault d2dd307c7d Remove some asm declarations for intrinsics
This technique should never be used, and only accessed through
__builtins.

There's currently no builtin for groupstaticsize. I left ds_swizzle
since for some reason it switches to the builtin based on __HCC__ or
not.

Change-Id: If1e1394221dba83ea4add6db5e94d6b715552044
2020-05-11 15:20:58 -04:00
Payam c5f76c3de3 name change vdi to rocclr
Change-Id: I06d198bbb4a499e153b290b73a92afed3553b252
2020-05-06 09:14:30 -04:00
root 2689246de6 Merge master into amd-master-next
Change-Id: I3fc1dc0c860d627053537581e75561e8a7efe327
2020-04-26 22:19:37 +00:00
Michael LIAO 19f793f1cd [hip] Generate assertion message in assertion.
Change-Id: Ie66f6563e8728fd0e21cf22dcc6619e4a0e5c28d
2020-04-21 16:44:40 -04:00
Aryan Salmanpour 386a0e0123 disable printf on hip-clang on Windows (#2021) 2020-04-17 10:33:24 +05:30
Maneesh Gupta 2af31479e2 Merge branch 'amd-master' into amd-master-next
Change-Id: I3094c15008093f2072bcd38aca4ea90aeae2d97b
2020-04-09 06:31:00 -04:00
Sameer Sahasrabuddhe 9a0c5d0653 enable HCC printf when using hip-clang
This is cherry-picked from PR#1947 that was committed to the
github repo. It allows printf to work with hip-clang and HCC
runtime.

Change-Id: I754753250ea1e694cf3441722e2d4c9d25fa75bc
2020-03-28 00:18:21 -04:00
Sarbojit2019 5024f9057a Fix for __usad issue (#1972)
Fixes #1930
2020-03-26 17:09:44 +05:30
Sameer Sahasrabuddhe 899c878703 enable HCC printf when using hip-clang (#1947)
This allows printf to work with hip-clang and HCC runtime. See comments under #1919 for a reported bug and feature request.
2020-03-17 14:03:27 +05:30
Sarbojit2019 320742e8a0 Fix __sad signature match with Cuda (#1936)
Fix for issue #1930
2020-03-17 14:02:00 +05:30
Sameer Sahasrabuddhe 64cd527335 SWDEV-204784: separate printf declaration for vdi/clang
There are now two implementations of printf in HIP:

1. The implemenation for HCC is controlled by the HC_FEATURE_PRINTF
   macro, and it works only with the HCC compiler used in combination
   with the HCC runtime.

2. The implementation for hip-clang requires the VDI runtime, and is
   always enabled with that combination.

Change-Id: Ibaeda7900ffe2ce602ca0094aafed0f1147ac2b6
2020-03-16 04:00:39 -04:00
Vladislav Sytchenko 4ca9cda372 Fix typo in device __shfl_xor function
Change-Id: I8bcdd53ced00c596a0af013a0c34e37aa67c93ae
2020-03-10 13:23:08 -04:00
Nick Curtis 09edc7e49c Fix incorrect shfl_xor for Windows
copy/paste error, need __shfl_xor w/ lane_mask
2020-03-10 12:04:05 -05:00
Sameer Sahasrabuddhe 09130b3b92 separate printf declaration for vdi/clang
There are now two implementations of printf in HIP:

1. The implemenation for HCC is controlled by the HC_FEATURE_PRINTF
   macro, and it works only with the HCC compiler used in combination
   with the HCC runtime.

2. The implementation for hip-clang requires the VDI runtime, and is
   always enabled with that combination.
2020-03-09 09:40:05 +05:30
Nick Curtis b7dd073d93 fix long shuffle implementations for windows (#1895)
Fixes for SWDEV-223694
2020-02-26 15:53:56 +05:30
Nick Curtis 797a929a65 Implement long / long long shuffles (#1829)
Implement additional data-types for shuffles (long and long long).
Based upon the double implementation.
2020-02-15 09:51:09 +05:30
Maneesh Gupta 00bd5d1cec Revert PRs that break ROCm builds (#1781)
Fixes SWDEV-218626 and SWDEV-218629

Changes:
- Revert "`static inline` in a header, just like excess sugar in a diet, causes bloat (#1692)"
   This reverts commit be70b9f7e7.
- Revert "Fix rocFFT build failure (#1777)"
   This reverts commit 753277422a.
2020-01-08 15:11:58 +05:30
Alex Voicu be70b9f7e7 static inline in a header, just like excess sugar in a diet, causes bloat (#1692) 2019-12-23 19:09:38 +05:30
satyanveshd 6b06911ef1 fixed directed tests fail when hcc bumped to 3.0 (#1678)
Handled the HCC version check appropriately as few of the directed tests (SWDEV-212161) were failing when hcc was bumped to 3.0.
2019-11-20 21:37:52 +05:30
satyanveshd 4b413739a9 Map clock64() to __builtin_readcyclecounter() (#1473)
Fixes SWDEV-203215.
2019-09-30 10:40:31 +05:30
mhbliao 119ee4b671 [hip] Stop using noduplicate and replace it with convergent. (#1390) 2019-09-05 10:03:43 +00:00
mshivama d75dc4eb29 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 0e3198be25 Corrected declaration of __ockl_clz_u64() (#1340) 2019-08-20 12:06:36 +00:00
Alex Voicu a85b0fe68e This difference makes absolutely no sense. 2019-08-02 12:30:03 +03:00
Michael LIAO 498fe92734 [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 ff74babedf 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 117bdd8774 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 9bd2d5746d [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 a64637da2c [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 beadaab661 Fix for __popcll() device function implementation. 2019-04-19 08:53:22 -04:00
Konstantin Pyzhov b7bd29924a Fix for __ffsll() device functions. 2019-04-18 13:07:24 -04:00
Michael LIAO 939d153c1a 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 e51fa174c8 [Device Function] Fix typos. 2019-03-19 15:32:19 -04:00
Michael LIAO 950b6efe72 [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 0b86b421c1 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 817b27d530 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 f6f160fa6b 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 19404e603d Fix logic for double variants of __shfl*
Change-Id: I604f00b54cf4bd9c5f26ca6fa680fca5e9629417
2018-10-24 12:39:09 +05:30
Maneesh Gupta 0703a2d0f0 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 0787f74ac2 Replace IRIF fences with atomic_work_item_fence 2018-10-04 21:47:28 +00:00
Yaxun Sam Liu cf184460e9 Fix build failure of hipTestHalf and hipTestIncludeMath for hip-clang 2018-09-18 21:00:15 -04:00
Maneesh Gupta 66f863d1f3 Merge branch 'master' into support-malloc 2018-09-17 10:17:25 +05:30
carlushuang d577f27d1a 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