Graf Tiomantas

140 Tiomáintí

Údar SHA1 Teachtaireacht Dáta
Sean Keely 76c28f38c4 Fix bad casts in tools.
Also virtualize queue profiling enable.

Change-Id: I761b41269be3df7eb64a5914ee9951ed6b51bb04


[ROCm/ROCR-Runtime commit: 6455a69b03]
2017-11-08 15:50:02 -05:00
Sean Keely 0fcdd63d88 Add callback exception forwarding.
Modified callbacks for intercept queue, queue error, iterate agent and
iterate region.

Change-Id: I8bdd67f2312510ea7eb9caec93babca244938b40


[ROCm/ROCR-Runtime commit: a6d8a48cbc]
2017-11-08 15:50:02 -05:00
Sean Keely e2efba0676 Exception support for Queue.
Remove "zombie" queue state and report queue creation failure via
exceptions.  Make Shared object a final container and support array
objects with Shared.  Add message printing to hsa_exception in
debug builds.

Change-Id: I459f38c80846018acbf45538874e95f91dd6b195


[ROCm/ROCR-Runtime commit: f312a7386e]
2017-11-08 15:50:02 -05:00
Sean Keely 2406218416 Add queue intercept support to the runtime.
Queue intercept is exposed as two tools-only APIs via the API
intercept table.

Change-Id: Iac9602ed3143974d85c3569e9092295ad18037f8


[ROCm/ROCR-Runtime commit: 0c7dde2d1f]
2017-11-08 15:50:01 -05:00
Kent Russell c52d3b6997 Revert "aqlprofile API: _start() sets buffers sizes with NULL ptr; block counters reg number / block name info"
This reverts commit 8518a48d4f.

Change-Id: Ie90b091df772bf9391494c773d63858aafbc1176


[ROCm/ROCR-Runtime commit: b29d3f63e2]
2017-11-08 06:59:33 -04:00
Evgeny 8518a48d4f aqlprofile API: _start() sets buffers sizes with NULL ptr; block counters reg number / block name info
Change-Id: I3cb93453b683c55bf5ec26271648232306a5d140


[ROCm/ROCR-Runtime commit: 3daa85fad8]
2017-11-07 15:05:47 -05:00
Sean Keely cb47089c17 Make HostQueue::queue_count_ a portable atomic type.
Also make lint happy.

Change-Id: I0f965df6a76fd959df9eb411d1f1b11847159790


[ROCm/ROCR-Runtime commit: d93f92f42d]
2017-10-31 02:38:25 -05:00
Qingchuan Shi 3e9a0561c0 Add APIs to support debugging vm fault
1. Add hsa ext api hsa_amd_register_vmfault_handler for debugger to register callback in case of VM fault.
2. Extend hsa_ven_amd_loader API to:
   (1) iterate loaded code objects in executable:
       hsa_ven_amd_loader_executable_iterate_loaded_code_objects
   (2) get loaded code object info:
       hsa_ven_amd_loader_loaded_code_object_get_info
3. Make the id of hsa_queue the same as the one used in communication with thunk (for amd_aql_queue)

Change-Id: I68910809e59e24297350d262606f00e96c14bcbd


[ROCm/ROCR-Runtime commit: ce6aee01ed]
2017-10-28 21:48:26 -04:00
Sean Keely 0a4a1a2433 Fix error message description.
Change-Id: I32efed68e970a4882aca9decbbcda3fcd5c5cb43


[ROCm/ROCR-Runtime commit: 6ee2ccb08b]
2017-10-24 21:52:21 -05:00
Sean Keely 8122fbebad Set doorbell kind code for gfx9+ device enqueue.
Change-Id: I93c4cea677ae51f97ac768614333743fb26b2f54


[ROCm/ROCR-Runtime commit: 5a4ab91be1]
2017-10-21 11:08:44 -04:00
Sean Keely 41615ea7d5 Improve unhandled exception error reporting in debug builds.
Change-Id: Ia92d1a93163105d817a2147d96f2edd399e2b70d


[ROCm/ROCR-Runtime commit: 3cef9b1a04]
2017-10-21 11:08:01 -04:00
Sean Keely bdb5edad34 Fix memory leak in exception path.
Change-Id: Iad5f035cd1909be4a8f1a1f5dd7ca5abec0694b4


[ROCm/ROCR-Runtime commit: 737966eb25]
2017-10-21 11:08:00 -04:00
Ramesh Errabolu a4d753615b Changes to support surfacing of link weight as part of link info
Change-Id: I1c0705a9374af1245f0419c51beded0d7ee10639


