Commit Graph

451 Commits

Author SHA1 Message Date
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
Rahul Garg 2e9defbef8 Added state for hipDevice.
Change-Id: Idbc3c04cd054a01b634856a1e0a23ff172e991aa


[ROCm/hip commit: 5fb09879c7]
2017-01-09 23:54:01 +05:30
Ben Sander ec4f4a643d Support size_t in memset kernel.
Add disable for HSA_AMD_AGENT_INFO_MAX_WAVES_PER_CU
Remove one copy of completion_future in memset.


[ROCm/hip commit: c325c988b1]
2016-12-22 12:25:09 -06:00
Ben Sander c1ac04322a Increment API sequence number.
Change name to tls_tidInfo


[ROCm/hip commit: 37d8cafb12]
2016-12-21 15:30:36 -06:00
Rahul Garg a93a5a41f3 Fix for HCSWAP-67
Change-Id: I0b2ce5ab933237947fb41d89769db3da16e5be6a

Conflicts:
	src/hip_hcc.cpp


[ROCm/hip commit: fbf7ed63a8]
2016-12-19 16:19:51 +05:30
Ben Sander a5f13421b5 Add name for function
[ROCm/hip commit: 90c69e14bb]
2016-12-17 08:54:09 -06:00
Ben Sander a212162612 Remove HSA dependency from hipFunction_t
Place _groupSegmentSize and _privateSegmentSize inside Function,
remove hsa_executable_symbol_t.


[ROCm/hip commit: 8bf4bd2f7d]
2016-12-17 07:22:56 -06:00
Ben Sander f97cffdc48 Remove USE_DISPATCH_HSA_KERNEL=0 path.
[ROCm/hip commit: 6ed7e1c1c1]
2016-12-17 07:22:56 -06:00
Ben Sander 7402308098 Refactor Module and Function APIs.
- hipFunction_t is now returned by value.  This eliminates dynamic
      allocation / memory management complexity in the module.  Removed
the kernel
      name so the structure is just 16 bytes now.

    - Moved the hsa_executable_load_module and hsa_executable_freeze
      calls to the hipModuleLoad and hipModuleLoadData calls.

    - Apply sharedMemBytes in hipModuleLaunchKernel to group segment
      size (not private).


[ROCm/hip commit: 4d29885be3]
2016-12-17 07:22:33 -06:00
Rahul Garg ae83f93ba4 Mapped hipDevice_t to int
Change-Id: I6cfa56c42b7cd04aa0e0bce510c0d72d34ea211a


[ROCm/hip commit: 263a9614ff]
2016-12-17 16:53:03 +05:30
Aditya Atluri d93219fc00 disabled half native support as inline asm is not working
Change-Id: I3073d8ae39eed321987f0f2f0e689eec4cdbb48c


[ROCm/hip commit: 2665ad2762]
2016-12-16 09:24:59 -06:00
Ben Sander 5a3c11dd9a fix copyright
[ROCm/hip commit: 8ed38bae69]
2016-12-15 14:42:52 -06:00
Aditya Atluri 4ebb6e569f fixed compilation issues
Change-Id: I96692538736e2e4f2da9dba9c8c29a164aec4c0d


[ROCm/hip commit: 68c57c38ff]
2016-12-14 16:50:16 -06:00
Aditya Atluri 727aab2304 added half2 support
Change-Id: I0f3b9b7037fed97e80ec99f5369c75a63f001aae


[ROCm/hip commit: d2daf6ad75]
2016-12-14 14:18:48 -06:00
Aditya Atluri d4b7fe8385 added simple half math ops
Change-Id: I10b1d1023a9e5f2ba63f28c4a2bbe60ee49a8aee


[ROCm/hip commit: 7c7d948fc6]
2016-12-13 20:20:58 -06:00
Aditya Atluri 0b445d68de disabled compiler flag hcc 4.0 for half support
Change-Id: I32175113f4c05d43310b3a05c2a14e12f6d48b09


[ROCm/hip commit: ed39a7f43b]
2016-12-13 20:06:56 -06:00
Ben Sander 1a7ecbcd04 Add USE_IPC to disable use of IPC APIs. Set to 0.
[ROCm/hip commit: b30e4b4781]
2016-12-13 15:07:04 -06:00
Aditya Atluri ada705544f added few type reinterpret cast device functions
1. __int_as_float
2. __hiloint2double

Change-Id: Id247c196887b24a12090f0521bf91e13afeec733


[ROCm/hip commit: 04ab5f7f56]
2016-12-13 14:41:36 -06:00
Aditya Atluri 8ad8f7ce26 added half math addition ISA support
Change-Id: I293b771f695b499b795d7e53f600c9e4fe2a2071


