Revīziju grafs

71 Revīzijas

Autors SHA1 Ziņojums Datums
Tao Sang 7682ec6a7b Make hipHostMalloc() respect hipSetDevice()
Change-Id: I2410240f91b108c24597ee0fa7cf31e7b1f3ac5d
2020-06-15 23:20:09 -04:00
kjayapra-amd 45e0847319 SWDEV-240589 - Remove guarantee @ __hipRegisterFunction flow for now.
Change-Id: Ic51e2a1f951ac7745c2bbd11cfd2b92521c6966a
2020-06-15 22:32:24 -04:00
Vlad Sytchenko f3480e019e Enable the use of some warnings when building HIP-ROCclr
Similar to http://gerrit-git.amd.com/c/compute/ec/vdi/+/375385, except no -Wno-strict-aliasing.

With this change only two warnings show up during the build - -Wsign-compare and -Wmisleading-indentation.

Change-Id: Iffa436c65ab6312aeaa6def71ee6af38ed1b4a4e
2020-06-15 20:33:30 -04:00
German Andryeyev f4211c3905 Initial support for HIP managed memory
- Call the new ROCclr interfaces for HMM

Change-Id: I2cd1bf438f712a9e9e328340e7d0c025257ca6c1
2020-06-15 18:10:41 -04:00
Aryan Salmanpour 17102ff3a1 expose five missing memcpy hip APIs
exposing the following hip APIs which have been previously implemented:

hipMemcpy2DFromArray
hipMemcpy2DFromArrayAsync
hipMemcpyAtoH
hipMemcpyHtoA
hipMemcpyParam2DAsync

Change-Id: I3f8635bd4265d2bf5aa2084f4eabb51f74fb18ba
2020-06-15 12:30:31 -04:00
kjayapra-amd 173bb2af6e SWDEV-236178 - Store texture reference metadata for dynamically loaded modules.
Change-Id: I99ecc80da7e29c691341a01a09e4532972f1e3e5
2020-06-11 22:34:50 -04:00
kjayapra-amd 20f05c4228 SWDEV-236178 - Reorganizing Platform/Modules code for easy access.
Change-Id: Ie8920260ffc4ff01e44b48af8cec9ea5aed1aa9b
2020-06-11 10:11:20 -04:00
jujiang c54590ebbd Fix for SWDEV-239415 to handle hipGetDevice properly while no GPU present
Change-Id: I252cbbf9a89fc76fe1be1fbb8f45778e96c70fb2
2020-06-10 14:18:56 -04:00
kjayapra-amd 2f8e180f01 SWDEV-231701 - Remove amd::memory->svm_ptr from MemObj, instead of the ptr to the object.
Change-Id: I5aab450a2320cfa5417c284e2a8454102df6f99d
2020-06-10 11:49:02 -04:00
Christophe Paquot c8f9afa9da Do not deferred stream creation now that we multiplex HW queues
SWDEV-239856

Change-Id: I156650faf832f86891f00ee167269509edd844ec
2020-06-09 19:16:25 -04:00
Saleel Kudchadker 2e8c1e9f24 Modify HIP_RETURN to print useful details
Change-Id: I23892c2d9a738b0298cdf24106d688a792937c73
2020-06-06 02:05:21 -04:00
kjayapra-amd 421bc7dfcb SWDEV-239327 - Remove amd_mem_obj during unregistervar
Change-Id: I2130eaa21369b9634a9459680061138c61eaaaa4
2020-06-05 23:24:38 -04:00
kjayapra-amd 348066d21f SWDEV-235295 - Move addDeviceProgram() to lazy loading
Change-Id: I8fe07e370e58844496e18c858bb528393556854f
2020-06-05 18:03:32 -04:00
Jason Tang 1c0d737e1f SWDEV-227909 - Add gcnArchName
Change-Id: Iea6d16b5d693dd0d900fa424d7a321c39315430e
2020-06-05 15:33:55 -04:00
kjayapra-amd 8941d19fe8 SWDEV-234295 - Pass flag to ROCclr to not clear device programs during program::build()
Change-Id: I50b9fa1a96da6895f73fdf4a7c0d3f096b1188da
2020-06-05 09:53:11 -04:00
Aryan Salmanpour 1bb86658cc Add support for setting hip stream priority
this change follows CUDA convention where lower number is greater priority

Change-Id: I72596a36449e818cbd8c175bf8519c51f46b1610
2020-06-04 22:50:30 -04:00
Payam a524f13c97 Observed softhang while running hipStreamAddCallbackCatch SWDEV-236746
Workaround hipStream deadlock issue as the same lock was used twice SWDEV-236746

