Commit Graph

445 Commits

Author SHA1 Message Date
Aditya Atluri eff68c989a 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
2017-01-13 12:27:11 -06:00
Aditya Atluri eeef055469 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
2017-01-12 14:10:51 -06:00
Aditya Atluri c286bf6f8a 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
2017-01-12 11:30:20 -06:00
Aditya Atluri e9ff23e5f9 changed copyright year from 2016 to 2017 in src directory
Change-Id: Idb97db509b2b4b1656b2df7a14a62ade38c9d574
2017-01-11 18:05:41 -06:00
Aditya Atluri 4e57822d95 Added proper device data types
Change-Id: I42029635ff68c3c13a764a3eda6447e6c77878c6
2017-01-11 15:06:25 -06:00
Ben Sander b29fbf736d 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.
2017-01-09 21:02:56 -06:00
Ben Sander c9f5fe34e6 First pass at virtualized queue support.
Also updated stream debug messages to consistently use trace_helper.
2017-01-09 21:02:53 -06:00
Ben Sander 49d1477b9d tolerate spaces in hip args 2017-01-09 20:57:13 -06:00
Rahul Garg 090eadd0bd Added state for hipDevice.
Change-Id: Idbc3c04cd054a01b634856a1e0a23ff172e991aa
2017-01-09 23:54:01 +05:30
Ben Sander fd5b0c68b1 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.
2016-12-22 12:25:09 -06:00
Ben Sander cf338d716b Increment API sequence number.
Change name to tls_tidInfo
2016-12-21 15:30:36 -06:00
Rahul Garg 4988975b59 Fix for HCSWAP-67
Change-Id: I0b2ce5ab933237947fb41d89769db3da16e5be6a

Conflicts:
	src/hip_hcc.cpp
2016-12-19 16:19:51 +05:30
Ben Sander 5d815937de Add name for function 2016-12-17 08:54:09 -06:00
Ben Sander 2bd70ff345 Remove HSA dependency from hipFunction_t
Place _groupSegmentSize and _privateSegmentSize inside Function,
remove hsa_executable_symbol_t.
2016-12-17 07:22:56 -06:00
Ben Sander 06d382bc6d Remove USE_DISPATCH_HSA_KERNEL=0 path. 2016-12-17 07:22:56 -06:00
Ben Sander 3f9404d0e1 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).
2016-12-17 07:22:33 -06:00
Rahul Garg bddaa0e81c Mapped hipDevice_t to int
Change-Id: I6cfa56c42b7cd04aa0e0bce510c0d72d34ea211a
2016-12-17 16:53:03 +05:30
Aditya Atluri c673aec971 disabled half native support as inline asm is not working
Change-Id: I3073d8ae39eed321987f0f2f0e689eec4cdbb48c
2016-12-16 09:24:59 -06:00
Ben Sander b53ba931e8 fix copyright 2016-12-15 14:42:52 -06:00
Aditya Atluri a1d1fcfdac fixed compilation issues
Change-Id: I96692538736e2e4f2da9dba9c8c29a164aec4c0d
2016-12-14 16:50:16 -06:00
Aditya Atluri c20a86d866 added half2 support
Change-Id: I0f3b9b7037fed97e80ec99f5369c75a63f001aae
2016-12-14 14:18:48 -06:00
Aditya Atluri 01ed8e91e9 added simple half math ops
Change-Id: I10b1d1023a9e5f2ba63f28c4a2bbe60ee49a8aee
2016-12-13 20:20:58 -06:00
Aditya Atluri 26934a920c disabled compiler flag hcc 4.0 for half support
Change-Id: I32175113f4c05d43310b3a05c2a14e12f6d48b09
2016-12-13 20:06:56 -06:00
Ben Sander 5eed20be12 Add USE_IPC to disable use of IPC APIs. Set to 0. 2016-12-13 15:07:04 -06:00
Aditya Atluri 7a712aa76b added few type reinterpret cast device functions
1. __int_as_float
2. __hiloint2double

