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

56 Коммитов

Автор SHA1 Сообщение Дата
Laurent Morichetti 5d4b6f74d3 Use std::atomic
Replace amd::Atomic with std::atomic. Remove make_atomic uses by
converting the variable to std::atomic and making sure the memory
order is relaxed when synchronizes-with is not needed.

Delete utils/atomic.hpp.

Change-Id: I0b36db8d604a8510ac6e36b32885fd16a1b8ccfa
2020-09-09 14:55:29 -04:00
Jason Tang 8b4eb43a4a Call callback even if clBuildProgram is not successful
Change-Id: I3be1d500ecc712c738cfaf252eca83663cad6b77
2020-09-08 14:41:20 -04:00
Laurent Morichetti 080dcfe857 Improve queueLock and lastCmdLock
Reduce the size of the queueLock and lastCmdLock critical sections
to improve lock contention performance. The smaller the critical
sections are the better.

lasCmdLock is still needed to guarantee that getLastEnqueueCommand_
can retain the command before it is swapped out and released.

Change-Id: Id35d4a77c035b2da0de4c15568b153d49e958bb7
2020-09-01 18:09:31 -04:00
Laurent Morichetti c95c613edc Fix indentation with clang-format
Change-Id: I7aeadef3c613d5efc31a98e666bfb819ae34bdf5
2020-09-01 18:09:19 -04:00
Saleel Kudchadker 1c24072d13 Revert "SWDEV-241977 [ROCm QA] Random Soft hang observed while running TF and Caffe2 benchmarks"
This reverts commit ce038f3163.

Change-Id: Ib56493c92eca793f1dfb6f1cbefb32f0b4f65e89
2020-09-01 18:09:10 -04:00
Tao Sang e986f5c820 Replace private libelf with elfio
Change-Id: I4c630d78f7bf23dda85ec8480bb2790864405657
2020-08-26 12:32:13 -04:00
Saleel Kudchadker ec73340348 Add Queue profling param and toggle for HIP
Use signal timestamps if NDRange command takes forceProfile flag.

Change-Id: Ib7f187d781fd78a7346818afb3344a9378f4c104
2020-08-06 03:09:53 -04:00
Jason Tang 8ef5da00c7 SWDEV-246687 - Do not use std::vector reference as class member cuMask_
The current implementation creates default reference in the stack and assigns it to class member cuMasks_, so whenever the content of the stack changes, cuMask_ would change.

Change-Id: Iefab63c335d504b83c4ae90bd34ae76c6afb8f3c
2020-08-05 16:57:36 -04:00
Tao Sang fdef6f722f Apply constexpr on global constant varaibles
When HIP_ENABLE_DEFERRED_LOADING=0, many global variables will be
referenced but they are not initialized in that early time. The patch
will use constexpr to initialze global constant varables in compile
time.

Change-Id: I9d538b7abc6a0ce700ec3332b97fc144db5fc1ef
2020-07-22 22:14:13 -04:00
Alex Xie ce038f3163 SWDEV-241977 [ROCm QA] Random Soft hang observed while running TF and Caffe2 benchmarks
Change-Id: I42016c11db15411b86e7b8130d6ba557bc22dbb7
2020-07-22 02:03:48 -04:00
Jatin Chaudhary 48690f29e9 Adding AnyOrder Flag
Change-Id: I6baaef42b98adfbc8cf2605e175ec007e008045f
2020-07-22 00:25:04 -04:00
Matt Arsenault 5577eabcea Fix -Wmissing-braces
Change-Id: I2394b6923c789f36e72242f4b196844cc0ee90ba
2020-07-15 16:51:03 -04:00
German Andryeyev af1c4a5794 Disable sysmem alloc for SVM memory
Device backend is responsible for memory allocation, including
possible HMM support.

Change-Id: I0e4e5ae3b9551790f4f85f0791cca63196cc896e
2020-07-15 12:04:23 -04:00
Christophe Paquot 3d15a1e291 Make append and setLastQueuedCommand atomic
Two threads can enqueue to the same HostQueue (HostQueue::enqueue)
and result in last queued command being the first one reachine queue_.enqueue

NOTE: Temporarly make setLastQueuedCommand empty function to pass the build

