Wykres commitów

487 Commity

Autor SHA1 Wiadomość Data
Wen-Heng (Jack) Chung 508ad44c7c Revert "Changes to HIP to cope with Promote-free HCC"
This reverts commit 9043ba55db.

Change-Id: I20a9bab3883ad09913b320210344d37599cb8fcd


[ROCm/hip commit: 77e21dc09f]
2017-03-14 22:59:27 +08:00
Maneesh Gupta 5191fc0c5c Merge branch 'amd-master' into amd-develop
[ROCm/hip commit: 675dd1cedf]
2017-03-14 13:44:41 +05:30
Ben Sander 71fc982cbe Refactor registered memory calls.
[ROCm/hip commit: 524e007db5]
2017-03-11 09:18:27 -06:00
Ben Sander a735ffa947 Update hipHostRegister debug and pointerTracker debug and notes
[ROCm/hip commit: 0a554f4dc1]
2017-03-11 09:18:27 -06:00
Ben Sander 3297a65b8f Fix copying of registered memory.
Set device properly so copying can recover context.
Enhance test to catch this case.


[ROCm/hip commit: 94c85fd4fc]
2017-03-11 09:18:27 -06:00
Rahul Garg 4954d140d4 IPC supported using ROCR APIs
Change-Id: I0a353b1240098f4b20fa266a871f5f5826290af9


[ROCm/hip commit: 32d8a58f18]
2017-03-10 23:45:28 +05:30
Ben Sander 72395aecc5 Fix bug in hipModuleGetFunction.
Modules with > 1 function didn't return the function correctly.
Also fix coding convention issues


[ROCm/hip commit: 439e37ab76]
2017-03-08 13:52:38 -06:00
Aditya Atluri fafd8d0f0a fixed atan2f arguments
Change-Id: I0bb621e94d57594c3899e51d0c34ef43306cead0


[ROCm/hip commit: 5009bfb2df]
2017-03-07 14:06:03 -06:00
Aditya Atluri fe81d08987 Added new API, hipMemPtrGetInfo
1. This API returns memory allocation size of pointer
2. Added test to check its functionality

Change-Id: I87976d817b5a6ca5530336c09e7cb0420601cb2c


[ROCm/hip commit: 1546732604]
2017-03-07 13:46:29 -06:00
Wen-Heng (Jack) Chung 9043ba55db 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


[ROCm/hip commit: efb9b9e86c]
2017-03-08 01:32:59 +08:00
Aditya Atluri 6cbeeb8e59 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


[ROCm/hip commit: f86f3b3b33]
2017-03-07 11:24:32 -06:00
Ben Sander 0dd1393f97 Modify memcpy and memset to follow C/C++ standard:
- memcpy src is const
    - memset val is int


[ROCm/hip commit: d572e0616e]
2017-03-06 16:38:22 -06:00
Rahul Garg 6e13b64b35 Removed hsakmt headers
Change-Id: I4ffc95d5823489195ebc5638226b49ea2995f603


[ROCm/hip commit: c8e985f83c]
2017-03-06 22:37:05 +05:30
Rahul Garg 4dc60f9990 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


[ROCm/hip commit: bddd6b73c0]
2017-02-27 15:24:17 +05:30
Aditya Atluri c6969c157a Added initial support for hipMemcpyFromSymbol. But not working!
Change-Id: I48d8c7de4ec9f85c6c942be995fb488a3931f5d7


[ROCm/hip commit: 2e245ae58c]
2017-02-23 11:29:06 -06:00
Aditya Atluri d24435ea9b added runtime api hipMemcpyFromSymbolAsync
Change-Id: Ibaf925faf0ba464dd0ed6c5ea74c224c2ce38889


[ROCm/hip commit: 639fd4dd5e]
2017-02-22 19:16:35 -06:00
Aditya Atluri 9e1a6a4013 Enable symbol tests
Change-Id: I6bd036bf00c8051c8ff728ee60562c4ebd222160


[ROCm/hip commit: d52c5867f2]
2017-02-22 13:42:03 -06:00
Aditya Atluri 8ca5a81ee1 v3: added free for ihipModuleSymbol_t structures inside tracker
Change-Id: Ib8041a05312c08cbdf2d4fee5e7cbae17df6efff


