Commit Graph

136 Commits

Author SHA1 Message Date
Ben Sander 5060403b2a Merge branch 'p2p' of https://github.com/AMDComputeLibraries/HIP-privatestaging into p2p
Conflicts:
	RELEASE.md
	include/hcc_detail/hip_hcc.h
	samples/1_Utils/hipInfo/hipInfo.cpp
	src/hip_hcc.cpp
	src/hip_peer.cpp


[ROCm/hip commit: 31dc13d2ec]
2016-04-11 09:17:27 -05:00
Ben Sander 7c92c9cc22 P2p checkpoint.
- set USE_PEER_TO_PEER=3 (requires HCC "am_memtracker_update_peers")
- when enabling peer, turn it on for previously allocated memory.
- hipDeviceCanAccessPeer is no longer self-ware (self does not qualify
  as a peer)
- device peerlist always includes self, so when we call allow_access
  we never remove self access.
- hipDeviceReset() removes old peer mappings.


[ROCm/hip commit: 1f53c55d3e]
2016-04-11 12:52:18 -05:00
Ben Sander b174e8bba7 Clean up disable.
Add USE_HCC_LOCK (disabled)
Disable USE_PEER_TO_PEER.


[ROCm/hip commit: b0529e04f1]
2016-04-11 09:09:36 -05:00
Ben Sander c964e3c75a P2p checkpoint.
- set USE_PEER_TO_PEER=3 (requires HCC "am_memtracker_update_peers")
- when enabling peer, turn it on for previously allocated memory.
- hipDeviceCanAccessPeer is no longer self-ware (self does not qualify
  as a peer)
- device peerlist always includes self, so when we call allow_access
  we never remove self access.
- hipDeviceReset() removes old peer mappings.


[ROCm/hip commit: 83f0de7806]
2016-04-11 07:58:59 -05:00
Ben Sander 69a9feb1fb fix bugs in P2P implementation
- addPeers polarity reversed, would never add.
- check allow_access return value, pipe error to hipMalloc.


[ROCm/hip commit: fb31eaf07b]
2016-04-11 07:58:58 -05:00
Ben Sander 06e2dbd128 For P2P, use the peer list when allocating Device memory or pinned host.
Each new allocation is automatically mapped into the address space of
all enabled peers.


[ROCm/hip commit: 813b063888]
2016-04-11 07:58:58 -05:00
Ben Sander ac11c83d76 P2P checkpoint.
Maintain enabled peer tables for each device.


[ROCm/hip commit: f2aa470f7f]
2016-04-11 07:58:58 -05:00
Ben Sander 56d684e2fe Checkpoint initial peer2peer implementation.
[ROCm/hip commit: 69f2469cbb]
2016-04-11 07:58:58 -05:00
Ben Sander 70108729ba fix bugs in P2P implementation
- addPeers polarity reversed, would never add.
- check allow_access return value, pipe error to hipMalloc.


[ROCm/hip commit: 7886c9e3d9]
2016-04-09 04:11:31 -05:00
pensun bdef1bb4e8 clean up unused comments
[ROCm/hip commit: 4b2c5976ce]
2016-04-07 09:46:00 -05:00
Ben Sander 84b5016a79 For P2P, use the peer list when allocating Device memory or pinned host.
Each new allocation is automatically mapped into the address space of
all enabled peers.


[ROCm/hip commit: 41f7317fb5]
2016-04-06 16:44:31 -05:00
Ben Sander c5240bd079 P2P checkpoint.
Maintain enabled peer tables for each device.


[ROCm/hip commit: 36926e6233]
2016-04-06 15:50:47 -05:00
Ben Sander 8db4a6d46e Checkpoint initial peer2peer implementation.
[ROCm/hip commit: b02e9163ab]
2016-04-06 15:50:47 -05:00
Ben Sander 24f82925bb Add runtime switch to control HIP_ATP_MARKER
Only generate the function strings if requested at
compile-time && runtime.


[ROCm/hip commit: 740b730cac]
2016-03-29 17:27:30 -05:00
Ben Sander 630ef59d7b Tweak thread-safe implementation.
introduce LockedAccessor option so destructor does not unlock.
Allows locks to exist across function boundaries, required
for hipLaunchKernel macro which has several unusual requirements.
(including C comppatibility, must use variadic macro, more).


[ROCm/hip commit: 8635863724]
2016-03-28 21:41:47 -05:00
Ben Sander 9e3ac64c54 Stream thread-safe checkpoint.
Moving data structures to critical / protected section.