Change-Id: Icc60104ce6edf4cfd2a3a889bab78a6caadd50b7
2020-06-04 14:11:22 -04:00
Evgeny cad3f805c0 adding hipGetStreamDeviceId() profiling API
Change-Id: I5ccf88ddac123260d7c17defefcf20ff3b2504e2
2020-06-03 18:57:49 -04:00
Jatin 2d517fdcc6 Adding changes for hipExtLaunchKernel for rocCLR
Change-Id: Iba52bc3bde7c37f3fb375a55ba0947e87b3cdc9b
2020-06-02 14:16:41 -04:00
Aryan Salmanpour 4a1536701f Add support for missig hipStreamGetPriority API
Change-Id: I2be4b055e5f977eb6ecad0b1f5f9535e72345fe7
2020-06-01 13:33:14 -04:00
agodavar 39ee03f64c hipMemset dont enqueue command if size bytes is 0
Change-Id: I63bf896f9f23edf254acdf7a8c11c92f8b5ac039
2020-05-30 10:33:44 -04:00
kjayapra-amd aae3e13296 SWDEV-229840 - fixing return HIP_RETURN instances in hip.
Change-Id: I48763d7268bf5649bf2242c962c185f5f4af159c
2020-05-29 09:43:58 -04:00
Christophe Paquot 7e57136aba Revert "Call notifyCmdQueue when building the event wait list"
This reverts commit 3ba07f5e3c.

Reason for revert: better fix in ROCclr

Change-Id: I9707e69adf42a662c08fe9b3ec7458655d838bdd
2020-05-28 17:01:10 -04:00
kjayapra-amd 0599855f0d SWDEV-233927 - Crash if binary for current device is not found.
Change-Id: I57281ae6c09110f39155664fca5a83ea57bb62b4
2020-05-28 16:18:27 -04:00
Joseph Greathouse 1f25e4956c Fix a build error on signed/unsigned comparison
Change-Id: Ic79eb4c3ec5c6fd36cea7c4810d990619f08b9e1
2020-05-28 14:27:16 -05:00
kjayapra-amd db972c4f2a SWDEV-236465 - Return error code as soon as global creation fails.
Change-Id: I790b8b4fdd6ab8818bc5b6b9a79e6900b840372d
2020-05-28 13:28:23 -04:00
Joseph Greathouse ebe5054e04 Fix occupancy calculation functions in ROCclr path
The hipOccupancyMaxPotentialBlockSize API is meant to return the
number of threads for the highest-occupancy workgroup, and the number
of those workgroups. It was previously calculating the number of
maximum-sized workgroups that would fit on a single CU. This is
a mixture of the API we wanted (to calculate max potential block size)
and the MaxBlocksPerMultiprocessor function.

This patch fixes it up so that the internal occupancy calculation
function works for two uses: the traditional function that calculates
the maximum blocks per multiprocessor when a user passes in a fixed
block size (used for hipMaxBlocksPerMultiprocessor style functions)
and a function that calculates the size of a block that would lead
to maximum occupancy, and how many blocks of that size would be
needed to fill the whole GPU (for hipOccupancyMaxPotentialBlockSize
style functions).

This also updates the occupancy calculation function to prepare for
gfx10, which does not have SGPR-based occupancy limits.

Change-Id: Ie007b3f9d5ebc4e166b50a3a051498af35650f35
2020-05-28 10:22:10 -05:00
Evgeny ef7ff69ff0 adding hipKernelNameRefByPtr function
Change-Id: Iefc18967b10394b85a207ffdb5bbfe5e3601474d
2020-05-28 10:59:48 -04:00
Saleel Kudchadker fb2d7bcd2b Fix elapsed time calculation for null stream
SWDEV-237377 - This fixes time calculation where the event may
be recorded on Null stream and work submitted on other streams

Change-Id: Ie36310dea5cee2fed4a514ed01f04db4b47e571c
2020-05-27 18:42:07 -04:00
Christophe Paquot 3ba07f5e3c Call notifyCmdQueue when building the event wait list
SWDEV-237846

Change-Id: I8bf70e7ad19903767a080d8c6e516c83b0dc2545
2020-05-27 12:53:46 -04:00
Christophe Paquot f7ed87b02b hipDeviceSynchronize needs to sync NonBlocking streams as well
SWDEV-237167

Change-Id: Ie916d8f03ce91e8ef05a2b4edc580a7021520f6f
2020-05-26 17:59:22 -04:00
Evgeny f9e086ae8a hip_prof: fixing printing pointer args
Change-Id: I93969723650f7c29d5c00a3809d3701c6a3dca44
2020-05-25 13:17:16 -04:00
kjayapra-amd b44ae437bc SWDEV - 237467 - Return proper hip error codes incase of ROCclr IPC API failures.
Change-Id: I2cc8da543f70bb3d8b82520fa9b2f509d20ce3c0
2020-05-23 10:51:37 -04:00
Dittakavi Satyanvesh c068778062 hipIpcCloseMemHandle checks the status of IpcDetach
Change-Id: Ifbe8e5bbda610a1007f881627d0da1c874d03682
2020-05-23 08:47:36 -04:00
Matt Arsenault a2d2709ec1 Remove ROCclr search hacks
find_package should now be the only way to import ROCclr. Also update
the build example comment.