Change-Id: Id247c196887b24a12090f0521bf91e13afeec733
2016-12-13 14:41:36 -06:00
Aditya Atluri 02eab122c5 added half math addition ISA support
Change-Id: I293b771f695b499b795d7e53f600c9e4fe2a2071
2016-12-13 09:18:34 -06:00
Aditya Atluri 812cf130b6 Changed threadfences to match target parsing by hcc
Change-Id: I28fcabbaacd13495b707f263fd09afaead0665fa
2016-12-12 10:16:58 -06:00
Rahul Garg a6b2f9c3a0 Fixed build error due to GetPCIBusId overloaded function
Change-Id: I626446f2c72c8143f08c95367bc1c528abeaf69d
2016-12-08 14:35:58 +05:30
pensun 7ac5f2e8c3 HIP IPC implementation on ROCr IPC APIs
Change-Id: I1ca9d520f5d0b1b56694211471b81eb7c6c23d16
2016-12-07 15:38:36 -06:00
Rahul Garg d8fdd6c6fc hipDeviceGetPCIBusId int version changes for CUDA runtime API
Change-Id: I4d3b995f1d1ac83415ca84808a074e5c8cd72f3c
2016-12-07 12:12:40 +05:30
pensun 8f2a1752c1 Fix issue of ihipModule_t double defined
Change-Id: I508677e595776fd573a2f224691116d01288dc78
2016-12-06 19:10:17 -06:00
pensun 8fcae3acc0 change hipgetPCIID to take int as third parameter
Change-Id: I4429b36756a6d868a769abd783bf28a55147c0d0
2016-12-06 14:24:09 -06:00
pensun 092924d660 IPC prototyps and part of the implementation included
Change-Id: Id88c7f155d23ec63f57a6ef05098fba43f8af336
2016-12-06 14:24:09 -06:00
pensun 808e555247 local changes for hipnccl
Change-Id: I05a1f0381ce2914a800f573342cc954eb5ff82d9
2016-12-06 14:22:02 -06:00
Ben Sander 3f810a203b Enabled USE_DISPATCH_HSA_KERNEL, with serialization in hipModuleUnload. 2016-12-06 10:14:01 -06:00
Rahul Garg a019f1ce39 Build Error correction in hipDeviceGetPCIBusId
Change-Id: I50ff4d95b7a732924c7a991cba60400b1c93c0de
2016-12-06 17:09:21 +05:30
Rahul Garg 0017419521 Changed hipDeviceGetPCIBusId to return Bus ID as string
Change-Id: I6d5aa7362084109d34bc015d948f8723b2a38ee9
2016-12-06 16:55:17 +05:30
Maneesh Gupta b8413a69c8 Remove redundant variable g_malloc_heap_size
Change-Id: Idaf47be70488f0deb3eab05a86d9c5a413d3fff7
2016-12-06 10:19:03 +05:30
pensun 4cb1579d4a HIP resource leaks fix from Jack
Change-Id: I93f3ad7cb94ff1cba1577bd8acc90e826693d12e
2016-12-05 20:21:33 -06:00
Maneesh Gupta ac93376c26 Revert "Enable USE_DISPATCH_HSA_KERNEL."
This reverts commit f8bcbe8680.
2016-12-05 16:55:26 +05:30
Maneesh Gupta ac368cc60f Don't share g_malloc_heap_size between libraries
Change-Id: Ic70bf83d4f865bc5c453941fdbc1814c77f0ad9d
2016-12-05 11:03:45 +05:30
Ben Sander f8bcbe8680 Enable USE_DISPATCH_HSA_KERNEL.
Optimize hipLaunchModule dispatch latency.
2016-12-04 00:13:19 -06:00
Ben Sander 783ac156ce 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 e6df8cb28c added half add and fma intrinsic
Change-Id: Ifa60c1a7065f524f069291bb00d987b11c836cc4
2016-11-29 19:46:01 -06:00
pensun 504fcaf786 Change to use produce device name by default
Change-Id: Ie2cee2a2e94a08b5874a2f5abee5d1ab6c9fdf47
2016-11-29 11:34:06 -06:00
Rahul Garg bda0704213 Added support for hipMemGetAddressRange
Change-Id: I99a796a4eb765152cf15a12d6a86b58684d34f50
2016-11-29 22:04:09 +05:30
pensun 8e2980c7ef Change the parameter type of hipDeviceGetPCIBusID to char*
Change-Id: Ia72f403126e95f65da53208fc246f45d1417381f
2016-11-28 10:47:18 -06:00
Ben Sander a504df955e Add more debug info 2016-11-26 08:56:02 -06:00
Ben Sander 9db93a1b96 Improve docs in some places
Change-Id: If31e84fbf0c8595ca72edb842dce7ce47783579b
2016-11-23 08:16:18 -06:00
Ben Sander 111b57ddd0 Improve debug capabilities.
Print TID mapping at init when HIP_TRACE_API=1.
Print base host/dev info from tracker during copy.

Change-Id: I84e26d7b801567e5a91baad36126fb590920ec87
2016-11-23 08:16:18 -06:00