[ROCm/hip commit: a6fe6222c4]
2016-12-13 09:18:34 -06:00
Aditya Atluri 90938b804f Changed threadfences to match target parsing by hcc
Change-Id: I28fcabbaacd13495b707f263fd09afaead0665fa


[ROCm/hip commit: 765947aaf5]
2016-12-12 10:16:58 -06:00
Rahul Garg 7d1d1b2a9c Fixed build error due to GetPCIBusId overloaded function
Change-Id: I626446f2c72c8143f08c95367bc1c528abeaf69d


[ROCm/hip commit: d35c8128a8]
2016-12-08 14:35:58 +05:30
pensun f6d6861ad4 HIP IPC implementation on ROCr IPC APIs
Change-Id: I1ca9d520f5d0b1b56694211471b81eb7c6c23d16


[ROCm/hip commit: a53d35fd6c]
2016-12-07 15:38:36 -06:00
Rahul Garg 8420edd5e4 hipDeviceGetPCIBusId int version changes for CUDA runtime API
Change-Id: I4d3b995f1d1ac83415ca84808a074e5c8cd72f3c


[ROCm/hip commit: 266b27ac83]
2016-12-07 12:12:40 +05:30
pensun 7b8766bfd2 Fix issue of ihipModule_t double defined
Change-Id: I508677e595776fd573a2f224691116d01288dc78


[ROCm/hip commit: 6fcfab2552]
2016-12-06 19:10:17 -06:00
pensun 4606e364e0 change hipgetPCIID to take int as third parameter
Change-Id: I4429b36756a6d868a769abd783bf28a55147c0d0


[ROCm/hip commit: 01f688587e]
2016-12-06 14:24:09 -06:00
pensun 6d2bf52f9f IPC prototyps and part of the implementation included
Change-Id: Id88c7f155d23ec63f57a6ef05098fba43f8af336


[ROCm/hip commit: 17b98d59b8]
2016-12-06 14:24:09 -06:00
pensun 2b557e949e local changes for hipnccl
Change-Id: I05a1f0381ce2914a800f573342cc954eb5ff82d9


[ROCm/hip commit: eba2595611]
2016-12-06 14:22:02 -06:00
Ben Sander 1c91897cb8 Enabled USE_DISPATCH_HSA_KERNEL, with serialization in hipModuleUnload.
[ROCm/hip commit: 6209565ec0]
2016-12-06 10:14:01 -06:00
Rahul Garg 094bca8b5d Build Error correction in hipDeviceGetPCIBusId
Change-Id: I50ff4d95b7a732924c7a991cba60400b1c93c0de


[ROCm/hip commit: ca06747e1f]
2016-12-06 17:09:21 +05:30
Rahul Garg 61dffc7e18 Changed hipDeviceGetPCIBusId to return Bus ID as string
Change-Id: I6d5aa7362084109d34bc015d948f8723b2a38ee9


[ROCm/hip commit: 27072b8972]
2016-12-06 16:55:17 +05:30
Maneesh Gupta 55aa1d85d9 Remove redundant variable g_malloc_heap_size
Change-Id: Idaf47be70488f0deb3eab05a86d9c5a413d3fff7


[ROCm/hip commit: 6d5145eba4]
2016-12-06 10:19:03 +05:30
pensun 569dfe1526 HIP resource leaks fix from Jack
Change-Id: I93f3ad7cb94ff1cba1577bd8acc90e826693d12e


[ROCm/hip commit: 778c6626fd]
2016-12-05 20:21:33 -06:00
Maneesh Gupta 73e0f36148 Revert "Enable USE_DISPATCH_HSA_KERNEL."
This reverts commit 891f956313.


[ROCm/hip commit: 46ffc69557]
2016-12-05 16:55:26 +05:30
Maneesh Gupta 7a48767acc Don't share g_malloc_heap_size between libraries
Change-Id: Ic70bf83d4f865bc5c453941fdbc1814c77f0ad9d


[ROCm/hip commit: 1cf9332c3f]
2016-12-05 11:03:45 +05:30
Ben Sander 891f956313 Enable USE_DISPATCH_HSA_KERNEL.
Optimize hipLaunchModule dispatch latency.


[ROCm/hip commit: 097e4eb9d8]
2016-12-04 00:13:19 -06:00
Ben Sander ce01d26a87 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


[ROCm/hip commit: ff2f54c1bf]
2016-12-02 18:03:59 -06:00
Aditya Atluri cdbc90d490 added half add and fma intrinsic
Change-Id: Ifa60c1a7065f524f069291bb00d987b11c836cc4


[ROCm/hip commit: 7b0650773c]
2016-11-29 19:46:01 -06:00