[ROCm/hip commit: d03fe5a40d]
2017-02-10 13:42:10 -06:00
Aditya Atluri 37e317ddb4 v2: Fixed hipModule memory management
1. Changed test to assert for same hipFunction values
2. Added better memory management for hipModule

Change-Id: I10d7aef13c215a2211e262f3c79017f26a17d9a7


[ROCm/hip commit: 378eb3fa55]
2017-02-10 13:32:13 -06:00
Aditya Atluri 76f30e96e8 fixed hipFunction memory management
Change-Id: I7ebb323419bcd220ebd6466a8eb38e7bfdb1520a


[ROCm/hip commit: 6fd3daed30]
2017-02-09 17:22:55 -06:00
Aditya Atluri 82c0dcb03f 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


[ROCm/hip commit: 01b66dd998]
2017-02-08 12:04:05 -06:00
Aditya Atluri 6d5992d445 changed __global__ attribute
1. Moved around tests and added them to HIT

Change-Id: I5d75280c42a5af852670ebabc7305ee56721ec7b


[ROCm/hip commit: 5e3d63c0a3]
2017-02-03 10:53:36 -06:00
Aditya Atluri afb38e15de fixed symbol memcpy issue
Change-Id: I89d7401be51d194bcbf771020ba66e3d3b6a18f8


[ROCm/hip commit: 2790e9a448]
2017-02-01 17:54:59 -06:00
Aditya Atluri ad08bdcfb0 fixed threadfence ir
Change-Id: Ia3afb54bdb50864e678d849608d72a3c321edba1


[ROCm/hip commit: f7ff199daa]
2017-01-27 08:42:26 -06:00
Ben Sander bf3b6354ae 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.


[ROCm/hip commit: 0409bf639c]
2017-01-25 21:53:17 -06:00
Ben Sander e129b09a6f Read HCC_OPT_FLUSH and optimize dispatch accordingly.
If HCC is in this mode, we can use less aggressive flushes in some
cases.


[ROCm/hip commit: 1635b8f43f]
2017-01-25 21:50:52 -06:00
Ben Sander e95ebf93b1 Show dynamic shared mem usage not static.
[ROCm/hip commit: 813c189b33]
2017-01-23 22:34:41 -06:00
Ben Sander 3be19a4ffa Move core env var processing to env.cpp
[ROCm/hip commit: 0dabdeb01f]
2017-01-23 22:34:41 -06:00
Ben Sander f9ecf383e3 Add debug tips to docs
[ROCm/hip commit: 96eac67929]
2017-01-23 22:34:41 -06:00
Ben Sander c275c0ff72 Log error with ihipLogError. Cleans up CXL trace display.
[ROCm/hip commit: 4586091dfe]
2017-01-23 22:34:41 -06:00
Aditya Atluri b734000109 added ir code sad u8
Change-Id: Ie0d454b3bb9a6c9a028c091ad3aa969719b02cc9


[ROCm/hip commit: 4e3afa6514]
2017-01-20 17:21:51 -06:00
Aditya Atluri f5e3b72d0a 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


[ROCm/hip commit: f537d96633]
2017-01-20 09:49:11 -06:00
Ben Sander 7a402a7fb1 Add HIP_SYNC_HOST_ALLOC, HipReadEnv
[ROCm/hip commit: 927ac3d81c]
2017-01-19 23:55:24 -06:00
Ben Sander b6c7c5bd8b Change ihipDeviceSetState,ihipDevice* so it doesn't log error
Cleans up debug trace.


[ROCm/hip commit: 8209320ef0]
2017-01-19 23:55:24 -06:00
Ben Sander 5998ca2d85 Doc update - describe debug techniques
Also tweak sample to remove unneeded HIP_KERNEL_NAME.
Comment update


[ROCm/hip commit: 1f5d16afe7]
2017-01-19 12:40:45 -06:00
Ben Sander 93642a85c7 Fix debug display for Module launch kernels
[ROCm/hip commit: 1c73e44ebe]
2017-01-19 12:40:45 -06:00
Aditya Atluri 617a59c90d 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


[ROCm/hip commit: ea382e15f8]
2017-01-18 11:53:47 -06:00
Aditya Atluri 77401c9b64 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


