Graphe des révisions

456 Révisions

Auteur SHA1 Message Date
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
Ben Sander 927ac3d81c Add HIP_SYNC_HOST_ALLOC, HipReadEnv 2017-01-19 23:55:24 -06:00
Ben Sander 8209320ef0 Change ihipDeviceSetState,ihipDevice* so it doesn't log error
Cleans up debug trace.
2017-01-19 23:55:24 -06:00
Ben Sander 1f5d16afe7 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 1c73e44ebe Fix debug display for Module launch kernels 2017-01-19 12:40:45 -06:00
Aditya Atluri ea382e15f8 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 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 13ce9ece77 enabled integer intrinsics tests
Change-Id: I5d28d556f228240eda2fc0098121ed3b29b041e7
2017-01-17 09:59:08 -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 18631efbc0 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
2017-01-16 12:32:35 -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 0e576295b4 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 5ef8ef3bd7 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 d180fdaae0 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 73fcce26f9 changed copyright year from 2016 to 2017 in src directory
Change-Id: Idb97db509b2b4b1656b2df7a14a62ade38c9d574
2017-01-11 18:05:41 -06:00
Aditya Atluri 39910029a6 Added proper device data types
Change-Id: I42029635ff68c3c13a764a3eda6447e6c77878c6
2017-01-11 15:06:25 -06:00
Ben Sander a3e0012567 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 93fbc9cf7b 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 3a42a7642a tolerate spaces in hip args 2017-01-09 20:57:13 -06:00
Rahul Garg 5fb09879c7 Added state for hipDevice.
Change-Id: Idbc3c04cd054a01b634856a1e0a23ff172e991aa
2017-01-09 23:54:01 +05:30
Ben Sander c325c988b1 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 37d8cafb12 Increment API sequence number.
Change name to tls_tidInfo
2016-12-21 15:30:36 -06:00
Rahul Garg fbf7ed63a8 Fix for HCSWAP-67
Change-Id: I0b2ce5ab933237947fb41d89769db3da16e5be6a

Conflicts:
	src/hip_hcc.cpp
2016-12-19 16:19:51 +05:30
Ben Sander 90c69e14bb Add name for function 2016-12-17 08:54:09 -06:00
Ben Sander 8bf4bd2f7d 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 6ed7e1c1c1 Remove USE_DISPATCH_HSA_KERNEL=0 path. 2016-12-17 07:22:56 -06:00
Ben Sander 4d29885be3 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 263a9614ff Mapped hipDevice_t to int
Change-Id: I6cfa56c42b7cd04aa0e0bce510c0d72d34ea211a
2016-12-17 16:53:03 +05:30
Aditya Atluri 2665ad2762 disabled half native support as inline asm is not working
Change-Id: I3073d8ae39eed321987f0f2f0e689eec4cdbb48c
2016-12-16 09:24:59 -06:00
Ben Sander 8ed38bae69 fix copyright 2016-12-15 14:42:52 -06:00
Aditya Atluri 68c57c38ff fixed compilation issues
Change-Id: I96692538736e2e4f2da9dba9c8c29a164aec4c0d
2016-12-14 16:50:16 -06:00
Aditya Atluri d2daf6ad75 added half2 support
Change-Id: I0f3b9b7037fed97e80ec99f5369c75a63f001aae
2016-12-14 14:18:48 -06:00
Aditya Atluri 7c7d948fc6 added simple half math ops
Change-Id: I10b1d1023a9e5f2ba63f28c4a2bbe60ee49a8aee
2016-12-13 20:20:58 -06:00
Aditya Atluri ed39a7f43b disabled compiler flag hcc 4.0 for half support
Change-Id: I32175113f4c05d43310b3a05c2a14e12f6d48b09
2016-12-13 20:06:56 -06:00
Ben Sander b30e4b4781 Add USE_IPC to disable use of IPC APIs. Set to 0. 2016-12-13 15:07:04 -06:00
Aditya Atluri 04ab5f7f56 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 a6fe6222c4 added half math addition ISA support
Change-Id: I293b771f695b499b795d7e53f600c9e4fe2a2071
2016-12-13 09:18:34 -06:00
Aditya Atluri 765947aaf5 Changed threadfences to match target parsing by hcc
Change-Id: I28fcabbaacd13495b707f263fd09afaead0665fa
2016-12-12 10:16:58 -06:00
Rahul Garg d35c8128a8 Fixed build error due to GetPCIBusId overloaded function
Change-Id: I626446f2c72c8143f08c95367bc1c528abeaf69d
2016-12-08 14:35:58 +05:30
pensun a53d35fd6c HIP IPC implementation on ROCr IPC APIs
Change-Id: I1ca9d520f5d0b1b56694211471b81eb7c6c23d16
2016-12-07 15:38:36 -06:00
Rahul Garg 266b27ac83 hipDeviceGetPCIBusId int version changes for CUDA runtime API
Change-Id: I4d3b995f1d1ac83415ca84808a074e5c8cd72f3c
2016-12-07 12:12:40 +05:30
pensun 6fcfab2552 Fix issue of ihipModule_t double defined
Change-Id: I508677e595776fd573a2f224691116d01288dc78
2016-12-06 19:10:17 -06:00
pensun 01f688587e change hipgetPCIID to take int as third parameter
Change-Id: I4429b36756a6d868a769abd783bf28a55147c0d0
2016-12-06 14:24:09 -06:00
pensun 17b98d59b8 IPC prototyps and part of the implementation included
Change-Id: Id88c7f155d23ec63f57a6ef05098fba43f8af336
2016-12-06 14:24:09 -06:00
pensun eba2595611 local changes for hipnccl
Change-Id: I05a1f0381ce2914a800f573342cc954eb5ff82d9
2016-12-06 14:22:02 -06:00
Ben Sander 6209565ec0 Enabled USE_DISPATCH_HSA_KERNEL, with serialization in hipModuleUnload. 2016-12-06 10:14:01 -06:00
Rahul Garg ca06747e1f Build Error correction in hipDeviceGetPCIBusId
Change-Id: I50ff4d95b7a732924c7a991cba60400b1c93c0de
2016-12-06 17:09:21 +05:30
Rahul Garg 27072b8972 Changed hipDeviceGetPCIBusId to return Bus ID as string
Change-Id: I6d5aa7362084109d34bc015d948f8723b2a38ee9
2016-12-06 16:55:17 +05:30
Maneesh Gupta 6d5145eba4 Remove redundant variable g_malloc_heap_size
Change-Id: Idaf47be70488f0deb3eab05a86d9c5a413d3fff7
2016-12-06 10:19:03 +05:30
pensun 778c6626fd HIP resource leaks fix from Jack
Change-Id: I93f3ad7cb94ff1cba1577bd8acc90e826693d12e
2016-12-05 20:21:33 -06:00