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

191 Коммитов

Автор SHA1 Сообщение Дата
Ben Sander 98019e5f79 Only use ihipLogStatus from top-level HIP functions.
Change-Id: I07e9c088d5c16a79ed52cb008a798889a656016c


[ROCm/clr commit: 9ee9284306]
2016-09-02 09:46:59 -05:00
Ben Sander fe85edad3f Use create_blocking_marker for WaitEvent implementation
Change-Id: Ib3113f69a14e48b9fe0558d7b455148e478d8eed


[ROCm/clr commit: 9a99000a62]
2016-09-02 09:46:59 -05:00
Ben Sander 938933ca2f 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


[ROCm/clr commit: 02f65a483c]
2016-09-02 09:46:59 -05:00
Aditya Atluri eb6863017c remove HIP_INIT_API from ihipSynchronize
Change-Id: Ibe0739efe55573c023212d9c28ba847c777e434c


[ROCm/clr commit: 7fdebfb8e3]
2016-08-29 21:42:22 -05:00
Ben Sander 78cfa5f6d6 Refactor trace code for hipLaunchKernel.
- Use standard print functions for streams.
- Add HIP_INIT macro, for cases where we want to initialize HIP but not
  log an API (ihipPreKernelLaunch).

Change-Id: If43cf8a363d918bcd3722a2e6a965d4cfa2e03e7


[ROCm/clr commit: fa9b95838a]
2016-08-29 18:37:57 -05:00
Aditya Atluri fa734c5a6a 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


[ROCm/clr commit: f722a132a4]
2016-08-26 13:11:01 -05:00
Aditya Atluri 82deaeb581 Changed how hipEvent_t is typedefed internall
- Mapped hipEvent_t directly to ihipEvent_t* instead of a handle

Change-Id: I5a8bcca0ef962932e0738c03eb1fc914d23022ae


[ROCm/clr commit: 25be4fb532]
2016-08-25 14:34:41 -05:00
Aditya Atluri 52305186ef Added stream synchronisation for hipLaunchModuleKernel
- The module kernel launch is now in sync with commands in its stream
- Moved launch kernel inside ihipStream

Change-Id: Ic00cfcf4882bf81b6203c36881a52575ea68b529


[ROCm/clr commit: c0fbe7891c]
2016-08-22 14:17:55 -05:00
Rahul Garg f1f04949ac Added support for hipCtxSynchronize and hipCtxGetFlags,modified hipDeviceSynchronize
Change-Id: If7bac667a262fa8c0cb3dc93e97f2534855acd07


[ROCm/clr commit: b0ba622ed5]
2016-08-22 16:15:27 +05:30
Ben Sander a4bfccf628 Context update.
- Remove tls_deviceID.
- Add first passing test.

Change-Id: If3e2f254abf589028cfe4f9e6369745f04160de0


[ROCm/clr commit: a9bcee3d77]
2016-08-10 08:59:47 -05:00
Rahul Garg dbf9fd8312 Changed StagingBuffer class to UnpinnedCopyEngine
Change-Id: I1e212bfc8030dcf225ecf78fd7b23fda9b1de92f


[ROCm/clr commit: d08b1239ee]
2016-08-09 21:29:42 +05:30
Rahul Garg cb771c60d3 Moved sync copy decision logic to staging buffer class
Change-Id: I5c398772375fcc1f174a7597eea1215ce7bf80b4


[ROCm/clr commit: 4044cb412c]
2016-08-09 09:28:18 +05:30
Ben Sander 0c8ca4b37d Add initial context implementation.
APIs: hipInit, hipCtxCreate.
Track TLS default ctx.  Set deviceID now changes the ctx.
Add first context test.

Change-Id: If1cb9989b5a04a36147e25e84904336c7b6f3d88


[ROCm/clr commit: f19f2248bf]
2016-08-08 17:49:02 -05:00
Ben Sander c85f34bf8a Code cleanup, use camelCase where appropriate.
Change-Id: I5a7ec50df8bbb3e7a3b313c0b12e2dd55ae4a09c


[ROCm/clr commit: ac173c3ae8]
2016-08-08 14:54:38 -05:00
Ben Sander 3ee6e7f8ab 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/clr commit: d09b19bb6c]
2016-08-08 11:55:57 -05:00
Ben Sander e5300e2b40 Change Device->Ctx
Change ihipDevice_t -> ihipCtx_t (new)
Change ihipGetTlsDefaultDevice->ihipGetTlsDefaultCtx
Some other changes from device->ctx where appropriate.

Change-Id: I5c4ae93b2fd42c6303aa23d748eb166b7431925d


[ROCm/clr commit: 0d16565061]
2016-08-07 21:47:12 -05:00
Ben Sander aa43c9e006 Remove ihipStream_r::_device_index
Replace with direct pointer to device.  Cleaner, and prep
for transition to contexts.

Change-Id: I0e550f34412923d46c541c0a14bb7d29c3fd4b11


[ROCm/clr commit: 3c604b6430]
2016-08-07 20:47:06 -05:00
Rahul Garg 7b7f9dab90 Region based apis to pool based api changes
Change-Id: If53019eebafe051ab4e811863995f78315297080


[ROCm/clr commit: 52712e2134]
2016-08-05 15:05:57 +05:30
Ben Sander ffd5a709f6 Remove faulty assert for kernelCnt==0
Change-Id: I8a925c95f48e857c0a31f44561499e90dc6df552