[ROCm/ROCR-Runtime commit: dccbc9f2af]
2017-10-20 12:09:31 -04:00
Sean Keely 93e58b9100 Capture more memory allocation types with the 2MB allocator.
TensorFlow was running out of VRAM due to padding up allocations
from legacy memory APIs.  These allocations have been added to
the fragment allocator to improve VRAM utilization.

Change-Id: Ic680fff576a0434b3b17a4c91746da44e09957fa


[ROCm/ROCR-Runtime commit: 4f299a9909]
2017-10-12 23:22:10 -04:00
Sean Keely 06c7997137 Release cached memory blocks when memory allocation fails and retry.
Change-Id: I6d96e136e147d8ffe9ff7baec26b4b5a678b739f


[ROCm/ROCR-Runtime commit: 9ba83d83f7]
2017-10-03 20:12:05 -04:00
Sean Keely 21a65a1233 Support hsa_amd_agents_allow_access on page fragments.
Since access may only be manipulated on whole pages, suballocator fragments must cooperate to set the page's access.
Since the KFD does not migrate memory on access changes this implementation makes agent access sticky across the requests in a fragmented page.

Change-Id: I88479ed45fb40e9782b704526a7b8ffb22e7bd76


[ROCm/ROCR-Runtime commit: e9a6f2c3e6]
2017-09-27 19:04:04 -05:00
Sean Keely 36d1168183 Fix assert in simple_heap.
Also add comments to clarify pointer info constraints.

Change-Id: I8d07831a0e953d667c84c96fe53ed07c18ba115c


[ROCm/ROCR-Runtime commit: 476c8e36bf]
2017-09-21 00:47:18 -04:00
Sean Keely 595c7130d2 Enable use of CLOCK_MONOTONIC_RAW for post 4.4 kernels.
Change-Id: I3c1f27c7e639df5128c36d81f715fa16e6c1cf13


[ROCm/ROCR-Runtime commit: 30fce248c6]
2017-09-20 14:28:23 -04:00
Sean Keely c5f1027982 Improve branch elimination in ScopedAcquire.
GCC can't reasonably be told that the lock ptr isn't null.  Adding a private bool
allows the branch to be eliminated, along with the bool.

Change-Id: I0605d69474d6a6e6951be93c0af1d8caf3f77124


[ROCm/ROCR-Runtime commit: 9dfdce5b3c]
2017-09-19 06:08:36 -04:00
Sean Keely 3aeea948cb Add env key to disable 2MB suballocation.
Change-Id: Icca3041c3578aa180a656c01aae62f2ad6e8b583


[ROCm/ROCR-Runtime commit: 4275661682]
2017-09-19 06:08:36 -04:00
Sean Keely 9fd778eec1 Add suballocator for ordinary VRAM allocations smaller than 2MB.
Track pointer info for sub 2MB fragment allocations in allocation_map_.

Add fragment support to IPC.

Change-Id: I00cfc2e2fa289aac90a4718c392f9bb056a61a87


[ROCm/ROCR-Runtime commit: 117be0b55a]
2017-09-19 06:08:36 -04:00
hthangir 3dc1b18d54 Use non-RAW version in clock_getres to workaround bug in older kernels
Change-Id: Ice0606a42cd7054f0804baf4af3521ffae3b7d50


[ROCm/ROCR-Runtime commit: 87d2df3da3]
2017-09-14 13:56:15 -05:00
Sean Keely e150edc48c Report tools library load failures in debug builds.
Change-Id: Ie1ff313e929fc46134e58730a1d370c5d7ace8db


[ROCm/ROCR-Runtime commit: f1a661dedb]
2017-08-31 21:32:48 -04:00
Laurent Morichetti b2cb6bca96 Include <errno.h> for EBUSY
Change-Id: I9fa3417445866f3ce37af2169f623afa8e92e873


[ROCm/ROCR-Runtime commit: 0f05ef73ac]
2017-08-31 07:32:51 -07:00
Sean Keely 4ff7a53721 Correct vm_fault signal cleanup.
Change-Id: Id2f14b911e3991a76771425bc09f38a613280e6b


[ROCm/ROCR-Runtime commit: 0cb1e8cb35]
2017-08-18 22:12:38 -04:00
Sean Keely 468313f9b5 Simplify pointer info version check.
Change-Id: I0ed363f1261ffc041547f313970ca67298ace56c