Change-Id: Id09c3a28d184986f52b2ec86a2f6a18c40df1f0b
2020-07-14 18:22:45 -04:00
kjayapra-amd e993bf9f47 SWDEV-243423 - Avoid repeated metadata processing if the unbundled binary_ptr is same.
Change-Id: I71e008021b728dec61187d9ff29483ad8c4cad5c
2020-07-10 10:35:16 -04:00
kjayapra-amd 16e6b65b5c SWDEV-240165 - Move all amd::MemObjMap_ reference to ROCclr and only allow base ptr to get ipc handle.
Change-Id: I9de10a0c4ba4dee3b3c8b972966840ab807001d8
2020-07-09 21:19:45 -04:00
Tao Sang f7bf882981 Fix static lib crash by setting top init_priority
Set top init_priority on affecting global variables so that
they will be created firstly and destroyed lastly.

Change-Id: Ied59fbecab66ba8195c4a7a02b6bef9fa2fad3af
2020-07-06 16:54:10 -04:00
German Andryeyev 059832b526 Return always true for P2P validation under ROCr
Change-Id: Id32a5a94a642e708d1d042c5247af38501bec153
2020-07-04 11:38:04 -04:00
German Andryeyev c18892a590 Remove extra barriers
Don't flush current batch if the dependent wait is a nop

Change-Id: I8a8722b9011fe042c1a4ce195938290fc75e7c86
2020-06-22 12:41:02 -04:00
Tao Sang 53264a8a4a Support numa policy set by user
Add CL_MEM_FOLLOW_USER_NUMA_POLICY

Change-Id: I90a19dac7641827dff2ceb9ef8ae5f3467ed87a1
2020-06-19 18:16:47 -04:00
German Andryeyev 01c2727a3a Disable P2P emulation for HIP
Some apps use P2P transfer without any validation for peer access.
Report an error if runtime has found such a request.

Change-Id: I3bf728f1fc3969697ade97bb1d2f1dce294078e2
2020-06-16 11:21:54 -04:00
Vlad Sytchenko b835120dfa Fix typo from previous change
Change-Id: Ib8f3418a3460d86d75fc5529ed6270a164e9b10e
2020-06-16 11:12:33 -04:00
Vlad Sytchenko 5b9af8f28d Fix some -Wunused-but-set-variable warnings
Change-Id: I281583b5abdfc09d5dd8b7dfb20b8821581db193
2020-06-15 17:51:01 -04:00
Vlad Sytchenko e50a9eec9d Fix -Wsequence-point warning
Change-Id: Ib6322e06f83887da4a29f8eafb99b743211e851d
2020-06-15 17:40:11 -04:00
Tao Sang db10d42e50 Make hipHostMalloc() respect hipSetDevice()
Change-Id: Ibdb666fe8dd049735df2288878501a66f7eedc28
2020-06-12 18:32:10 -04:00
German Andryeyev e4177b75bc Add missing return
Change-Id: Ibe9c1ccb377ce14ad69a0e9828ea70b707acba34
2020-06-12 17:35:45 -04:00
German Andryeyev c5afd5d412 Initial HMM support
- Expose ROCclr interfaces for HIP usage
- ROCr interfaces aren't available in staging, thus control the
build with AMD_HMM_SUPPORT define

Change-Id: Iadc2bcc230e78d3b0dc22b235189c8cc80843446
2020-06-12 09:06:07 -04:00
Aryan Salmanpour b5552aa97f Add support for setting queue priority for ROCm backend
Change-Id: I67ed5a6868af79538f7f4522d8d11c043cdf3c1e
2020-06-04 20:16:32 -04:00
German Andryeyev 44bc0cb35d Revert "Avoid lock for last queued command"
This reverts commit dc4e09a63a.

Reason for revert: <INSERT REASONING HERE>

Change-Id: Ie10442c9447f010bb90c679b6cffca5b48b8d054
2020-06-04 18:08:17 -04:00
kjayapra-amd e9bd41bf1a SWDEV-234295 - Dont clear device programs during amd::program::build()
Change-Id: I87bc7e2c830edee783ee490bbb087492467f2704
2020-06-03 12:18:25 -04:00
German Andryeyev dc4e09a63a Avoid lock for last queued command
Use atomics for last queued command update

Change-Id: I759e9d78ea72f23c0d45dbede6250b231e122276
2020-05-29 11:06:55 -04:00
Christophe Paquot 0782acabb5 Use a dedicated lock for last queued command set/get
Change-Id: If3d2144841c7863cf7afe2ca85aea62e0a3a33c7
2020-05-28 12:49:39 -07:00
Evgeny 4ffe859cee fixing a typo
Change-Id: I2fc113e1f52ae9356636ddd4597c36c822bed49b
2020-05-26 14:49:27 -04:00
Aryan Salmanpour fed94b8604 Add support for setting CU mask on ROCclr for ROCm backend
Change-Id: I0dbe2eeb33467fc0f24b26929119c10e9b455da7
2020-05-15 14:23:43 -04:00
Vlad Sytchenko 6e985845b3 Take into account dynamic LDS size when validating the launch parameters.
Bottom layers don't error check this value, so we might and up writing a bad value to a register and cause the SPI to hang.

