Commit Graph

65 Commits

Author SHA1 Message Date
Laurent Morichetti 2bc7adfa62 Fixes a build error with hcc 2018-02-28 14:12:09 -08:00
Laurent Morichetti f8b0c96462 Add initial support for clang 2018-02-28 12:31:26 -08:00
Alex Voicu cffd0e14eb This implements the trivial change needed to move back from the hip{Something}_{x, y, z} macros to the natural CUDA syntax of Something.{x, y, z}. This is contained in lines 384-404 in hip_runtime.h. All of the other changes have to do with changing unit tests to use this syntax. The macros are retained for backwards compatibility. 2017-11-19 01:54:12 +00:00
Alex Voicu d8e323d4b5 Clean up trailing whitespace so as to reduce noise in #246. 2017-11-08 00:08:55 +00:00
Ben Sander 2e8ec71e40 Merge pull request #222 from bensander/fix_device_prop
Fix device prop
2017-10-30 17:58:48 +01:00
Siu Chi Chan f8bdb9f688 add a printf device function 2017-10-23 18:30:08 -04:00
Ben Sander acf89b43d4 Update device properties.
- clear properties to defined initial state.
- enable some property flags which are now supported.
2017-10-20 15:52:13 +00:00
Siu Chi Chan 83d9e889a9 ensure the condition is evaluated before applying the negation operator 2017-09-20 01:38:28 -04:00
Rahul Garg 40ff42e555 Device side assert support 2017-09-07 20:45:27 +05:30
Siu Chi Chan 96e79f97e2 implement __threadfence_system 2017-08-02 08:50:18 +00:00
Weixing Zhang e671cec367 HIP Texture Support 2017-07-17 15:16:12 -04:00
Wen-Heng (Jack) Chung 30ee797dd4 Remove explicit address spaces declarations 2017-07-07 12:46:29 -05:00
Rahul Garg 3c73229916 Abort device function in HIP/HCC, need new HCC
Change-Id: I4195ab75e9b7b48c8b8128d6925ddc0fa5e9e009
2017-06-18 12:31:31 +05:30
Sun, Peng 43df5ba660 Fix error related to undefined reference of __get_dynamicgroupbaseptr().
Change-Id: I14951e1725e35dd5f5e53805f81cdb58661f59f2
2017-06-08 19:24:32 -05:00
Sun, Peng a9808961bd Improve HIP kernel names, attributes and codegen, contributed by Alex Voicu
Change-Id: I2cafbdc5a98e26c7f4fad84739c915e7dc09993c
2017-06-05 11:39:00 -05:00
Aditya Atluri a38e36ec2f added guard against hip_runtime.h so that non-hcc compilers can use it
Change-Id: I3d68deda9ce8a5956e21e15a69e549d6c21e3e39
2017-05-09 10:14:16 -05:00
Sun, Peng c82c84949c Fix warpSize, for related issue in hipeigen and torch
Change-Id: Ic66b24923a363304dca189011869ba7a0a6f8895
2017-04-01 15:42:53 -05:00
Sun, Peng b1ed910942 GGL update, fix for thread-safe access to streams (accelerator_views).
Change-Id: I6dd329a85b3ba7de23d52823febee0c53857a981
2017-04-01 14:50:39 -05:00
Aditya Atluri e0133e627d fixed header names
Change-Id: I21650d6398187d3767b28e8ac81b2642d3b89a0e
2017-03-31 12:18:55 -05:00
sunway513 43f76be76e resolve GGL merge conflicts
Change-Id: I7a5ec3696cf2dd1a77b1686536a1cb84cbfed66e
2017-03-27 22:46:41 -05:00
Sun, Peng ec04521617 Update GGL implementation to extended overload set for make_lambda_wrapper
Change-Id: I949f113671ddf155db8689e8a7f23d415839a7b5
2017-03-21 15:46:44 -05:00
Sun, Peng e7689e9e6e Disable additional debug warning message
Change-Id: Ic5c374589bfad387a7c4c5346430a490e2c6e2a7
2017-03-17 15:03:03 -05:00
pensun 30d5f4ea10 Change the #define of GENERIC_GRID_LAUNCH to take valueat compilation, disable warning messages
Change-Id: Ic6c011529e26de359bcda1e7083727e7ee52887b
2017-03-17 14:59:34 -05:00
pensun 33c38de407 Initial integration with Alex' Generic Grid Launch
Change-Id: I559afb80e9e39ec0d119bb3bf3b85ef9e448caf6
2017-03-17 14:59:34 -05:00
Ben Sander 8cbe310870 Move USE_PROMOTE_FREE_HCC 2017-03-17 12:04:13 -05:00
Ben Sander 29232ff283 Add __device__ to needful functions for promote-free. 2017-03-17 11:19:48 -05:00
Ben Sander e85c167171 Add USE_PROMOTE_FREE_HCC for smooth transition to new HCC caps.
ADDRESS_SPACE_1 defines
2017-03-17 11:04:39 -05:00
Ben Sander ecd8179a71 Add simple device-side assert macro
Currently swallows asserts but will compile.
2017-03-17 10:25:56 -05:00
Wen-Heng (Jack) Chung 77e21dc09f Revert "Changes to HIP to cope with Promote-free HCC"
This reverts commit efb9b9e86c.