[ROCm/clr commit: bb005d1755]
2016-08-01 13:38:47 -05:00
Aditya Atluri 33f459c541 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/clr commit: 9c7ee12822]
2016-07-28 23:01:35 -05:00
Ben Sander 381f67e067 Remove dead enqueueBarrier function.
Change-Id: Ib18fe6bd96ce24dbeb342961ddb5721f7d03f2b2


[ROCm/clr commit: f7ab82cb39]
2016-07-28 22:48:22 -05:00
Ben Sander a853d10446 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/clr commit: ef61aae878]
2016-07-27 18:31:11 -05:00
Aditya Atluri 96fe085832 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/clr commit: 1b2a24d0b8]
2016-07-27 13:48:49 -05:00
Aditya Atluri b99410bd07 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/clr commit: 7be196de48]
2016-07-26 17:09:27 -05:00
Aditya Atluri d8ea207f61 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/clr commit: 2e754d27dc]
2016-07-26 14:03:51 -05:00
Aditya Atluri bb363f9d63 removed redundant signal destroy
Change-Id: Icf0cd76b2620d34c87cfb6c7a83049087c0a0bc4


[ROCm/clr commit: 524127b4a4]
2016-07-26 13:35:35 -05:00
Aditya Atluri e207805f81 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/clr commit: 0232e6bbb4]
2016-07-26 09:22:59 -05:00
Rahul Garg 7a70966cb1 D2H and H2D unpinned memory transfer support
Change-Id: If6d6c970f435e5d917d5cc6cddc2ee2918cd1c37

Conflicts:
	src/hip_hcc.cpp


[ROCm/clr commit: d11d65d401]
2016-07-25 14:36:07 +05:30
Aditya Atluri 776ea7a1f0 Partial fix async after kernel launch signal issue
Change-Id: Ib48d6564379160035bded9493b93663fba361710


[ROCm/clr commit: 1704006bed]
2016-07-23 14:54:20 -05:00
Maneesh Gupta 64d0ffb404 Replace calls to ihipInit with use of HIP_INIT_API macro
Change-Id: Iabf7df79f0238a8ddffea4607fe945df36642850


[ROCm/clr commit: b485470819]
2016-07-22 15:46:55 +05:30
Maneesh Gupta 68b1a199c4 Fix using ATP markers
Change-Id: If2d04f80b580237426c569737551e2001a8cd35a


[ROCm/clr commit: dffed956fb]
2016-07-21 16:02:51 +05:30
Aditya Atluri 2098afc04d added fix for signal overflow in kernels
Change-Id: Ie0b1f97f69b7d7b34e445f6f120472819be03a0e


[ROCm/clr commit: 77d7134619]
2016-07-19 13:51:44 -05:00
Fan Cao eb0db4e549 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/clr commit: dc0a787984]
2016-06-30 18:23:29 +05:30
Maneesh Gupta 28915dd491 Merge branch 'amd-master' into amd-develop
[ROCm/clr commit: dca8fca8eb]
2016-06-24 21:13:11 +05:30
Rahul Garg 38987ce023 Included code to calculate value of maxThreadsPerMultiprocessor property
Change-Id: Ie7cad7442f36a7163e715048de5a309febc28664


[ROCm/clr commit: 226aa917e7]
2016-06-24 15:10:11 +05:30
Ben Sander 050430789c 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/clr commit: e27b5cc927]
2016-06-21 23:24:38 -05:00
Maneesh Gupta a0006c5df0 default value of uninitialized dim3 elements should be 1
Change-Id: Idff38fac8dfca68f38f1714f8fdec64df2890a6a


[ROCm/clr commit: 2d50e4b9e0]
2016-06-20 10:13:46 +05:30
Aditya Atluri adace999e7 able to pass non-dim launch parm to kernel launch
Change-Id: I0411849a27efcba597a1a9aa08be179635e04988


[ROCm/clr commit: ffcfc95360]
2016-06-18 11:28:20 -05:00
Ben Sander c46b2e7450 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/clr commit: 6a2a140f34]
2016-06-16 06:13:51 +05:30
Ben Sander 41c57d1e00 Merge branch 'privatestaging' into grid_launch
[ROCm/clr commit: 20043d602e]
2016-05-02 18:38:20 -05:00
Aditya Atluri 8241a3dd75 changed to guard from hc.hpp
[ROCm/clr commit: ec8cedc70e]
2016-04-27 17:46:27 -05:00
bwicakso 4efcfdb83c Merge remote-tracking branch 'refs/remotes/origin/privatestaging' into kernel_synchronization
[ROCm/clr commit: 4aca1babe8]
2016-04-25 13:57:28 -05:00
Maneesh Gupta 03014e8a1d Merge branch 'release_0.84.00' into privatestaging
Conflicts:
	include/hcc_detail/hip_runtime.h
	src/hip_hcc.cpp


[ROCm/clr commit: 02e6fc27f4]
2016-04-22 10:55:58 +05:30
bwicakso 90fffbca82 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/clr commit: 6773a64b22]
2016-04-20 15:51:39 -05:00
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 0f4bd3ad3a Fix hipDeviceReset synchronization
[ROCm/clr commit: ccf2c1c323]
2016-04-19 11:56:12 -05:00
Ben Sander 810f390cfe Set chicken bits to 0.
[ROCm/clr commit: b3c2d906db]
2016-04-19 11:56:12 -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