Change-Id: I6da4ae71c66a25c63ebb804da4afe4ca7fb831b7
2020-05-08 09:37:06 -04:00
Michael LIAO 12fcfee41d Fix build failure.
- Also fix `-Wreorder` warning. NFC.

Change-Id: I766fdc622c9107f901a55498bdc8fef3d821d1b7
2020-05-07 10:39:10 -04:00
Michael LIAO 503ef06555 Clear executable permission.
Change-Id: Ia0d363b1ba89d7947e5b5a55cb67edba86f0515e
2020-05-07 10:38:58 -04:00
kjayapra-amd 347e36e31b SWDEV-232464 - Memory Map modules loaded via file from hipModuleLoad
Change-Id: I0e644a161c8000abe1b07fbec72de09f1c0a4b18
2020-05-04 12:40:16 -04:00
Alex Xie 6c5a42b33c SWDEV-232894 Port hipMemcpy optimizations from HCC to VDI
Apply the optimization to change for OpenCL too.
Clean up some unnecessary checks.

Change-Id: I840261fe35baeeadeba7388e86779d482f509aad
2020-04-30 11:06:28 -04:00
Laurent Morichetti 9e1964ddaa Make the device binary copy optional
Device binaries that are embedded inside the host binary do not
require a copy. Their lifetime is guaranteed to exceed that of the
loaded executable.

Add a 'make_copy' parameter to amd::Program::addDeviceProgram. If
make_copy is false the original image will be used and will not
get freed when the amd::Program is destroyed.

Change-Id: I7973bb0243f5a2d1b639b8a88445cfe6af919dd7
2020-04-29 18:39:57 -04:00
Alex Xie 009d0b5f55 SWDEV-232894 Port hipMemcpy optimizations from HCC to VDI
Change-Id: I6bebe9ac503a9f80d067aeea8a848409ad210338
2020-04-27 14:53:58 -04:00
kjayapra-amd 7458bf9964 SWDEV-229840 - Improve error messages on ROCCLR Layer.
Change-Id: Iab7d9156cdc206db86385aa05023a0095ed40f92
2020-04-19 20:01:49 -04:00
Saleel Kudchadker b4d852de7f Fix env var name for CL_AGENT
This got incorrectly renamed to VDI_AGENT
Change-Id: Ifd7f7c89c0a4e4bfc29e0bceae2c22bf6ba01379
2020-04-08 14:07:11 -04:00
Saleel Kudchadker a97f206ab1 Change for OpenCL2.2 header promotion
Change-Id: Icd579e5c94af6e8d984a3f6c2606be44dec72e91
2020-04-01 16:32:03 -04:00
German Andryeyev 9f795d750d SWDEV-224639 - Device memory is still occupied
- Add cache free on OCL context destroy
- Remove std::mem_fun() usage, since it was removed in c++17

Change-Id: If6acd08f13a2298912ecd78fc025dcf0b32aee54
2020-03-30 17:39:21 -04:00
German Andryeyev 85c09043f3 SWDEV-79445 - Remove cl_amd_object_metadata extension
Change-Id: I35502d5e3bd4be4a087f4b49b68098f8aa31fdb4
2020-03-24 19:12:52 -04:00
Payam 1b6f21ad9a removing AMD emails per palamida scan
Change-Id: If7307f5b1f81a43f2725ec5abd3b8989cbddbcc5
2020-03-11 21:26:55 -04:00
German Andryeyev 288967eff4 SWDEV-193956 - Fix a regression in OCL for user events
- Check the queue for nullptr, since the user events may not have
a queue, associated with them

Change-Id: Ib969a052acc9108ca3fd0c063157fe4d47c5b244
2020-03-09 11:10:23 -04:00
German Andryeyev 0fc433e076 SWDEV-193956 - [hipclang-vdi-rocm][perf]
~45% to 50% of Performance drop on rocBLAS_int8 test

Add support for active waits without blocking the host thread.

Change-Id: Ie7bb48dcafcb4c93d448bf74749b829b626c3578
2020-03-04 17:02:15 -05:00
German Andryeyev 77ff161324 SWDEV-193956 - [hipclang-vdi-rocm][perf]
Retain command before a wait.

Change-Id: I0ab8f1352af32c96567dad9e31b3687bdf407bf6
2020-02-21 16:43:21 -05:00