The build scripts used 2 custom variables to manually specify the
build and source directories for where to find VDI. Once renamed to
ROCclr, these conflicted with the variables automatically set by
find_package(ROCclr). These hacks tried to satisfy this intermediate
step to try satisfying commit ordering problems to get through PSDB.

The INSTALL.md documentation should also be updated, but it's
completely missing any mention of ROCclr now, and still gives
directions for hcc.

Change-Id: I6fc94b6cb36241a9d4f22d24e49523367f803461
2020-05-22 15:52:35 -04:00
Tao Sang 470b89a6bf Fix square build failure with static lib in Jenkin
When libamdhip64_static.a is built by Jenkin, sample square cannot been
built successfully because libamdhip64_static.a is archiveved in thin
mode. Thus in the patch it will be archiveved in full mode. Meanwhile
libamdhip64_static_temp.a will be useless and thus removed.

Change-Id: Ifd3882598ef0dc5e7af8db0e389e786025ceb455
2020-05-22 11:49:52 -04:00
Aryan Salmanpour 7dd5b19290 Add support for hipExtStreamCreateWithCUMask API
Change-Id: I369d0eaca493821c4badc6b18ac02daa2fddc95f
2020-05-22 11:34:06 -04:00
Matt Arsenault d6aad8ae91 Don't search ROCclr_DIR for prof_protocol.h
This points to the cmake directory where the find module was found,
not a prefix for where it was found.

Based on the search below looking in roctracer, searching in ROCclr
for the header doesn't make much sense. The header should be either
provided by ROCclr xor roctracer. Having it possibly be provided by
two different dependencies is confusing, and a potential source of
version mismatch problems.

Change-Id: Ic2f6ec03f9a7b86225cf7e5c43f39a1360318a34
2020-05-22 09:59:09 -04:00
Laurent Morichetti 22edde84d5 load functions when registered if lazy load is disabled
Change-Id: I08c9684ca4ab86a6294ed9e670f3125c1a0cc6c4
2020-05-21 09:19:20 -04:00
Sarbojit Sarkar 87d1101a33 added null check
Change-Id: I7631965286bad5684bacb7e38c63031b5c691dc0
2020-05-20 23:08:55 -04:00
Saleel Kudchadker 50be95e169 Fix elapsed time calc for hipEventElapsedTime
If the start and stop events have same command internally
then measure command end to command start
Change-Id: Ie70cfa37c06c06573f0ed58dab2bbe4434c1724b
2020-05-20 16:02:48 -04:00
agodavar 458a966aa1 Fix hipMemset for unaligned ptr, correct offset required by ROCclr per aligment and testcase to validate unaligned ptr
Change-Id: Ib1a0f9d1556d09cf72a12a90cad2e27c6d9c6a1c
2020-05-16 02:38:14 -04:00
Matt Arsenault f55e253699 Include interface directories from rocclr target
This is overly painful because this is an object library.

Change-Id: I618843b810549876053212bf24efff18aece9470
2020-05-15 13:17:13 -04:00
Payam a5b4f5f02d load functions when registered if lazy load is disabled
Change-Id: I6f10a72f7643e476407af03b04ef52e59741be45
2020-05-15 12:15:32 -04:00
Evgeny 5abb8e1a68 API tracing instrumentation
Change-Id: I257409b9fe299b009ded3e3a43287322d5f93a70
2020-05-14 11:03:09 -05:00
Payam 56509b0ffd adding support to disable lazy loading, HIP_ENABLE_LAZY_KERNEL_LOADING
Change-Id: Iafe0f396570ee2bccf642b537cbf9aad967e1370
2020-05-13 17:18:48 -04:00
Christophe Paquot a03fee04fe Make sure to remove the global var from amd::MemObjMap
We need this otherwise ROCr can give us a matching address
for another allocation and doing "insert" in ROCclr will not
update the map with the newest object. We would then end up
using stale objects (yikes)
SWDEV-234992

Change-Id: I3475adf9781a9309d64a024fae45181d7e5afb04
2020-05-13 00:26:19 -07:00
Christophe Paquot f100ae3679 Add lock to addFatBinary and removeFatBinary
In case hipModule(Un)Load is called from different thread as hipInit we need to grab the lock
as both are going to modify modules_
Also add some logging for __hipExtractCodeObjectFromFatBinary in case binary isn't found for GPU
SWDEV-236032

Change-Id: Icbd72b412502df80d5066cea42a4fbcd5b0b8a98
2020-05-12 16:04:08 -07:00
Saleel Kudchadker 7f548c5aa9 Merge "SWDEV-235495 Fix elapsed time calculation" into amd-master-next 2020-05-12 15:23:23 -04:00
Saleel Kudchadker 43986c6791 SWDEV-235495 Fix elapsed time calculation
This issue happens because we getLastQueuedCommand when recording
the event and do end_ - start_ so it takes the ticks for the
completion of the last command before event record. This may not
happen if one records a marker command for hipEventRecord

Change-Id: I1d6b06a5befb3b93f16b67692c59dca25c982e0f
2020-05-12 09:38:01 -07:00