[ROCm/hip commit: 3f18bab2c7]
2016-03-28 09:46:40 -05:00
Ben Sander c9b5b99078 Stream thread-safe checkpoint.
[ROCm/hip commit: ec049e7f0b]
2016-03-28 04:22:20 -05:00
Ben Sander 6f88d31a1f Protect _stream_id as well.
- move lockedaccessor
- clean up device class.
- add simple ihipDevice constructor.


[ROCm/hip commit: 395e7eab96]
2016-03-26 11:45:25 -05:00
Ben Sander 141ccad414 Make ihipDevice_t thread-safe.
Move critical data into separate class and protect with LockAccessor
wrapper class.

For device, the streams list is the critical data since it is modified when
streams are created or destroyed.   The streams list is accessed in
several places including when synchronizing across all streams on the
device (ie from the default stream).
Other device data is set once by the device cosntructor and is not critical
so

All functions which acquire the LockAccessor now named with "locked_" prefix.


[ROCm/hip commit: 530ab9434a]
2016-03-26 10:46:20 -05:00
pensun fa114274ac fix query of memoryClockRate and memoryBusWidth for both NV and HCC path
[ROCm/hip commit: 535de2ecc1]
2016-03-25 09:24:08 -05:00
Aditya Atluri 41037cad90 Added canMapMemory feature to device properties
[ROCm/hip commit: 95c96638aa]
2016-03-24 07:33:24 -05:00
Aditya Atluri 6aa83a8a32 added CR and hipsetdeviceflags func
[ROCm/hip commit: c5ec73736d]
2016-03-24 07:04:01 -05:00
Aditya Atluri 702672c3df Split files based on functionality and changed cmake file
[ROCm/hip commit: 794007c3e8]
2016-03-24 04:57:30 -05:00
Ben Sander edec342c20 Partition hip_hcc into sections
Separate files for different categories of HIP API.
Currently just #include into hip_hcc.cpp


[ROCm/hip commit: 655534b1ba]
2016-03-24 09:28:54 -05:00
Aditya Atluri e0c6809779 moved variables to headers
[ROCm/hip commit: 7920fd9a47]
2016-03-23 12:59:52 -05:00
Aditya Atluri 6841aa084c reverted back to old infra with cmake added
[ROCm/hip commit: 5637bde4b3]
2016-03-23 11:13:02 -05:00
Aditya Atluri 4ca4cae3fa WIP added modular feature for device apis
[ROCm/hip commit: 89bfc0e375]
2016-03-23 07:54:01 -05:00
Ben Sander 7632b769a0 Update docs:
- Some comments in hip_hcc.cpp
 - document hipHostRegister* flags.
 - expand docs on hipHostRegister/Unregister. Use "register" rather than
   "pin" to describe action these take.
 - change required CUDA version to 6 (require unified memory)
 - remake doxygen.


