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

352 Коммитов

Автор SHA1 Сообщение Дата
Yaxun Sam Liu 1299b65e15 Add HIP_DB=fatbin for debugging fat binary issues 2018-08-17 11:53:45 -04:00
Sarunya Pumma 8111fd3b8b Remove device mapping from shareWithAll memory
When shareWithAll memory (e.g., host memory) is allocated, set appId
in hc::AmPointerInfo to -1 to indicate that this memory is not mapped
to any device.  Peer checking in ihipStream_t::canSeeMemory is not
necessary if memory is shared with all devices.  Thus, it is skipped.

Note that earlier host memory is always mapped to device 0 and HIP
always performs peer checking for all kinds of hipMemcpy.  Since the
peer checking process requires context locking, hipMemcpy from/to host
memory always grabs device 0's context lock.  Therefore, if there is
another thread holding the context lock of device 0 (e.g.,
hipDeviceSynchronize on device 0), hipMemcpy will have to wait for the
lock until it can actually perform memcpy.  This can significantly
deteriorate execution performance.

Signed-off-by: Sarunya Pumma <sarunya.pumma@amd.com>
2018-07-28 23:15:16 -07:00
Maneesh Gupta 7311b60220 Merge pull request #491 from scchan/fix_wait
callback handling: don't need to wait for the thread to become ready
2018-06-06 14:38:25 +05:30
Siu Chi Chan a1f3b587fb remove the _ready flag in ihipStreamCallback_t and the mutex that protects it. 2018-06-04 17:29:04 -04:00
Rahul Garg 1a02bc364f Add integrated device property 2018-06-02 13:11:16 +05:30
Maneesh Gupta 1ba06f63c4 Apply .clangformat to all repo source files
Change-Id: I7e79c6058f0303f9a98911e3b7dd2e8596079344
2018-03-12 11:29:03 +05:30
Maneesh Gupta cebb070d30 Implement hipStreamAddCallback
Change-Id: Ib851e4d86ba9c8406ca37b88162ea483ccbc9d36
2017-12-19 16:06:14 +05:30
Ben Sander 9bba97fdcc Fix some cppcheck style issues. 2017-12-01 20:45:34 +00:00
Pierre 6baaed8e48 Fix missing MARKER_END
Logging status of hipCtxSynchronize was missing
Test if hip profiling is active for MARKER_END in ihipPostLaunchKernel
Add MARKER_END after the completion of a kernel launched through
the "grid launch"
2017-11-13 16:13:19 -05:00
Ben Sander 4a2e6f8955 Make hipEvent_t thread safe.
Support re-recording of same event by different threads.

- Add criticalData structure to hipEvent_t, similar to mechanism used
  for streams, contexts, device.  Events are always locked
  after streams to avoid deadlock.
- ihipEvent_t::locked_copyCrit can be used to copy critical state
  including marker.  The critical state in the event can then
  be re-recorded.
- refactor hipEventElapsedTime.  Remmove stale debug code, native signal
  refs.
2017-11-06 23:49:25 +00:00
Ben Sander 09d866a639 Merge pull request #237 from bensander/use_ctxptr_for_p2p
Use ctxptr for p2p
2017-11-01 18:55:25 +01:00
Ben Sander 7e908bdec8 Add ns-level timer for HIP API routines
Refactor some miuses of ihipLogStatus, these should only be in top-level
HIP APIs and should be paired with HIP_API_INIT calls.
2017-10-30 20:20:51 +00:00
Ben Sander 2e8ec71e40 Merge pull request #222 from bensander/fix_device_prop
Fix device prop
2017-10-30 17:58:48 +01:00
Ben Sander d610f16c47 Check for null copyEngine before looking at peers. 2017-10-30 16:58:03 +00:00
Ben Sander 7d30f32332 Fix bug with peer-to-peer combined with context API
- Store context inside the tracker rather than using int deviceID that
  was always mapped to primary context
- IsPeerWatcher now based on device IDs rather than specific peers.
2017-10-26 19:44:22 +00:00
Aditya Atluri 5d646d0fe3 Enhance debug for copy pointers
- show more pointer tracking fields
- show pointer info before and after "tailoring'
2017-10-26 19:44:22 +00:00
Siu Chi Chan 5b9ce032d6 replace __hcc_workweek__ with HC_FEATURE_PRINTF flag 2017-10-23 18:30:08 -04:00
Ben Sander dd24983571 Remove printf 2017-10-20 13:24:04 -07:00
Ben Sander acf89b43d4 Update device properties.
- clear properties to defined initial state.
- enable some property flags which are now supported.
2017-10-20 15:52:13 +00:00
Ben Sander c9f906c2ce Modify device properties to use pool API.
- Also better error code checking
2017-10-20 14:49:29 +00:00
Siu Chi Chan ccef1cbd6e hipDeviceReset(): make sure to reinitialize the printf buffer in hcc RT 2017-10-18 16:26:13 -04:00
Wen-Heng (Jack) Chung c74d3fe2cb Bump device major version from 2 to 3
This would significantly improve performance for certain apps in kernel
selection logic.
2017-09-15 15:47:39 +00:00
Ben Sander fbd22c3e49 Merge branch 'master' into hip_init_alloc 2017-09-14 11:53:33 -05:00
Ben Sander cea80cd8b3 Add HIP_INIT_ALLOC to init allocated memory. 2017-09-13 23:31:48 +00:00
Ben Sander 4ac6d643c1 hipStreamQuery uses av::is_empty. Add HIP_FORCE_NULL_STREAM. 2017-08-31 03:00:14 +00:00
Ben Sander 882dab4536 Refactor hipStreamWaitEvent
- Null streams use same flow as non-null.
- Add HIP_SYNC_STREAM_WAIT
- Resolve null stream.
2017-08-31 03:00:14 +00:00
Ben Sander 6ff74d0e97 Lock streams when waiting on event completion or querying event safety. 2017-08-28 18:40:16 -05:00
Maneesh Gupta e40047f2bf [texture] guard new HCC APIs under workweek
Change-Id: I4f60a64fb0b0496ca1eb01ffe6ddda121c25d976
2017-08-15 15:51:38 +05:30
Weixing Zhang 4264a4ce56 [HIP Texture] The GPU virtual address for texture memory needs to be
aligned.

