Commit Graph

145 Commits

Author SHA1 Message Date
Aditya Atluri 7f21840dc8 added support pinned dma memcpy between host and device
[ROCm/clr commit: 620c5c64e6]
2016-04-20 14:21:22 -05:00
Aditya Atluri b857720440 added support for __ldg
[ROCm/clr commit: b493eac7e0]
2016-04-20 12:25:40 -05:00
Ben Sander 10d42fa7cc Merge branch 'privatestaging' of https://github.com/AMDComputeLibraries/HIP-privatestaging into privatestaging
[ROCm/clr commit: 1ac93489b9]
2016-04-18 21:51:13 -05:00
Ben Sander 57a4505e77 Fixes for P2P and hipDeviceReset
- devicereset would lose track of default stream and thus subsequent
  synchronization calls might not actually sychronize.
- Also deviceReset now correctly frees streams.
- fix waits in P2P staging copy - first phase (Device0-to-Staging) must
  wait for second phase (Staging to Device1) to finish draining the
  buffer.


[ROCm/clr commit: 6abfa13c34]
2016-04-18 20:49:33 -05:00
Aditya Atluri 13e3aaa949 Update hip_hcc.cpp
[ROCm/clr commit: 40377fe5b1]
2016-04-18 11:36:51 -05:00
Ben Sander e92dbaeecd Move HIP_HCC define to CMake
[ROCm/clr commit: f9a31e28ad]
2016-04-17 07:40:04 -05:00
Ben Sander dd323f5e31 Merge branch 'privatestaging' into p2p
Conflicts:
	include/hcc_detail/hip_hcc.h
	src/hip_hcc.cpp


[ROCm/clr commit: 8d26dfcde3]
2016-04-17 06:46:52 -05:00
Aditya Atluri f0a9d95d55 Corrected Memcpydefault
[ROCm/clr commit: dc61929a3d]
2016-04-16 17:10:13 -05:00
Ben Sander 942509d66e P2P Update.
- add P2P staging buffer copy.
- If copy device does not have sufficient access permissions, fall back
  to staging buffer.
- improve docs for which copy device is used.


[ROCm/clr commit: c3bd85595d]
2016-04-16 10:18:56 -05:00
Ben Sander d3356ba99f 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/clr commit: 1cc0ea86a1]
2016-04-11 09:17:27 -05:00
Ben Sander 9bf70214f3 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/clr commit: 5af4c901c6]
2016-04-11 12:52:18 -05:00
Ben Sander 76c49bbaf4 Clean up disable.
Add USE_HCC_LOCK (disabled)
Disable USE_PEER_TO_PEER.


[ROCm/clr commit: efffb0ed86]
2016-04-11 09:09:36 -05:00
Ben Sander 025938b1de 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/clr commit: 9e7efd7c65]
2016-04-11 07:58:59 -05:00
Ben Sander 25bcbca521 fix bugs in P2P implementation
- addPeers polarity reversed, would never add.
- check allow_access return value, pipe error to hipMalloc.


[ROCm/clr commit: 173cff4c1e]
2016-04-11 07:58:58 -05:00
Ben Sander 2890517a23 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/clr commit: 97772d6363]
2016-04-11 07:58:58 -05:00
Ben Sander 7eb8c10215 P2P checkpoint.
Maintain enabled peer tables for each device.


[ROCm/clr commit: e2d19d7f7a]
2016-04-11 07:58:58 -05:00
Ben Sander 1c84f4b5c6 Checkpoint initial peer2peer implementation.
[ROCm/clr commit: 4400875dda]
2016-04-11 07:58:58 -05:00
Ben Sander b6071f5eca fix bugs in P2P implementation
- addPeers polarity reversed, would never add.
- check allow_access return value, pipe error to hipMalloc.


[ROCm/clr commit: 7ca06d2fb1]
2016-04-09 04:11:31 -05:00
pensun 448b961328 clean up unused comments
[ROCm/clr commit: 45ed17ce2e]
2016-04-07 09:46:00 -05:00
Ben Sander e287933051 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/clr commit: 288682ccb3]
2016-04-06 16:44:31 -05:00
Ben Sander 6ccb0a5054 P2P checkpoint.
Maintain enabled peer tables for each device.


[ROCm/clr commit: 6a182ce788]
2016-04-06 15:50:47 -05:00
Ben Sander e195900a6e Checkpoint initial peer2peer implementation.
[ROCm/clr commit: db91890f53]
2016-04-06 15:50:47 -05:00
Ben Sander 36f2f683db Add runtime switch to control HIP_ATP_MARKER
Only generate the function strings if requested at
compile-time && runtime.


[ROCm/clr commit: e22925be22]
2016-03-29 17:27:30 -05:00
Ben Sander 34f21e1343 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/clr commit: 1b2ab173c1]
2016-03-28 21:41:47 -05:00
Ben Sander 96412bdea2 Stream thread-safe checkpoint.
Moving data structures to critical / protected section.