Change-Id: I20a9bab3883ad09913b320210344d37599cb8fcd
2017-03-14 22:59:27 +08:00
Maneesh Gupta 675dd1cedf Merge branch 'amd-master' into amd-develop 2017-03-14 13:44:41 +05:30
Aditya Atluri c8969811db make sure the inter-thread intrinsics are working post hawaii
Change-Id: I30ea5284c2160276f5bc0f937dfd386ca8640ce8
2017-03-13 11:16:05 -05:00
Aditya Atluri 1567d20aa8 Added architecture guards around __shfl, dpp and ds_permute device functions
Change-Id: I10f9b08618fbf25b61c1932278fc5759e41c0d66
2017-03-10 08:40:59 -06:00
Wen-Heng (Jack) Chung efb9b9e86c Changes to HIP to cope with Promote-free HCC
Squashed commit of the following:

commit c111b5bd10d7c2a5b0b1ad8b07f6e81185b47b39
Author: Wen-Heng (Jack) Chung <whchung@gmail.com>
Date:   Sat Mar 4 17:06:46 2017 +0800

    Use __device__ for all variables and functions to be used in kernel path

    Abolish __device and adopt [[hc]] in HIP implementation, so __device__ can be
    used on all HIP applications, no matter they are variables or functions.

    Change-Id: I20ca25857ce3bc3e42a5ebf65cafea2c8492f4c7

commit 30c0e4e4701bbf6bd9a7182e0320a71ff73d3a83
Author: Wen-Heng (Jack) Chung <whchung@gmail.com>
Date:   Thu Mar 2 12:14:11 2017 +0800

    XXX FIXME get around LDS spills caused in Promote-free HCC

    hipDynamicShared2 uses all 64KB of LDS for computation. But in Promote-free HCC
    there are cases where LDS spills would occur, which would make the test case to
    hang.

    In this workaround commit we reduce the size of dynamic LDS used to get around
    this known issue, and will revert this commit when LDS spills are resolved in
    HCC.

    Change-Id: If648b36200a4f9143951a8129192bcb7ed0bef5e

commit e803173be2d73e2f132a7ff7f61e7a20b4083d34
Author: Wen-Heng (Jack) Chung <whchung@gmail.com>
Date:   Wed Mar 1 21:41:41 2017 +0800

    Fix math functions which take pointer arguments

    Change-Id: I332c997e640edbc44824691e2a9434c6b3dadefa

commit de590c469e213c42090ff83dbd060f25bb1d6047
Author: Wen-Heng (Jack) Chung <whchung@gmail.com>
Date:   Wed Mar 1 18:38:54 2017 +0800

    Changes to cope with Promote-free HCC

    - abolish usage of address_space GNU attribute
    - use __device in file-scope global variables which would be accessed by GPU kernels
    - temporarily disable some math functions which take pointer arguments

    Change-Id: I730311dee848e20e763e35cd3980317fce0dce0d

Change-Id: I1f6b970b53b9401eeaaab08f04a7b9fed0fb8cf0
2017-03-08 01:32:59 +08:00
Ben Sander d572e0616e Modify memcpy and memset to follow C/C++ standard:
- memcpy src is const
    - memset val is int
