Граф коммитов

77 Коммитов

Автор SHA1 Сообщение Дата
Aditya Atluri 639fd4dd5e added runtime api hipMemcpyFromSymbolAsync
Change-Id: Ibaf925faf0ba464dd0ed6c5ea74c224c2ce38889
2017-02-22 19:16:35 -06:00
Aditya Atluri 2790e9a448 fixed symbol memcpy issue
Change-Id: I89d7401be51d194bcbf771020ba66e3d3b6a18f8
2017-02-01 17:54:59 -06:00
Ben Sander 96eac67929 Add debug tips to docs 2017-01-23 22:34:41 -06:00
Ben Sander 927ac3d81c Add HIP_SYNC_HOST_ALLOC, HipReadEnv 2017-01-19 23:55:24 -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
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
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 b30e4b4781 Add USE_IPC to disable use of IPC APIs. Set to 0. 2016-12-13 15:07:04 -06:00
pensun a53d35fd6c HIP IPC implementation on ROCr IPC APIs
Change-Id: I1ca9d520f5d0b1b56694211471b81eb7c6c23d16
2016-12-07 15:38:36 -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 ff2f54c1bf 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
Rahul Garg fe6ba656c9 Added support for hipMemGetAddressRange
Change-Id: I99a796a4eb765152cf15a12d6a86b58684d34f50
2016-11-29 22:04:09 +05:30
Maneesh Gupta c0419cc749 Refactor for building HIP as dynamic library
Change-Id: I65a3d9d589c4fdbbdcf1611e5427224253be8260
2016-11-18 14:33:20 +05:30
Aditya Atluri c20c524400 added texture header to memory api source
Change-Id: I1af6d60aca5a9a9ef1cadf8c304bea892acbe061
2016-11-17 11:57:53 -06:00
pensun 50867efa10 Add direct test case for threadfence_system workaround
Change-Id: I5b21b590e957c901044741ac94e816cd8b1426f9
2016-11-11 15:09:43 -06:00
Ben Sander ced9d72d94 Refactor copy and P2P logic.
Prefer use of source-engine for DMA copies, even if user submits copy
in a stream attached to a different device.
The stream is now used only for synchronization, and HIP
makes the most optimal decision for which engine to perform the
copy - typically the source copy engine.

HIP now makes decision on which engine should perform the copy
and passes this to HCC using new apis.
HIP has additional information about peer
visibility and will make a decision which agent should perform
the copy .

Change-Id: I0cf4cfebeae256e6ca795f08a7ed7130f4857d1f
2016-11-10 23:12:48 -06:00
Ben Sander 2dea3a0b1a Improve memory debug
Change-Id: I0f033139aa4e4b47039eb016e404009127bd0a44
2016-11-10 23:12:48 -06:00
pensun 4d7ac1e091 resolve conflicts for git pull
Change-Id: Ie353b831e2241bc28042069b6cc7405257e871e1
2016-11-09 21:38:43 -06:00
pensun f7e9f12bf1 Add option to alloc fingrained system memory
Change-Id: Ia13c8e058cb988b5857e75a590a4d67411362ae1
2016-11-09 21:36:30 -06:00
Ben Sander 092b3dacda Set forceHostCopyEngine for other copy dirs. Support HIP_FORCE_P2P_HOST
Also: more debug for copy and P2p.

