Gráfico de commits

178 Commits

Autor SHA1 Mensaje Fecha
Ben Sander 28db2f79ba Code cleanup, use camelCase where appropriate.
Change-Id: I5a7ec50df8bbb3e7a3b313c0b12e2dd55ae4a09c


[ROCm/hip commit: ed0a2c02fe]
2016-08-08 14:54:38 -05:00
Ben Sander 57df8a3967 Split ihipCtx_t into ihipCtx_t and ihipDevice_t .
Major change to existing code base.
    Ctx holds streams, enables peers, and flags.
    Device holds accelerator, hsa-agent, device props.

Add hipCtx_t.

Add peer APIs that accept hipCtx_t (in addition to deviceId)

Compiles and passes directed tests.

Change-Id: Iddab1eb9edbf90caad2ef5959c6b811d658197f1


[ROCm/hip commit: cfdacab32f]
2016-08-08 11:55:57 -05:00
Ben Sander ee356ad0d4 Change Device->Ctx
Change ihipDevice_t -> ihipCtx_t (new)
Change ihipGetTlsDefaultDevice->ihipGetTlsDefaultCtx
Some other changes from device->ctx where appropriate.

Change-Id: I5c4ae93b2fd42c6303aa23d748eb166b7431925d


[ROCm/hip commit: 2dc3d3238b]
2016-08-07 21:47:12 -05:00
Ben Sander 308578d520 Remove ihipStream_r::_device_index
Replace with direct pointer to device.  Cleaner, and prep
for transition to contexts.

Change-Id: I0e550f34412923d46c541c0a14bb7d29c3fd4b11


[ROCm/hip commit: e7d7c5cbe8]
2016-08-07 20:47:06 -05:00
Rahul Garg 63c4dc3273 Region based apis to pool based api changes
Change-Id: If53019eebafe051ab4e811863995f78315297080


[ROCm/hip commit: fcb2fcce1e]
2016-08-05 15:05:57 +05:30
Ben Sander 5ffc0a1e25 Remove faulty assert for kernelCnt==0
Change-Id: I8a925c95f48e857c0a31f44561499e90dc6df552


[ROCm/hip commit: f43d02027e]
2016-08-01 13:38:47 -05:00
Aditya Atluri 2f53a50718 Signal Fix: The signals in a stream are re-used
1. Before, the signal pool is increased depending on the usage
2. After, a static number of signals are allocated to the pool
Only these are used by hip in a stream
3. If the signals required are more than the pool size, the
stream has to wait to make sure all the signals are available
4. Once they are available, the stream can use them
5. Removed HIP_NUM_SIGNALS_PER_STREAM because of redundancy with HIP_STREAM_SIGNALS
6. Increased signal count from 2 to 32.
Future Work: Dynamically increase the pool size depending on the number of
streams allocated by the application. And, null stream should have more signals

Change-Id: I6be36e084f26bb04766fabf776c7210aee0f9e91


[ROCm/hip commit: 9062ebcf3a]
2016-07-28 23:01:35 -05:00
Ben Sander 3044711042 Remove dead enqueueBarrier function.
Change-Id: Ib18fe6bd96ce24dbeb342961ddb5721f7d03f2b2


[ROCm/hip commit: 666c227c7d]
2016-07-28 22:48:22 -05:00
Ben Sander 91368967bb Cleanup sync code.
Remove dead depFutures, enqueueBarrier call.
Rename some parms to reflect usage.
Add comments to better explain tricky parts of sync code.

Change-Id: I763296421d9c2b3b58fc8cef5f010b12ab49553c


[ROCm/hip commit: 02dd7a7399]
2016-07-27 18:31:11 -05:00
Aditya Atluri c2b4a3936c Signal Fix: Added signal limit to allocSignal
1. Did not change the logic in allocSignal
2. Added guard to wait on signal limit

Change-Id: I78f29097e6a584b3c3d78319dac19869067bd1fe


[ROCm/hip commit: 1859c6e515]
2016-07-27 13:48:49 -05:00
Aditya Atluri 6ff74b7780 Signal Fix: Moved kernel count to critical stream
1. Added environment variable HIP_NUM_KERNELS_INFLIGHT
2. Moved kernelcount variable inside stream critical section

Change-Id: I51d24d0a2a109467209170de117a6d02ba4e308e