2017-03-06 16:38:22 -06:00
Aditya Atluri 01b66dd998 Fixed Hawaii link issues
1. Split hip_ir.ll to hip_hc.ll and hip_hc_gfx803.ll
 a. hip_hc.ll contains arch generic ir implementations
 b. hip_hc_gfx803.ll contains gfx803 (fiji, polaris) specific ir
2. HIPCC can now parse --amdgpu-target=*.
 a. Usage: hipcc --amdgpu-target=gfx803 --amdgpu-target=gfx701
 b. TODO: Convert to --amdgpu-target=gfx803,gfx701
3. With LLC in HCC able to generate native f16 isa, removed inline half asm math ops
4. Fixed threadfence and threadfence_block to use functions in rocdl

Change-Id: Ic9a9e3e04139b0d75d2c2a263c030ca77adc1019
2017-02-08 12:04:05 -06:00
Aditya Atluri 5e3d63c0a3 changed __global__ attribute
1. Moved around tests and added them to HIT

Change-Id: I5d75280c42a5af852670ebabc7305ee56721ec7b
2017-02-03 10:53:36 -06:00
Aditya Atluri d75d0596bf added device functions header to hip_runtime.h
Change-Id: I635931e1fbe4b7f0f64f3a126c0f1badcd6d234b
2017-01-25 08:14:30 -06:00
Aditya Atluri f537d96633 fixed compilation issues for vector types and math functions
1. Added math_functions.h to hip_runtime.h
2. Changed operator overloading classifier static to static inline
3. Added vector types test for gpu
4. Seperated __host__ and __device__ for math functions in headers

Change-Id: I499862fad5d7b10da686da9011d7ecefe523f8e2
2017-01-20 09:49:11 -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 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
Aditya Atluri 39910029a6 Added proper device data types
Change-Id: I42029635ff68c3c13a764a3eda6447e6c77878c6
2017-01-11 15:06:25 -06:00
pensun 17b98d59b8 IPC prototyps and part of the implementation included
Change-Id: Id88c7f155d23ec63f57a6ef05098fba43f8af336
2016-12-06 14:24:09 -06:00
Ben Sander ff2f54c1bf Add additional controls for forcing serialization and blocking.
Move HIP_COHERENT_HOST_ALLOC so it is read once at init time.
Add HIP_LAUNCH_BLOCKING_KERNELS, HIP_API_BLOCKING.
Update docs on debug and chicken bits.

Conflicts:
	src/hip_hcc.cpp
2016-12-02 18:03:59 -06:00
Aditya Atluri 7131d0b961 added support for rcp for float and double
Change-Id: Ibeba3a9f64494fc0a176bcb4a854fb2f56567b55
2016-11-23 20:01:18 -06:00
Aditya Atluri 30674382a4 added fma for double and float
1. Added fma intrinsic support for double and float
2. Added test for fma

Change-Id: I909fdbec34a3d12c03ba6eff3a39376a7128ee43
2016-11-23 18:22:05 -06:00
Aditya Atluri 043da795f6 Added fast math flag
1. Use -DHIP_FAST_MATH to make precise math functions compiled to fast math
2. Added double fast math functions for sqrt
3. Changed hipcc to parse -use_fast_math (not working)
4. Added passed tag to hipFloatMath test

Change-Id: I72884b2436b4efe61e9a9297346c1358fee38a2d
2016-11-23 11:19:15 -06:00
Aditya Atluri f843928ddd added fast math intrinsics to HIP
1. Added fast math intrinsics for single precision data types
2. Added test to check the intrinsics
3. Added HIP_PRECISE_MATH macro to enable precise math on fast math

Change-Id: Iadacbb6182c31252c5e3252854372d1b80dfd27b
2016-11-22 15:26:00 -06:00
Aditya Atluri 94d2115d6d added fast math APIs
1. Added fast math apis for sin, cos, tan, sincos
2. Added test for trig math functions
3. Added logarithm fast math
4. Changed how hipGetDevice, hipDeviceGetCacheConfig emit errors

Change-Id: Ie6ab594ddd5853cbe85e39a2f6d3479a807fa323
2016-11-22 10:20:09 -06:00