In hcc_am, a bigger buffer will be allocated for alignment purpose
and _unalignedDevicePointer is added in struct AmPointerInfo for
original allocated address.
2017-08-08 11:18:00 -04:00
Maneesh Gupta 48573a037e Merge pull request #135 from bensander/fix_tracing
Some fixes to tracing.
2017-07-31 10:24:41 +05:30
Ben Sander ecbb494a58 Some fixes to tracing. 2017-07-28 22:13:43 -05:00
Maneesh Gupta fcc294ed41 Merge pull request #122 from bensander/enable_async_null_stream
Set HIP_SYNC_NULL_STREAM=0.
2017-07-28 09:15:56 +05:30
Ben Sander 77fb9893b4 Set HIP_SYNC_NULL_STREAM=0.
Optimizes null stream synchronization so it uses GPU-side dependency
resolution. Requires HCC __hcc_workweek__ > 17300.
2017-07-27 11:11:54 -05:00
Ben Sander 8b8e97ff28 Make host memory allocations coherent by default.
Associated change is to optimize event recording so it uses
agent-scope releaes (since it was only using system-scope release
to support non-coherent host mem).

Flags and environment variables exist to obtain previous behavior
if desired.  Options are documented in new performance guide.
2017-07-26 19:20:34 -05:00
Ben Sander 67f5d2de3d Enable HCC_OPT_FLUSH=1 (if HCC compiler new enough) 2017-07-24 18:57:19 -05:00
Wen-Heng (Jack) Chung 17555eabc0 Temporarily disables HCC_OPT_FLUSH
Change-Id: I290791e58dd52ab3823f6c3315e42b0d386e9d64
2017-07-12 16:08:36 +00:00
Ben Sander 626b5191e8 Set default HIP_SYNC_NULL_STREAM=1. 2017-06-30 19:01:14 -05:00
Aditya Atluri 3e610ab0fe automate gcnarch detection
Change-Id: Ibbad22db136f7f5e2be84c82e9169298a144cc77
2017-06-29 12:01:40 -05:00
Rahul Garg f4ea3b76c8 Fixed hipDeviceGetPCIBusId for HIP/HCC
Change-Id: I3688fa2476e1baada2d3c5fc3735cec3f15a1e21
2017-06-28 23:48:27 +05:30
Ben Sander 148dbc1027 Set default HIP_HIDDEN_FREE_MEM 2017-06-27 12:17:12 -05:00
Sun, Peng 1df08626c8 Add support of HIP_HIDDEN_FREE_MEM, to deduct the returned available
memory from hipMemGetInfo API, measured in MB.

Change-Id: I7a8260c12e032e04e26611db4c38c893a29f2653
2017-06-26 15:29:38 -05:00
Ben Sander 7912e61502 Clean up old USE_* and RELEASE.md notes. 2017-06-23 18:05:30 -05:00
Ben Sander ac634bf334 Enable HCC_OPT_FLUSH=1.
Requires appropriate HCC with this support   :
commit 38e392b517a46a09a3b1c8f388e6a0db3741c510
2017-06-07 00:15:05 -05:00
Ben Sander decf3eee18 Enable HIP_SYNC_NULL_STREAM=0 optimization. 2017-06-05 08:50:41 -05:00
Ben Sander 39c18e5e5f Fix HIP_SYNC_NULL_STREAM=0 mode.
- Fix null-stream sync
- hipStreamDestroy of null stream returns hipErrorInvalidResourceHandle
- Update documentation.
- Add tests for null stream sync, hipEventElapsedTime.
- Rename internal enum hipEventStatusRecorded to hipEventStatusComplete
- refactor hipStreamWaitEvent to streamline control-flow
2017-06-05 08:50:22 -05:00
Ben Sander d5c1616324 Update tests, add p2p coherency test. 2017-06-03 17:11:34 -05:00
Ben Sander ec7102f461 Add event controls for release fences.
Env var : HIP_EVENT_SYS_RELEASE
Event allocation flags : hipEventReleaseToDevice, hipEventReleaseToSystem
   (remove hipEventDisableSystemRelease)

Update test for new functionality.
2017-05-27 16:02:34 -05:00
Ben Sander 620eb30691 Cleanup hipEvent. (Intermediate checkpoint)
Support hipEventDisableSystemRelease flag.
Update test.
Remove stray printf
2017-05-27 16:02:34 -05:00
Ben Sander 578d430bb3 Remove HIP_NUM_KERNELS_INFLIGHT. (redundant with HCC controls) 2017-05-24 01:03:28 -05:00
Ben Sander 75f691ec2f Add hipHostMallocCoherent, hipHostMallocNonCoherent
Provide per-allocation control over coherent/non-coherent mem.
These overrid the default HIP_COHERENT_HOST_ALLOC setting.
2017-05-24 00:48:10 -05:00