Commit Graph

52 Commits

Author SHA1 Message Date
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
Maneesh Gupta a3a93a68d4 Merge pull request #657 from yxsamliu/fix-clz
Fix ambiguity of __clz and __clzll
2018-09-03 16:34:42 +05:30
Maneesh Gupta 7459defec1 Merge pull request #651 from yxsamliu/hip-clang-clock
Add clock() and clock64()
2018-09-03 16:32:30 +05:30
Yaxun Sam Liu 11c91c2fdd Fix ambiguity of __clz and __clzll 2018-08-31 18:07:57 -04:00
Yaxun Sam Liu 1f74a66bea Add clock() and clock64() 2018-08-29 10:51:00 -04:00
Aaron Enye Shi ba9fc6f355 Add bitinsert64 to device functions 2018-08-28 20:01:14 +00:00
Aaron Enye Shi b939a3c6ed Clean up and add meaningful variables to bit funcs 2018-08-28 18:19:48 +00:00
Aaron Enye Shi b445e45007 Add bitextract and bitinsert functions 2018-08-20 16:46:12 +00:00
Yaxun Sam Liu 02d0e93601 Support malloc/free for hip-clang 2018-07-27 16:24:51 -04:00
Brian Sumner 71f96388ed Drop use of NVCC_COMPAT since it is always set 2018-07-27 09:29:29 -07:00
Maneesh Gupta b5cfa773ef Merge branch 'master' into move-memcpy 2018-07-17 10:51:42 +05:30
Maneesh Gupta fb5199dee6 Merge branch 'master' into feature_native_vector_types
Change-Id: I943b94ee230871a960d8f9c321ad5e096183b415
2018-07-17 09:51:22 +05:30
Yaxun (Sam) Liu e22c35e124 Include stddef.h in device_functions.h and remove use of uint8_t 2018-07-10 18:12:41 -04:00
Yaxun (Sam) Liu 8136a348ab 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 4a7ad93655 Fix min/max, icmp asm and add comment for conversion functions 2018-07-10 18:56:48 +00:00
Aaron Enye Shi d1323f4f9b 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 5ec7973a6f Add workaround __local_to_generic 2018-07-09 17:56:33 +00:00
Yaxun (Sam) Liu e0390ddc9f Add declare of __get_dynamicgroupbaseptr for host compilation 2018-07-09 17:56:25 +00:00
Aaron Enye Shi 930a16bccd Implement Memory Fence Functions in header
Enabled __llvm_fence_* functions for seq_cst.
2018-07-04 23:35:24 +00:00
Aaron Enye Shi 07de5cb334 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 9ac31e0bb6 Implement __shfl_* funcs into HIP headers 2018-06-26 18:32:11 +00:00
Aaron Enye Shi 8ac864c2e3 Replace __hip_hc_ir_ inline asm with __ockl_* functions 2018-06-20 20:40:14 +00:00
Aaron Enye Shi 6dc16bbf04 Implement __ballot, __any, __all into HIP headers 2018-06-20 17:39:39 +00:00
Aaron Enye Shi 2142eb4d12 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 e02fc7e680 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 fe4e6c53fc Move hipclang funcs into corresponding headers 2018-06-20 17:39:15 +00:00
Maneesh Gupta 946c8da88a 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 089ab3b947 Switch the atomic implementation to use Clang builtins. 2018-06-02 12:27:17 +01:00
Alex Voicu ab4b2a650b Re-sync with upstream. Add integer abs. 2018-05-31 16:38:00 +01:00
Alex Voicu 59db16fd36 Switch to using ROCDL directly, as opposed to via HC. Add missing bits. 2018-05-31 03:17:26 +01:00
Siu Chi Chan b285145966 add intrinsics mbcnt_lo, mbcnt_hi, lane_id 2018-05-08 13:43:53 -04:00
Laurent Morichetti 211c18e674 Add missing __device__ function attributes. 2018-04-11 09:29:37 -07:00
Maneesh Gupta 1ba06f63c4 Apply .clangformat to all repo source files
Change-Id: I7e79c6058f0303f9a98911e3b7dd2e8596079344
2018-03-12 11:29:03 +05:30
Aditya Atluri e0133e627d fixed header names
Change-Id: I21650d6398187d3767b28e8ac81b2642d3b89a0e
2017-03-31 12:18:55 -05:00
Aditya Atluri 91ae5d6bd7 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 ea382e15f8 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 b723169ee9 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 13ce9ece77 enabled integer intrinsics tests
Change-Id: I5d28d556f228240eda2fc0098121ed3b29b041e7
2017-01-17 09:59:08 -06:00
Aditya Atluri 02c7f3a70f 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 c0fd0921cb 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 b09ad764a1 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 6f2cfddc67 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