Change-Id: I87030c525410e041b2a00baaf6c68e6c0977ff42
2016-11-04 19:53:23 -05:00
Ben Sander 354091f357 Don't call allow-access if allocating device's only peer is self.
Change-Id: Iac58e6c3e460675833f10b1e8b2e393de223654d
2016-10-27 23:09:31 -05:00
Rahul Garg cd6eb7af78 Quickfix for HCSWAP-60, support for hipHostMallocPortable
Change-Id: I2a4fcacea9d916ef222324fc9e9d8191f6dc12d0
2016-10-20 10:44:30 +05:30
Ben Sander 9315ac1a29 Move some internal headers from "include/hip/" to src.
Change-Id: I7041bd5c803d9318979f4a7c1d658445c614691e
2016-10-18 22:27:16 -05:00
Maneesh Gupta 8471682f26 src/*: Update copyright header
Change-Id: I455f5d0d12fe9cb39a3ba873bd22b4c25ed07cbf
2016-10-15 22:55:22 +05:30
Aditya Atluri 7cd6ae9ff4 changed copyright to appropriate format
Change-Id: I81488eb21243fd9dc9106290c06afaf65152b2ab
2016-10-12 19:14:17 -05:00
Aditya Atluri 3c4af7c371 added more changes to memcpytosymbol
1. Refactored code to use HCC internal APIs rather than HCC copy APIs
2. Added hipMemcpyToSymbolAsync
3. Added test for hipMemcpyToSymbolAsync
4. Added new error hipErrorInvalidSymbol

Change-Id: I0e359b2d0ff5d682bbccdf9c2923e16b35e39497
2016-10-11 13:29:46 -05:00
Aditya Atluri 6952b59401 Added feature for memcpy to Symbol
1. Currently works only for __attribute__((addrspace(1))
2. Need to pass in string for name of the variable
3. Added test to check functionality

Change-Id: I4c3cc1bf151cb5423e4aef59fcc4ad5693b31641
2016-10-11 12:09:58 -05:00
Maneesh Gupta 7c943ef20a Add back deprecated hipHostAlloc, hipMallocHost, hipFreeHost
Change-Id: Ib8494078c852b07e1958c3acc21fa1866542122c
2016-10-09 16:30:46 +05:30
Maneesh Gupta b951cc99ed Move include/* to include/hip/*
Change-Id: I7a7b2839b4df59c7a4c503550f99fdc9e45c0f54
2016-10-04 22:17:18 +05:30
Ben Sander 4ff6dc8f38 Refactor asyncCopy and syncCopy to fix deadlock case.
- Minimize time that locks are held.
- Eliminate copy code that locked stream and ctx at same time.
    - Stream was locked to ensure thread-safe enqueue to the queue.
    - Devices were locked to query peer-lists.

Change-Id: Ibe8880bb7fb995a3da8f90ff911f212d81525018
2016-09-27 15:45:40 -05:00
Ben Sander 225e37fdc9 Fix signal resource issue.
Remove memory leak with new hc::completion_future.
Implement HIP_LAUNCH_BLOCKING with queue-level wait.

Change-Id: I45975f81c4d239fdeed7776970988d28449865dc
2016-09-26 16:47:32 -05:00
Rahul Garg daef1d2906 Removed deprecated hipHostAlloc
Change-Id: Ia592a3545c5d72f37e049ce29f910e404323c01c
2016-09-26 10:58:46 +05:30
Rahul Garg 6790ff6b11 Removed deprecated hipMallocHost
Change-Id: I3141fe05a34b6a306297a30721509965f49ccb97
2016-09-26 05:52:21 +05:30
Rahul Garg 7b87a972cb Removed deprecated hipFreeHost
Change-Id: I9747ea3993090e0da6a2e1f5e9ce318762bc03e1
2016-09-26 05:35:14 +05:30
Ben Sander c769abcbeb Peer-to-Peer improvements.
- Bug fix for peer visibility.  Now contexts correctly detect when they can use SDMA for P2P vs staging buffers.
- Interface to new HCC copy_ext function.
- Improve context and peer print /debug options.
- Add comments and usage to hipPeerToPeer_simple test.
2016-09-22 14:21:19 -05:00
Ben Sander 83140f8423 Updates docs for hipHcc* functions, move to header 2016-09-22 13:05:47 -05:00
Rahul Garg ffd49cfa37 Added return error code hipErrorInvalidValue in hipMemGetInfo
Change-Id: If01b012136b655ff8eb4878eb703dfe3e6a36530
2016-09-17 23:54:20 +05:30
Rahul Garg 76949b6374 Partial updates of error codes for Memory APIs
Change-Id: If924867cc62f56dc9eaf81f5499ba66f417c393a
2016-09-16 12:59:41 +05:30
Aditya Atluri 2d5140cb27 Added async memcpy driver api
Change-Id: I90e8a078d668a408e79f9e1142e7534771467a4f
2016-09-09 10:21:52 -05:00
Ben Sander 0923c2d261 hipStreamWaitEvent update.
Add passed to hipStreamWaitEvent test.
Fix pointerAttrib test to work with new and old HCC versions.
Minor code touchup.

Change-Id: I139ba6ce9f6bf2b4bee89aebdec5981b4346ffc0
2016-09-02 09:46:59 -05:00
Ben Sander e76a272d48 Refactor for stream->_av.
- move _av into stream critical section.  ( HCC accelerator_view is not
  thread-safe but HIP steram is. )
- Refactored many places in code that need to acquire critical section.
some were previously thread races, ie enqueueing marker.

-remove support for GRID_LAUNCH_VERSION < 20
-Enable USE_AV_COPY based on HCC work-week.
- Review hipModule docs, some calrity/editing.

Change-Id: I3ce7c25ece048c3504f55ecd4683e506bb1fc8b6
2016-09-02 09:46:59 -05:00
pensun b726f0e949 Modify hipMalloc to take size of 0 and return NULL pointer for it.
Modify hipMemoryAllocate test for this change.

Change-Id: I884aee0cd5fe0c60aebb4cb37cdbb4833c5bd0c7
2016-09-01 13:08:30 -05:00
Ben Sander 8fb076f5c4 remove stray printf
Change-Id: Ie64778a83dfe684ffaab3c31bc3d09b713f825b9
2016-08-29 18:36:30 -05:00
Aditya Atluri 4b377f63d0 Changed module api to work with nvcc and hipcc path
- Added cuda and cudart linking for nvcc path in hipcc
- Added hipMemcpyHtoD and hipMemcpyDtoH for nvcc path
- Changed hipDeviceptr to hipDeviceptr_t
- Fixed hipMemcpy*to* API signatues

Change-Id: I6ef076b507f92502efda475c83dcdcdd462afc37
2016-08-29 15:05:12 -05:00
Aditya Atluri 4152746e26 Added explicit memory copy direction apis
- Fixed stale printf in context api
- Added 4 sync memcpy apis
  1. hipMemcpyHtoD
  2. hipMemcpyDtoH
  3. hipMemcpyDtoD
  4. hipMemcpyHtoH
- Added test for added apis

Change-Id: I4a9c382445b62631f8d0bcbb9a670322288b72b1
2016-08-26 13:11:01 -05:00
Ben Sander ed0a2c02fe Code cleanup, use camelCase where appropriate.
Change-Id: I5a7ec50df8bbb3e7a3b313c0b12e2dd55ae4a09c
2016-08-08 14:54:38 -05:00
Ben Sander 2a798152d4 Move copy kernel templates into hip_memory.cpp
Change-Id: I862529f3fa8232372c6bacaa5d36f035bbdd32a1
2016-08-08 12:07:12 -05:00