Commit Graph

26 Commits

Author SHA1 Message Date
Ben Sander a55ce5bee4 Add initial HIP_SYNC_NULL_STREAM=0 mode.
This eliminates host-synchronization for null stream.  Instead, the
null-stream uses GPU-side events to wait for other streams.
Default is OFF pending additional testing.

Add enhanced null-stream test.

Also refine HIP_TRACE_API.


[ROCm/hip commit: 27877f8854]
2017-05-16 19:04:25 -05:00
Aditya Atluri ccf799c453 added new api hipHccModuleLaunchKernel
1. hipHccModuleLaunchKernel is same as hipModuleLaunchKernel with OpenCL workitem model
2. Added copy right
3. Fixed header naming

Change-Id: I6a7c35a3566e2f8d3f5056613e34193775d4b236


[ROCm/hip commit: b9091ba818]
2017-03-31 12:11:34 -05:00
Aditya Atluri 5de29029cd changed copyright year from 2016 to 2017 in src directory
Change-Id: Idb97db509b2b4b1656b2df7a14a62ade38c9d574


[ROCm/hip commit: 73fcce26f9]
2017-01-11 18:05:41 -06:00
Ben Sander 1908d9504b Add HIP_MAX_QUEUES feature.
Includes some tricky manipulation of the locks for contexts and streams.
issue is that stealing a stream requires we lock the context to
walk the streams to find a victim.  To avoid deadlock, we can't
have a stream locked when we lock the context.  This implementation
releases the stream lock, then acquires the context and selects the
victim.
A more stable implemenation might be to copy the stream list
from a context so that a lock is not required to walk all streams.
Smart shared_ptr could be used to prevent the streams from being
deallocated during the walk.


[ROCm/hip commit: a3e0012567]
2017-01-09 21:02:56 -06:00
Ben Sander bbb1485a83 First pass at virtualized queue support.
Also updated stream debug messages to consistently use trace_helper.


[ROCm/hip commit: 93fbc9cf7b]
2017-01-09 21:02:53 -06:00
Ben Sander 72f6afab45 tolerate spaces in hip args
[ROCm/hip commit: 3a42a7642a]
2017-01-09 20:57:13 -06:00
pensun 9f4cb7d4de Add workaround for hipStreamAddCallback function: call stream synchronize on host and then add execute the call back function
Change-Id: If361f8e053949904b19b9e09245d267f05e29f7b


[ROCm/hip commit: 1f11a9554e]
2016-10-22 23:59:39 -05:00
Ben Sander c11b6f511b Move some internal headers from "include/hip/" to src.
Change-Id: I7041bd5c803d9318979f4a7c1d658445c614691e


[ROCm/hip commit: 9315ac1a29]
2016-10-18 22:27:16 -05:00
Maneesh Gupta dd60b971d1 src/*: Update copyright header
Change-Id: I455f5d0d12fe9cb39a3ba873bd22b4c25ed07cbf


[ROCm/hip commit: 8471682f26]
2016-10-15 22:55:22 +05:30
Ben Sander dda8fb6596 Don't save error status on ihip function.
[ROCm/hip commit: b4a783efa1]
2016-10-05 12:18:42 -05:00
Maneesh Gupta fc58842fcf Move include/* to include/hip/*
Change-Id: I7a7b2839b4df59c7a4c503550f99fdc9e45c0f54


[ROCm/hip commit: b951cc99ed]
2016-10-04 22:17:18 +05:30
Ben Sander d71686d4f5 Remove USE_AV_COPY, USE_PEER_TO_PEER fallback paths.
Change-Id: I9c20173e62029c4caebabc98784c6d7697758e4f


[ROCm/hip commit: e843d8cb51]
2016-09-22 14:21:19 -05:00
Ben Sander 6445921e03 Add hipStreamQuery
Change-Id: Ib0813b1065feba4fe9ae861d24cfc6f9c5f580be


[ROCm/hip commit: 4e994a3025]
2016-09-07 15:18:34 -05:00
Ben Sander c394892227 remove printf
Change-Id: I36510a7ff0425f05a6d0b9c65cda4397c9cc2d95


[ROCm/hip commit: 64bc513df9]
2016-09-02 17:50:31 -05:00
Ben Sander 1edcb06701 hipStreamWaitEvent update.
Add passed to hipStreamWaitEvent test.
Fix pointerAttrib test to work with new and old HCC versions.
Minor code touchup.

Change-Id: I139ba6ce9f6bf2b4bee89aebdec5981b4346ffc0


[ROCm/hip commit: 0923c2d261]
2016-09-02 09:46:59 -05:00
Ben Sander 71f898d534 Use create_blocking_marker for WaitEvent implementation
Change-Id: Ib3113f69a14e48b9fe0558d7b455148e478d8eed


[ROCm/hip commit: aa823871db]
2016-09-02 09:46:59 -05:00
Ben Sander bb0afa4e38 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/hip commit: e76a272d48]
2016-09-02 09:46:59 -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 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 48773c6d4f Improve debug print messages.
- Remove "call-to-call" for hipStreamCreate and hipEventCreate.
  These now call an internal functions rather than calling through
  hipStreamCreateWithFalgs and hipEventCreateWithFlags.

- Add HIP_INIT_API for more functions so they trace correctly.

- Use stream#DEVICE.STREAMID in debug messages via new specialization in
  tace_helper.


[ROCm/hip commit: 7934cf620d]
2016-03-26 12:35:04 -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
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