Commit Graph

52 Commits

Author SHA1 Message Date
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
Alex Voicu e03ca1a72e Re-sync with upstream. Add integer abs. 2018-05-31 16:38:00 +01:00
Alex Voicu 14e6a04387 Switch to using ROCDL directly, as opposed to via HC. Add missing bits. 2018-05-31 03:17:26 +01:00
Siu Chi Chan 4f12ddea8f add intrinsics mbcnt_lo, mbcnt_hi, lane_id 2018-05-08 13:43:53 -04:00
Laurent Morichetti 8dcfbf5bee Add missing __device__ function attributes. 2018-04-11 09:29:37 -07:00
Maneesh Gupta 9e47fccc89 Apply .clangformat to all repo source files
Change-Id: I7e79c6058f0303f9a98911e3b7dd2e8596079344
2018-03-12 11:29:03 +05:30
Aditya Atluri 614e7db513 fixed header names
Change-Id: I21650d6398187d3767b28e8ac81b2642d3b89a0e
2017-03-31 12:18:55 -05:00
Aditya Atluri 3d4dcee35d Added script for generating math api docs
1. Commented out unsupported device math functions
2. Moved function signatures to the top of implementation snippets
3. Added script to generate markdown documentation for device math apis
4. Added the generated file from the script which should be present everytime

Change-Id: Ic579dd8b8fdffa6e1b4d4f5f3fd8a803f4dcaac7
2017-01-18 14:40:50 -06:00
Aditya Atluri 41a46effef fixed compilation issues
1. Fixed compilation issues for tests
2. Added missing intrinsics + math functions
3. Disabled some device functions as they are causing linking error with HCC

Change-Id: I79d52c4c7a539cc8ef40580247ad97ffcb975f09
2017-01-18 11:53:47 -06:00
Aditya Atluri d23b6b8694 Moved device code to mimic cuda header behavior
1. All fp32, fp64 math device/host functions should be in math_functions.h/.cpp
2. All fp32, fp64 fast math intrinsics for device/host functions should be in device_functions.h/.cpp
3. All the device code implementations should be in device_util.h/.cpp
4. Hence, made changes appropriately by moving code and creating new header files
5. Added math_functions.cpp/.h
6. Changed #ifndef signature to make sure no conflicts between headers with same names in hip/hip_runtime.h and hip/hcc_detail/hip_runtime.h
7. Changed tests to fit the code changes, making them to include appropriate headers
8. Added math_functions.cpp to CMakeLists.txt
9. Some of the tests are still broken, mostly host math functions will fix them in next commit
10. TODO: FIX compilation issues for host math functions

Change-Id: I7a17637d7e294a7d224ffba932c1a08668febd26
2017-01-17 14:57:51 -06:00
Aditya Atluri 3f9a9d9318 enabled integer intrinsics tests
Change-Id: I5d28d556f228240eda2fc0098121ed3b29b041e7
2017-01-17 09:59:08 -06:00
Aditya Atluri 9ca135ac2e added last few integer intrinsic support
1. Added usad, umulhi, urhadd
2. Corrected implementation of __hadd, __hradd
3. TODO: __sad(). It gets tricky as ISA sees them as unsigned

Change-Id: Ibd2c2133b462f9393f3990355706386c79256bba
2017-01-17 09:27:51 -06:00
Aditya Atluri f0ea51c786 fixed broken tests and device code for integer intrinsics
1. Fixed build issues with new Integer intrinsics
2. Changed tests to work exactly as CUDA code
3. Still some integer intrinsics need to be supported

Change-Id: Ie6f4171259cf4da517436895d4f6f01e01f59b11
2017-01-17 09:00:09 -06:00
Aditya Atluri feba9fe213 v1: Working on Integer Intrinsics
1. Half way through
2. May not work
3. No test written

Change-Id: I705b743a78b142ff068e2521870e73fca7ad2b1c
2017-01-16 14:55:29 -06:00
Aditya Atluri d496576b55 Added type conversion intrinsics
1. Added all type conversion intrinsics
2. NO TESTS have been added. (Will add in next commit)
3. Sanatized code in hip_runtime.h
4. Added passed() to hipTestHalf to make it pass on HIT

Change-Id: I0987963c802fc7ff4d7e07d7b88d86da35da53c9
2017-01-16 12:10:05 -06:00