Commit Graph

497 Commits

Author SHA1 Message Date
Aditya Atluri 5a0685c137 removed llvm dependency and metadata functionality
Change-Id: Ib9783b75d326559ed29c5aa2218aed40d20ad0fb
2017-03-23 10:16:37 -05:00
Rahul Garg e22044de36 Fix for hipMemcpyFromSymbol (sync)
Change-Id: I66afec5443ce904a63ced1fafece5144ca59393e
2017-03-21 23:48:04 +05:30
Aditya Atluri 52859a8a40 added support for lgammaf and lgamma
1. Implementation inside HIP

Change-Id: I657263b7276a57c56081d3336fef816b5f204eff
2017-03-17 18:26:10 -05:00
pensun faf0fbebe9 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 ad882222b0 Initial integration with Alex' Generic Grid Launch
Change-Id: I559afb80e9e39ec0d119bb3bf3b85ef9e448caf6
2017-03-17 14:59:34 -05:00
Aditya Atluri 9645b0e0dc Added default module launch api functionality
1. As in hipModuleLaunchKernel(..., kernelParams, nullptr); works with this commit
    2. Added headers AMDGPUPTNote.h, AMDGPURuntimeMetadata.h to do code object meta data parsing
    3. Changed CMake to look at llvm link libraries
    4. HIP developer should set env variable LLVM_HOME to remove link errors
    5. HIP depends on installed LLVM (not source, not build)
    6. Added sample to test out the feature
    7. Right now HCC does not support embedding metadata in code object. Use clang opencl
    8. Changed HIPCC to read LLVM_HOME env var
    9. New argument to CMake should be given -DLLVM_HOME=<where llvm 5.0 is installed>

Change-Id: Iba38194aa872d97cc2c90a8e5ff746c48055c868
2017-03-17 13:11:34 -05:00
Ben Sander 92fd4c8f10 Add __device__ to needful functions for promote-free. 2017-03-17 11:19:48 -05:00
Ben Sander f4256cb57c Add USE_PROMOTE_FREE_HCC for smooth transition to new HCC caps.
ADDRESS_SPACE_1 defines
2017-03-17 11:04:39 -05:00
Maneesh Gupta e3aa3d7ba6 Merge branch 'amd-master' into amd-develop
Change-Id: I01a77c34e11b1b02cb20e11b105741f6bd383543
2017-03-15 09:56:45 +05:30
Rahul Garg dccf9e2aa9 Added hipMemsetD8
Change-Id: I6a230a036c9c46c72a77d5f93c16ce8a00c3f837
2017-03-14 22:11:34 +05:30
Wen-Heng (Jack) Chung 17af837120 Revert "Changes to HIP to cope with Promote-free HCC"
This reverts commit 0005dd5f66.

Change-Id: I20a9bab3883ad09913b320210344d37599cb8fcd
2017-03-14 22:59:27 +08:00
Maneesh Gupta 0853c8ac2e Merge branch 'amd-master' into amd-develop 2017-03-14 13:44:41 +05:30
Ben Sander b7acb85fa8 Refactor registered memory calls. 2017-03-11 09:18:27 -06:00
Ben Sander e43592721e Update hipHostRegister debug and pointerTracker debug and notes 2017-03-11 09:18:27 -06:00
Ben Sander 23a58775df Fix copying of registered memory.
Set device properly so copying can recover context.
Enhance test to catch this case.
2017-03-11 09:18:27 -06:00
Rahul Garg 3af487007b IPC supported using ROCR APIs
Change-Id: I0a353b1240098f4b20fa266a871f5f5826290af9
2017-03-10 23:45:28 +05:30
Ben Sander 09df0977c0 Fix bug in hipModuleGetFunction.
Modules with > 1 function didn't return the function correctly.
Also fix coding convention issues
2017-03-08 13:52:38 -06:00
Aditya Atluri 2ea7c5d28a fixed atan2f arguments
Change-Id: I0bb621e94d57594c3899e51d0c34ef43306cead0
2017-03-07 14:06:03 -06:00
Aditya Atluri 7b7d53f875 Added new API, hipMemPtrGetInfo
1. This API returns memory allocation size of pointer
2. Added test to check its functionality

Change-Id: I87976d817b5a6ca5530336c09e7cb0420601cb2c
2017-03-07 13:46:29 -06:00
Wen-Heng (Jack) Chung 0005dd5f66 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
Aditya Atluri 9f575721aa added new field to hipDeviceProp_t structure gcnArch.
1. It is an integer containing gfx values 701, 801, 802, 803
2. On NV path, it is zero