[ROCm/hip commit: 0a31b47e2e]
2016-07-26 17:09:27 -05:00
Aditya Atluri eccab29360 Signal Fix: Changed global signal count to per stream signal count
1. The number of kernels that can use signals are increased to 128
2. The kernel count is now specific to the stream

Change-Id: Ie6d1aa3f437aad8f08c3333fe48bd3f46e551e60


[ROCm/hip commit: 53d7629a85]
2016-07-26 14:03:51 -05:00
Aditya Atluri 06abacce98 removed redundant signal destroy
Change-Id: Icf0cd76b2620d34c87cfb6c7a83049087c0a0bc4


[ROCm/hip commit: fa7933eb91]
2016-07-26 13:35:35 -05:00
Aditya Atluri 69aed2c6ea Added re-fix for memcpy kernel sync
1. The patch uses HIP signal pools to sync between copy and kernel commands
2. The hsa_signal_create is removed
3. Left the redundant enqueueBarrier method just in case

Change-Id: I3dff3e8ee57fff3cd49bec802ff735ed128e5ca1


[ROCm/hip commit: 4bdf26a82e]
2016-07-26 09:22:59 -05:00
Rahul Garg d506d58919 D2H and H2D unpinned memory transfer support
Change-Id: If6d6c970f435e5d917d5cc6cddc2ee2918cd1c37

Conflicts:
	src/hip_hcc.cpp


[ROCm/hip commit: 42a3ed544c]
2016-07-25 14:36:07 +05:30
Aditya Atluri 6f95ad0a8d Partial fix async after kernel launch signal issue
Change-Id: Ib48d6564379160035bded9493b93663fba361710


[ROCm/hip commit: c756bb3398]
2016-07-23 14:54:20 -05:00
Maneesh Gupta f02201e8c3 Replace calls to ihipInit with use of HIP_INIT_API macro
Change-Id: Iabf7df79f0238a8ddffea4607fe945df36642850


[ROCm/hip commit: 71d51170ef]
2016-07-22 15:46:55 +05:30
Maneesh Gupta cfd8b8f0c4 Fix using ATP markers
Change-Id: If2d04f80b580237426c569737551e2001a8cd35a


[ROCm/hip commit: b23fad53cc]
2016-07-21 16:02:51 +05:30
Aditya Atluri 404fb868c3 added fix for signal overflow in kernels
Change-Id: Ie0b1f97f69b7d7b34e445f6f120472819be03a0e


[ROCm/hip commit: c8542007b5]
2016-07-19 13:51:44 -05:00
Fan Cao f46c981363 Replace GPU agent with CPU agent properly for memory async copy API
ihipStream_t::copySync use GPU agent in memory async copy API, even
if the src/dst memory does not belong to GPU, which cause the hsa
runtime to choose a slower copy engine.

SWDEV-95191

Change-Id: If3cab3d493c0c96ed63721cdcf28247a1193887c


[ROCm/hip commit: 6a2bbbcb75]
2016-06-30 18:23:29 +05:30
Maneesh Gupta fed706a1d8 Merge branch 'amd-master' into amd-develop
[ROCm/hip commit: f4cc90472d]
2016-06-24 21:13:11 +05:30
Rahul Garg b77ff1168c Included code to calculate value of maxThreadsPerMultiprocessor property
Change-Id: Ie7cad7442f36a7163e715048de5a309febc28664


[ROCm/hip commit: 3029be78b8]
2016-06-24 15:10:11 +05:30
Ben Sander a771352253 Grid-launch updates to 2.0 and cleanup of old.
_ Use fields from GRID_LAUNCH_20 structure
  (See USE_GRID_LAUNCH_20 define, currently set to 0)
  "1" will require HCC support.
- Remove old DISABLE_GRID_LAUNCH support.

Change-Id: I584ce648d217251789a6283cf27feb24cb7dc8d1


[ROCm/hip commit: 9f29cc6989]
2016-06-21 23:24:38 -05:00
Maneesh Gupta b869655714 default value of uninitialized dim3 elements should be 1
Change-Id: Idff38fac8dfca68f38f1714f8fdec64df2890a6a


[ROCm/hip commit: 1a2db6e6e4]
2016-06-20 10:13:46 +05:30
Aditya Atluri 9a1bce640c able to pass non-dim launch parm to kernel launch
Change-Id: I0411849a27efcba597a1a9aa08be179635e04988