[ROCm/ROCR-Runtime commit: dec5c52e07]
2017-08-12 03:14:39 -04:00
Sean Keely 546c179cfc Initial IPC signal support.
Added an API for creating signals with attributes.
Added two APIs for IPC operations on signals.
Initial use of exceptions for error handling.

Add ref counting to signals.
Removed spin loops from signal destructors.
Signals are no longer to be destroyed with delete, use DeleteSignal instead.
Added delete safety to doorbells.
Added secondary hsa_signal_t -> Signal* translation path for IPC enabled signals.

Change-Id: Id59065d002f0c2566b0a9425694da2ed27cb7d7f


[ROCm/ROCR-Runtime commit: c9642cf7af]
2017-08-11 18:41:34 -05:00
Sean Keely 550547f404 Initial exception support for signals.
Also separate signal ABI block allocations from the runtime interface object.

Change-Id: If16763338db664f29163a1348f8f4c38cf0597b2


[ROCm/ROCR-Runtime commit: 2732b18092]
2017-08-11 18:41:34 -05:00
Evgeny ce72ce0c92 adding aqlprofile member to HsaApiTable
Change-Id: Id674186dfa2e83295a51f770ccc0400f1cb51a98


[ROCm/ROCR-Runtime commit: 287afd3a52]
2017-08-09 16:09:39 -05:00
hthangir ea88523fc7 Fix compilation issue reported with GLIBC 2.12 (RHEL 6.9)
Change-Id: I770b72ba1d61475a76aa72d0c52ebfb380db6019


[ROCm/ROCR-Runtime commit: 9ee0108e58]
2017-07-28 11:11:01 -04:00
Sean Keely dd8804d7ad Remove use of anonymous member in C builds.
Tools/CodeXL will retain older versions of structs if them need them.

Change-Id: I568d7b445778dd575ef71000b4b839300572288e


[ROCm/ROCR-Runtime commit: a0a3587345]
2017-07-12 16:40:00 -04:00
Sean Keely 41ab59b1e7 Fix queue interception in tools.
1. Correct amd::AqlQueue::ExecutePM4 to support interception.
2. Minor fixes to AqlPacket and SoftCP.
3. Minimal change to disable interception of runtime internal queues.

Change-Id: I103fece2ebf9a188d27f01e61221c737405d7253


[ROCm/ROCR-Runtime commit: bc0bd00746]
2017-07-12 16:39:43 -04:00
Sean Keely 17d0e450cb Correct handling of slow clocks under linux.
Change-Id: I9a1b08d5457caa6739220603bbd37b00febc64d7


[ROCm/ROCR-Runtime commit: 29b5b5c029]
2017-07-12 12:49:49 -04:00
Sean Keely 19f96afee1 Properly order signal copy agent tagging with copy operation.
Change-Id: Ic428c958551279fbea1b2449afba930b82804ede


[ROCm/ROCR-Runtime commit: 3e50adc7ce]
2017-07-11 13:10:00 -04:00
Sean Keely cafbebc2a5 Decrement hsa_init ref counter when init fails.
Change-Id: If9376344d4b559e601932d070731132c8450104e


[ROCm/ROCR-Runtime commit: c9f0427cb0]
2017-07-07 21:21:03 -05:00
Evgeny ce82829fc1 hsa-runtime integration
Change-Id: I48968966ffe164218ebff88d0e3a1268e96bf1dd


[ROCm/ROCR-Runtime commit: 4174f07fd1]
2017-07-05 10:55:30 -04:00
Ramesh Errabolu 1351f204d4 Support Perf Cntrs (PMC) and Thread Trace (SQTT) over AQL queues
Change-Id: I716b722895d90b46914c31377e791ad602acecc1


[ROCm/ROCR-Runtime commit: 08e0bca567]
2017-06-15 12:58:31 -04:00
Kenny Ho 415027b89f Revert "Implement memory fault analysis through context save area"
This reverts commit 498f3a7188.

Change-Id: Ibf11b764b383b9be291f3009a30550e1a1e2d115


[ROCm/ROCR-Runtime commit: 5b4df54b10]
2017-06-14 14:21:53 -04:00
Jay Cornwall 498f3a7188 Implement memory fault analysis through context save area
When a fatal memory fault occurs the scheduler context-saves all queues
in the process and notifies the runtime through the memory event. The
saved state contains all GPR/LDS data at the moment of the fault.