Change-Id: I2b4c7f48981d0214d8c6b1905d2cc85b16203419
2017-03-07 11:24:32 -06:00
Ben Sander 8e50134d31 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
Rahul Garg 158cb58c36 Removed hsakmt headers
Change-Id: I4ffc95d5823489195ebc5638226b49ea2995f603
2017-03-06 22:37:05 +05:30
Rahul Garg c837b8d713 Context management related changes in HIP.
-
-Contexts across threads are listed under device
-Device reset cleans up all contexts and re-initializes _primaryCtx

Change-Id: Ie1cfbb26d43a8dc6869be3e6ebaf7344ce374643
2017-02-27 15:24:17 +05:30
Aditya Atluri 7ac5017cb9 Added initial support for hipMemcpyFromSymbol. But not working!
Change-Id: I48d8c7de4ec9f85c6c942be995fb488a3931f5d7
2017-02-23 11:29:06 -06:00
Aditya Atluri 3d348b2d81 added runtime api hipMemcpyFromSymbolAsync
Change-Id: Ibaf925faf0ba464dd0ed6c5ea74c224c2ce38889
2017-02-22 19:16:35 -06:00
Aditya Atluri 2e3f3c7d26 Enable symbol tests
Change-Id: I6bd036bf00c8051c8ff728ee60562c4ebd222160
2017-02-22 13:42:03 -06:00
Aditya Atluri 1cffe49775 v3: added free for ihipModuleSymbol_t structures inside tracker
Change-Id: Ib8041a05312c08cbdf2d4fee5e7cbae17df6efff
2017-02-10 13:42:10 -06:00
Aditya Atluri 554fe191e1 v2: Fixed hipModule memory management
1. Changed test to assert for same hipFunction values
2. Added better memory management for hipModule

Change-Id: I10d7aef13c215a2211e262f3c79017f26a17d9a7
2017-02-10 13:32:13 -06:00
Aditya Atluri 6110fcdfb6 fixed hipFunction memory management
Change-Id: I7ebb323419bcd220ebd6466a8eb38e7bfdb1520a
2017-02-09 17:22:55 -06:00
Aditya Atluri 60ec83c683 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 f009f3533d 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 0d4e6ae60a fixed symbol memcpy issue
Change-Id: I89d7401be51d194bcbf771020ba66e3d3b6a18f8
2017-02-01 17:54:59 -06:00
Aditya Atluri 537dc7597b fixed threadfence ir
Change-Id: Ia3afb54bdb50864e678d849608d72a3c321edba1
2017-01-27 08:42:26 -06:00
Ben Sander 1a24178c78 Add HIP_FAIL_SOC.
Fail sub-optimal-copies rather than perform them slowly.
SOC occur on async copy of unpinned memory, or P2P copy between GPUs
that are not peers.
2017-01-25 21:53:17 -06:00
Ben Sander 2f7a8ec39c Read HCC_OPT_FLUSH and optimize dispatch accordingly.
If HCC is in this mode, we can use less aggressive flushes in some
cases.
2017-01-25 21:50:52 -06:00
Ben Sander 27447f10c2 Show dynamic shared mem usage not static. 2017-01-23 22:34:41 -06:00
Ben Sander bc809460f5 Move core env var processing to env.cpp 2017-01-23 22:34:41 -06:00
Ben Sander 4de3df746c Add debug tips to docs 2017-01-23 22:34:41 -06:00
Ben Sander d19c4767b7 Log error with ihipLogError. Cleans up CXL trace display. 2017-01-23 22:34:41 -06:00
Aditya Atluri 9952117d64 added ir code sad u8
Change-Id: Ie0d454b3bb9a6c9a028c091ad3aa969719b02cc9
2017-01-20 17:21:51 -06:00
Aditya Atluri 02190736e3 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
Ben Sander db3f4889ca Add HIP_SYNC_HOST_ALLOC, HipReadEnv 2017-01-19 23:55:24 -06:00
Ben Sander 6de88d4293 Change ihipDeviceSetState,ihipDevice* so it doesn't log error
Cleans up debug trace.
2017-01-19 23:55:24 -06:00
Ben Sander ca1cef4e06 Doc update - describe debug techniques
Also tweak sample to remove unneeded HIP_KERNEL_NAME.
Comment update
2017-01-19 12:40:45 -06:00
Ben Sander 2ffc9f4e22 Fix debug display for Module launch kernels 2017-01-19 12:40:45 -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 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