[ROCm/hip commit: eced013ae4]
2016-03-23 23:11:15 -05:00
Aditya Atluri 5b597511b6 fixed hipHostGetFlags test
[ROCm/hip commit: 362867d325]
2016-03-23 02:45:21 -05:00
Aditya Atluri 5f343cb38b Remove redundant hpiHostGetDevicePointer
[ROCm/hip commit: 36d0da99c1]
2016-03-23 09:21:02 -05:00
Ben Sander 87830e8cff Add USE_AV_COPY (replaces calls to am_copy with new acc_view::copy
[ROCm/hip commit: 6ab48d7b90]
2016-03-23 10:30:53 -05:00
Ben Sander 748180c769 use the CPU_Agent for memory copies to indicate direction.
[ROCm/hip commit: 0f81c5bcf2]
2016-03-23 10:29:44 -05:00
Ben Sander a7ff86a141 Merge branch 'privatestaging' of https://github.com/AMDComputeLibraries/HIP-privatestaging into privatestaging
Conflicts:
	src/hip_hcc.cpp


[ROCm/hip commit: d07b347cac]
2016-03-23 03:22:09 -05:00
Ben Sander 241befc9f6 Add unique stream_id to devices to improve debug
[ROCm/hip commit: f863c5c6aa]
2016-03-23 03:17:19 -05:00
Ben Sander 6d5968027c Improve trace API
- Validate compile-time disables.
- Add README.md section explain how to install/use CodeXL tracing
- Add code docs on trace_helper.h
- fix color on hipLaunchKernel to green.


[ROCm/hip commit: 2569e15375]
2016-03-23 02:57:52 -05:00
Ben Sander 5c8b743588 HIP_TRACE_API prints function args, and in color
[ROCm/hip commit: 33bbf1463f]
2016-03-23 02:19:49 -05:00
Ben Sander 82cda5c087 use codexl marker interface to mark HIP function/begin end.
- Creates markers in HIP group and they show up in CodeXL trace
- Marker text includes HIP functioin arguments
- (Add trace_helper to convert arguments to strings)
- Still need to add HIP_INIT_API for ~30 HIP functions.


[ROCm/hip commit: b6b3fea05b]
2016-03-23 01:17:53 -05:00
Ben Sander b319209299 hipHostRegister and hipHostMalloc refactor.
Note hipHostMalloc (not hipHostAlloc or hipMallocHost).
 -  the hipHost* is used for all HIP APIs dealing with Host memory.
    (including hipHostMalloc, hipHostFree, hipHostRegister,
hipHostUnregister, hipHostGetFlags, hipHostGetDevicePointer).
  - hipMallocHost is consistent with "hipMalloc" for allocating device
    memory.  Enumerations hipHostMalloc* also used as optional
    flags parm to hipHostMalloc.


[ROCm/hip commit: ab910efb96]
2016-03-22 02:30:10 -05:00
Aditya Atluri 9741873703 Revert "Revert "fixed memory free apis""
This reverts commit 9ba9f2a407.


[ROCm/hip commit: 52cf63472c]
2016-03-21 10:40:42 -05:00
Aditya Atluri 9ba9f2a407 Revert "fixed memory free apis"
This reverts commit 2a044e3823.


[ROCm/hip commit: 287ba34aca]
2016-03-21 10:36:11 -05:00
Aditya Atluri 2a044e3823 fixed memory free apis
[ROCm/hip commit: 96a1899df7]
2016-03-21 10:32:30 -05:00
Aditya Atluri f0d86c6b78 suppressed warning in hipFreeHost
[ROCm/hip commit: 6b3821afc7]
2016-03-20 15:31:59 -05:00
Aditya Atluri dd6fc044d6 Added feature for --default-streams not working tests and hipcc
[ROCm/hip commit: a232d65db1]
2016-03-20 08:08:33 -05:00
Ben Sander 8c1e55c937 Implement hipHostFree on HCC path
[ROCm/hip commit: deb38625ca]
2016-03-19 23:25:11 -05:00
Ben Sander b520a34579 Refactor copy - place common code in resolveMemoryKind.
[ROCm/hip commit: 194d02ac5a]
2016-03-19 22:56:10 -05:00
Ben Sander 36d2a024c0 Refactor waitALlDevices and async mem copy.
- move waitAllStreams to device member function.
- create separate stream member function for copyAsync, like copySync.
  hipMemcpyAsync now calls the copyAsync.


[ROCm/hip commit: 52cc2bb75a]
2016-03-19 05:42:19 -05:00
Ben Sander 16df30e767 Swap in corrected hipHostAlloc (bad merge)
[ROCm/hip commit: d898997c65]
2016-03-19 04:11:08 -05:00
Ben Sander 5297376252 Merge branch 'privatestaging' of https://github.com/AMDComputeLibraries/HIP-privatestaging into privatestaging
Conflicts:
	src/hip_hcc.cpp


[ROCm/hip commit: 1de63bfeea]
2016-03-19 03:22:09 -05:00
Ben Sander 662cd0bb30 Fix copy and sync bugs. Remove extra sync in default stream.
- NULL stream was waiting for itself to be empty before each command.
- Force "blocking" streams to wait for NULL to empty.  This was missing
  before.
- async copy was disabling itself via trueAsync=false for common cases.

Refactor:
- rename _null_stream to _default_stream.
- move some null sync function to defaultSync, move to dev member func.


[ROCm/hip commit: 6472c8b915]
2016-03-19 02:44:26 -05:00
Ben Sander 0134651419 Refactor copy code.
-Move staging buffer locks inside the staging buffer code.
-Remove dedicated per-device completion_signal + per-device lock -
instead allocated signal from the per-stream pool.   This elimintes
the lock and allows more concurrency.
-remove switch HIP_DISABLE_BIDIR_MEMCPY


[ROCm/hip commit: 0af4d3623f]
2016-03-18 03:02:00 -05:00