[ROCm/hip commit: 90cd67e0b5]
2016-06-18 11:28:20 -05:00
Ben Sander 0268c1e4e6 NVCC improvements.
- Complete translation tables for cudaError <-> hipError_t.
- Remove some odd errors that were not correctly translated or not used.
- Add HIPCHECK_API to test infrastructure.  Used for negative testing
  an API ; if a mismatch occurs it shows the expected return error
  code.  Can also print a warning rather than error.
- Enable hipMemoryAllocate on NV system, and review error coded.
- Add hipErrorName to nvcc.

Change-Id: I680427dcf32a5796d5913cf9e7f3b4c6f6b91599

Conflicts:
	tests/src/CMakeLists.txt

Bug fixes and improved docs for hipFree and hipHostFree.

    - Passing NULL pointer initialized runtime and return hipSuccess
      (not an error like before).
    - add negative test for this. (hipMemoryAllocate, improved)
    - Match NVCC errors for invalid pointers, add to test.
    - Update hipFree and hipHostFree docs.
    - hipGetDevicePointer always set *devicePointer=NULL, even for
      invalid flags.
    - Gate shared memory usage on specific HCC work-week.

Change-Id: I533b4fd3280a3d6cdbf05eb768976f0c7506c012


[ROCm/hip commit: 2ab19ca505]
2016-06-16 06:13:51 +05:30
Ben Sander 0d8b15274c Merge branch 'privatestaging' into grid_launch
[ROCm/hip commit: 89df2f4e2f]
2016-05-02 18:38:20 -05:00
Aditya Atluri fb0560651d changed to guard from hc.hpp
[ROCm/hip commit: cac8110a4f]
2016-04-27 17:46:27 -05:00
bwicakso 58e026519b Merge remote-tracking branch 'refs/remotes/origin/privatestaging' into kernel_synchronization
[ROCm/hip commit: f0974e5867]
2016-04-25 13:57:28 -05:00
Maneesh Gupta 90fa90295f Merge branch 'release_0.84.00' into privatestaging
Conflicts:
	include/hcc_detail/hip_runtime.h
	src/hip_hcc.cpp


[ROCm/hip commit: ffdf6ab23b]
2016-04-22 10:55:58 +05:30
bwicakso d24ba1ecbb Fix for kernel synchronization
The completion future of a particular kernel is lost if there are
multiple kernels in the stream. This can cause a racing condition where
the signal associated with the unreferenced completion_future might get
released by hcc runtime.


[ROCm/hip commit: df98fd8531]
2016-04-20 15:51:39 -05:00
Aditya Atluri 182ce03846 added support pinned dma memcpy between host and device
[ROCm/hip commit: f74b7a3636]
2016-04-20 14:21:22 -05:00
Aditya Atluri 15fc041fd6 added support for __ldg
[ROCm/hip commit: 805b268ad4]
2016-04-20 12:25:40 -05:00
Ben Sander 5858b85e8d Fix hipDeviceReset synchronization
[ROCm/hip commit: 453615ed57]
2016-04-19 11:56:12 -05:00
Ben Sander edda485753 Set chicken bits to 0.
[ROCm/hip commit: 8c97a258de]
2016-04-19 11:56:12 -05:00
Ben Sander f601813057 Merge branch 'privatestaging' of https://github.com/AMDComputeLibraries/HIP-privatestaging into privatestaging
[ROCm/hip commit: 22d5738f82]
2016-04-18 21:51:13 -05:00
Ben Sander 32f9d67741 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/hip commit: e020d68309]
2016-04-18 20:49:33 -05:00
Aditya Atluri 348e5be858 Update hip_hcc.cpp
[ROCm/hip commit: ea647727df]
2016-04-18 11:36:51 -05:00
Ben Sander 698ea7f30f Move HIP_HCC define to CMake
[ROCm/hip commit: 65abde6626]
2016-04-17 07:40:04 -05:00
Ben Sander 262b69f387 Merge branch 'privatestaging' into p2p
Conflicts:
	include/hcc_detail/hip_hcc.h
	src/hip_hcc.cpp


[ROCm/hip commit: 49cc5aec91]
2016-04-17 06:46:52 -05:00
Aditya Atluri 6cd86531b3 Corrected Memcpydefault
[ROCm/hip commit: 8dc1bdcbe6]
2016-04-16 17:10:13 -05:00
Ben Sander d4f449a95e 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/hip commit: dcabc9dbf7]
2016-04-16 10:18:56 -05:00
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