[ROCm/clr commit: 6cab7862ae]
2016-03-28 09:46:40 -05:00
Ben Sander 77a720aafc Stream thread-safe checkpoint.
[ROCm/clr commit: ecd56e1400]
2016-03-28 04:22:20 -05:00
Ben Sander 0b0c55af04 Protect _stream_id as well.
- move lockedaccessor
- clean up device class.
- add simple ihipDevice constructor.


[ROCm/clr commit: c47b5b04ef]
2016-03-26 11:45:25 -05:00
Ben Sander e16e848d55 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/clr commit: 4dd77c6612]
2016-03-26 10:46:20 -05:00
pensun b276e6b0d7 fix query of memoryClockRate and memoryBusWidth for both NV and HCC path
[ROCm/clr commit: a8ae62d399]
2016-03-25 09:24:08 -05:00
Aditya Atluri 256403548b Added canMapMemory feature to device properties
[ROCm/clr commit: 2dacc3e161]
2016-03-24 07:33:24 -05:00
Aditya Atluri fba45193cd added CR and hipsetdeviceflags func
[ROCm/clr commit: eea49cb66b]
2016-03-24 07:04:01 -05:00
Aditya Atluri bd9979eda6 Split files based on functionality and changed cmake file
[ROCm/clr commit: 1c55019322]
2016-03-24 04:57:30 -05:00
Ben Sander 245d48de79 Partition hip_hcc into sections
Separate files for different categories of HIP API.
Currently just #include into hip_hcc.cpp


[ROCm/clr commit: e52c3d9fe0]
2016-03-24 09:28:54 -05:00
Aditya Atluri 5f3d917b4c moved variables to headers
[ROCm/clr commit: c1ad70ad4b]
2016-03-23 12:59:52 -05:00
Aditya Atluri 1d31895043 reverted back to old infra with cmake added
[ROCm/clr commit: 29119bd3d4]
2016-03-23 11:13:02 -05:00
Aditya Atluri 85bcb2e3b8 WIP added modular feature for device apis
[ROCm/clr commit: 64c4c70e4f]
2016-03-23 07:54:01 -05:00
Ben Sander 7f1f07363d 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/clr commit: 3ca91cf327]
2016-03-23 23:11:15 -05:00
Aditya Atluri 49946441ab fixed hipHostGetFlags test
[ROCm/clr commit: e9e84d2db6]
2016-03-23 02:45:21 -05:00
Aditya Atluri 53bdbdc81b Remove redundant hpiHostGetDevicePointer
[ROCm/clr commit: b1b6d5e648]
2016-03-23 09:21:02 -05:00
Ben Sander 4f295f4358 Add USE_AV_COPY (replaces calls to am_copy with new acc_view::copy
[ROCm/clr commit: 6fb2367b66]
2016-03-23 10:30:53 -05:00
Ben Sander 72332dccb7 use the CPU_Agent for memory copies to indicate direction.
[ROCm/clr commit: f3ac666a7a]
2016-03-23 10:29:44 -05:00
Ben Sander 236ac8e023 Merge branch 'privatestaging' of https://github.com/AMDComputeLibraries/HIP-privatestaging into privatestaging
Conflicts:
	src/hip_hcc.cpp


[ROCm/clr commit: 8954e4fb26]
2016-03-23 03:22:09 -05:00
Ben Sander 8c25bc63b9 Add unique stream_id to devices to improve debug
[ROCm/clr commit: dc86743b35]
2016-03-23 03:17:19 -05:00
Ben Sander ab9a256f47 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/clr commit: fa8deac1ad]
2016-03-23 02:57:52 -05:00
Ben Sander 454faa062e HIP_TRACE_API prints function args, and in color
[ROCm/clr commit: aed1a82ccb]
2016-03-23 02:19:49 -05:00
Ben Sander f418fe4dae 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/clr commit: 54704b59dd]
2016-03-23 01:17:53 -05:00
Ben Sander 37a02661a6 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/clr commit: 2d0fade1f7]
2016-03-22 02:30:10 -05:00
Aditya Atluri cb2b9495f8 Revert "Revert "fixed memory free apis""
This reverts commit 70d2a03efd.


[ROCm/clr commit: 8af8ee2476]
2016-03-21 10:40:42 -05:00
Aditya Atluri 70d2a03efd Revert "fixed memory free apis"
This reverts commit 805dbd6d90.


[ROCm/clr commit: 1fa4d0d4b9]
2016-03-21 10:36:11 -05:00
Aditya Atluri 805dbd6d90 fixed memory free apis
[ROCm/clr commit: 71a6b5cb6c]
2016-03-21 10:32:30 -05:00