Retrieve this state and present it to the user if HSA_DEBUG_FAULT is set
to "analyze" and the wavefront caused the fault. If amdgcn-capable objdump
is in the PATH invoke this to disassemble code around the PC.

Queue lifetime is now managed by the runtime to allow querying the
context save state for all active queues.

Change-Id: I6fee662fad1c4f9aa125bf5c53d7d0ea1ab32f95


[ROCm/ROCR-Runtime commit: 75c9506f9d]
2017-06-13 23:12:28 -04:00
Konstantin Zhuravlyov 79a238eb78 Update hsa_isa_t entries
- Add 7.0.2 (consumer hawaii)
  - Add 9.0.1 (gfx900 with xnack)
  - Add 9.0.2
  - Add 9.0.3

Change-Id: I6a07797027c4eaf47038837c5ae51e05b2aba0e4


[ROCm/ROCR-Runtime commit: d98e99949a]
2017-06-12 14:34:11 -04:00
hthangir f5c06c5911 The fallback path covers not just ARM64, need this for Power as well.
Change-Id: I7bbf76f77bd3ac47a0a0987c1e880e23834588e2


[ROCm/ROCR-Runtime commit: a0957bc679]
2017-06-07 14:45:29 -05:00
Jay Cornwall dfbad5fa07 Enable SDMA on gfx9, disable on gfx8
gfx9 has passed qualification. gfx8 stability is under investigation.

Change-Id: Ia72211d47756399ecdfceafeb67c2ab34ebda834


[ROCm/ROCR-Runtime commit: 5db53ceda1]
2017-06-02 15:14:14 -05:00
Sean Keely 42bb22d0cc Add preferred agent info to pointer info struct.
Lookup blit agent via pointer info in memory_fill.

Change-Id: I02feaf68bb9726858e8cb0ede6bc5f2b3707f5af


[ROCm/ROCR-Runtime commit: c3e2a88ade]
2017-05-31 05:16:05 -04:00
Sean Keely 754935ee65 Unmap GPUs when allow_access removes them from system pools.
Change-Id: Ib9eb88622fded43ebd9eddbf78ad6771a5b91e77


[ROCm/ROCR-Runtime commit: e38ff18990]
2017-05-17 20:58:05 -04:00
hthangir ef38e563ba On GFX9+ amd_queue_t.scratch_backing_memory_location must store the queue's scratch backing store VA, not the offset.
Also fix permission in couple files.

Change-Id: I4203f8e5a36406b20562d8943ea5c341847f039a


[ROCm/ROCR-Runtime commit: 8aa19388a9]
2017-04-18 22:37:56 -05:00
Jay Cornwall 2c71b68fdb Fix gfx9 trap handler to retrieve correct return address
The trap protocol changed between gfx8 and gfx9. The return address
is in trap temporaries [0,1] on gfx9 rather than [4,5] on gfx8.
Unfortunately SP3 changes the meaning of the ttmp register aliases
in gfx9, further confusing the issue.

Clean up later when LLVM assembly build is introduced to the runtime.

Change-Id: I84ea9bf3736f060dd95d0361f9d5a0f9a3576178


[ROCm/ROCR-Runtime commit: f0a1c7c4c6]
2017-04-05 17:33:49 -05:00
Sean Keely 9734bc078a Remove comments, no functional change.
Change-Id: I923c037803a847352c2c50d9d47460cb0f01f22c


[ROCm/ROCR-Runtime commit: 8a5ff78be6]
2017-03-28 18:22:49 -05:00
Sean Keely 941c065513 Support async. queue errors and dynamic scratch without KFD events.
Change-Id: I4e9e7a37aa7b9c96b28ce79f562760283e02b1e0


[ROCm/ROCR-Runtime commit: 7dfeee5074]
2017-03-28 19:18:18 -04:00
Sean Keely 5288e46340 Refactor signal_wait timing code and respect small timeouts.
Optimized for Gromacs and SHOC.

Change-Id: Ib674710268b41003259711a0e42d3e770a82018d


[ROCm/ROCR-Runtime commit: c4544906b9]
2017-03-23 23:55:48 -05:00
hthangir 4d121c2b97 We should be using the "used" gcc attribute.
Change-Id: I1589273740ae66e8d7d8186a88e2c411a2e0425c
See: https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html#Common-Variable-Attributes


[ROCm/ROCR-Runtime commit: ba3f1cb476]
2017-03-20 11:57:39 -04:00