[ROCm/hip commit: b723169ee9]
2017-01-17 14:57:51 -06:00
Aditya Atluri ea01905cee enabled integer intrinsics tests
Change-Id: I5d28d556f228240eda2fc0098121ed3b29b041e7


[ROCm/hip commit: 13ce9ece77]
2017-01-17 09:59:08 -06:00
Aditya Atluri 72202cccbd v1: Working on Integer Intrinsics
1. Half way through
2. May not work
3. No test written

Change-Id: I705b743a78b142ff068e2521870e73fca7ad2b1c


[ROCm/hip commit: b09ad764a1]
2017-01-16 14:55:29 -06:00
Aditya Atluri 38edad98a6 moved most of the fp16 code inside hip_fp16.cpp
1. As we use holder data structure, we move all the cmp, math, cvt apis to cpp file
2. All the tests passed
3. Add more extensive testing for half

Change-Id: I92c6399dace602a0a24432728e3f2a07124e6fb1


[ROCm/hip commit: 18631efbc0]
2017-01-16 12:32:35 -06:00
Aditya Atluri 8e411f0beb 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


[ROCm/hip commit: 6f2cfddc67]
2017-01-16 12:10:05 -06:00
Aditya Atluri 1f5fe6714b added half2 math operations
1. They use SDWA + LLVM IR
2. Added these functions to test
3. Need to do exp, exp10, log, log10, rint

Change-Id: I06176acc6cb8bb054495310531777406a41b54e4


[ROCm/hip commit: 0e576295b4]
2017-01-13 12:27:11 -06:00
Aditya Atluri 0180125a29 added packed math fp16 native device functions
1. Added SDWA implementation inside IR file
2. Added device functions to header + used them in test

Change-Id: Ib4e059a58eee201cc82438689e3e9bc5f9d26653


[ROCm/hip commit: 5ef8ef3bd7]
2017-01-12 14:10:51 -06:00
Aditya Atluri 7f00c120a7 Started adding native half math library support
1. Removed HIP_EXPERIMENTAL env variable so that device code will be accessed from LLVM IR
2. Removed soft support from headers and moved to hip_fp16.cpp
3. Added LLVM IR + inline asm to hip_ir.ll
4. Added test for fp16
5. Added barriers for hcc 3.5 and hcc 4.0 for half support
a. Which means, hcc 4.0 can parse __fp16 but hcc 3.5 cant
b. HCC 4.0 code is implemented now, hcc 3.5 will be added later

Change-Id: Ic37859b2688ebb02e168bab643d1882bf4727952


[ROCm/hip commit: d180fdaae0]
2017-01-12 11:30:20 -06:00
Aditya Atluri 5de29029cd changed copyright year from 2016 to 2017 in src directory
Change-Id: Idb97db509b2b4b1656b2df7a14a62ade38c9d574


[ROCm/hip commit: 73fcce26f9]
2017-01-11 18:05:41 -06:00
Aditya Atluri 4186194692 Added proper device data types
Change-Id: I42029635ff68c3c13a764a3eda6447e6c77878c6


[ROCm/hip commit: 39910029a6]
2017-01-11 15:06:25 -06:00
Ben Sander 1908d9504b Add HIP_MAX_QUEUES feature.
Includes some tricky manipulation of the locks for contexts and streams.
issue is that stealing a stream requires we lock the context to
walk the streams to find a victim.  To avoid deadlock, we can't
have a stream locked when we lock the context.  This implementation
releases the stream lock, then acquires the context and selects the
victim.
A more stable implemenation might be to copy the stream list
from a context so that a lock is not required to walk all streams.
Smart shared_ptr could be used to prevent the streams from being
deallocated during the walk.


[ROCm/hip commit: a3e0012567]
2017-01-09 21:02:56 -06:00
Ben Sander bbb1485a83 First pass at virtualized queue support.
Also updated stream debug messages to consistently use trace_helper.


[ROCm/hip commit: 93fbc9cf7b]
2017-01-09 21:02:53 -06:00
Ben Sander 72f6afab45 tolerate spaces in hip args
[ROCm/hip commit: 3a42a7642a]
2017-01-09 20:57:13 -06:00