Commit Graph

80 Commits

Author SHA1 Message Date
Evgeny c148adf362 HIP-PROF: fixing pointers tracing
Change-Id: Id2c35972e1d134012980c95a3649ddfdf9303494
2020-06-23 14:02:35 -04:00
agodavar 6a47458764 SWDEV-239297:hipMemset fix, getMemoryObject with unaligned ptr
Change-Id: I37b8139c5099d37b42f34d728a3d694fdf9cb55d
2020-06-23 08:56:09 -04:00
German Andryeyev 265d84bab9 Disable flush on marker
Change-Id: I04d0fd995fb4b29a6bc372e1543902a053017d6a
2020-06-22 13:27:39 -04:00
Tao Sang d536a661ac Fix static lib crashing issue
Initialize HIP_ENABLE_DEFERRED_LOADING = 1

Change-Id: I432ccf1926b953c4391fdd086cde7da2380962bb
2020-06-22 13:24:40 -04:00
Tao Sang 71c64e98a0 Support numa policy set by user
Add hipHostMallocNumaUser flag to hipHostMalloc() in order to support
numa policy set by user.

Change-Id: I6d70ed539a5f97f27187f2242b68849c0e27e4d6
2020-06-19 21:23:58 -04:00
Vlad Sytchenko 81b15ed36e Correct texture element size calculations
hipChannelFormatDesc contains size of each channel in bits. There's 8 bits per byte, not 4, so we should divide by 8.

Change-Id: I38ae2d28ad54740823c98908ca2afecad0ba0183
2020-06-19 11:39:03 -04:00
Vlad Sytchenko ba2d3fbbb3 Support creating textures from user ptr with offset
Change-Id: Ied0af9a842fc6ef067e068a9d89dde63ff5dfce1
2020-06-17 14:10:14 -04:00
Vlad Sytchenko 8db45328d9 Fix -Wsign-compare warnings
Change-Id: I874dc007ac657c25a72c6752c1a2da74c028a822
2020-06-17 11:20:45 -04:00
Jason Tang 8933c078f6 Add asicRevision
Change-Id: I59f3ad20b9bdadf77bd1e0725f7a401d7ad423a3
2020-06-16 17:54:20 -04:00
Tao Sang 63ce69224a Make hipHostMalloc() respect hipSetDevice()
Change-Id: I2410240f91b108c24597ee0fa7cf31e7b1f3ac5d
2020-06-15 23:20:09 -04:00
kjayapra-amd 2467e37f3f SWDEV-240589 - Remove guarantee @ __hipRegisterFunction flow for now.
Change-Id: Ic51e2a1f951ac7745c2bbd11cfd2b92521c6966a
2020-06-15 22:32:24 -04:00
Vlad Sytchenko 509a38f50c 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 b182ad9574 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 02c62165b8 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 0b788c4c67 SWDEV-236178 - Store texture reference metadata for dynamically loaded modules.
Change-Id: I99ecc80da7e29c691341a01a09e4532972f1e3e5
2020-06-11 22:34:50 -04:00
kjayapra-amd 840347f0d0 SWDEV-236178 - Reorganizing Platform/Modules code for easy access.
Change-Id: Ie8920260ffc4ff01e44b48af8cec9ea5aed1aa9b
2020-06-11 10:11:20 -04:00
jujiang bb32492438 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 9ff22151d2 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 20ae4d709f 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 fbba37070c Modify HIP_RETURN to print useful details
Change-Id: I23892c2d9a738b0298cdf24106d688a792937c73
2020-06-06 02:05:21 -04:00
kjayapra-amd ee2ff4bc5e SWDEV-239327 - Remove amd_mem_obj during unregistervar
Change-Id: I2130eaa21369b9634a9459680061138c61eaaaa4
2020-06-05 23:24:38 -04:00
kjayapra-amd 1dc24194a3 SWDEV-235295 - Move addDeviceProgram() to lazy loading
Change-Id: I8fe07e370e58844496e18c858bb528393556854f
2020-06-05 18:03:32 -04:00
Jason Tang 14c699e9de SWDEV-227909 - Add gcnArchName
Change-Id: Iea6d16b5d693dd0d900fa424d7a321c39315430e
2020-06-05 15:33:55 -04:00
kjayapra-amd 9261a35be9 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 83b8e1fbac 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 f3ee29cdb2 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 0c0a8fc108 adding hipGetStreamDeviceId() profiling API
Change-Id: I5ccf88ddac123260d7c17defefcf20ff3b2504e2
2020-06-03 18:57:49 -04:00
Jatin 126573df4c Adding changes for hipExtLaunchKernel for rocCLR
Change-Id: Iba52bc3bde7c37f3fb375a55ba0947e87b3cdc9b
2020-06-02 14:16:41 -04:00
Aryan Salmanpour bf11ffd175 Add support for missig hipStreamGetPriority API
Change-Id: I2be4b055e5f977eb6ecad0b1f5f9535e72345fe7
2020-06-01 13:33:14 -04:00
agodavar 3375920638 hipMemset dont enqueue command if size bytes is 0
Change-Id: I63bf896f9f23edf254acdf7a8c11c92f8b5ac039
2020-05-30 10:33:44 -04:00
kjayapra-amd ab17b43d45 SWDEV-229840 - fixing return HIP_RETURN instances in hip.
Change-Id: I48763d7268bf5649bf2242c962c185f5f4af159c
2020-05-29 09:43:58 -04:00
Christophe Paquot dfec136725 Revert "Call notifyCmdQueue when building the event wait list"
This reverts commit 1cfc9d1860.

Reason for revert: better fix in ROCclr

Change-Id: I9707e69adf42a662c08fe9b3ec7458655d838bdd
2020-05-28 17:01:10 -04:00
kjayapra-amd f2899243f3 SWDEV-233927 - Crash if binary for current device is not found.
Change-Id: I57281ae6c09110f39155664fca5a83ea57bb62b4
2020-05-28 16:18:27 -04:00
Joseph Greathouse 766e708535 Fix a build error on signed/unsigned comparison
Change-Id: Ic79eb4c3ec5c6fd36cea7c4810d990619f08b9e1
2020-05-28 14:27:16 -05:00
kjayapra-amd 55cdef8e45 SWDEV-236465 - Return error code as soon as global creation fails.
Change-Id: I790b8b4fdd6ab8818bc5b6b9a79e6900b840372d
2020-05-28 13:28:23 -04:00
Joseph Greathouse 90453b68d3 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 d863edb8ba adding hipKernelNameRefByPtr function
Change-Id: Iefc18967b10394b85a207ffdb5bbfe5e3601474d
2020-05-28 10:59:48 -04:00
Saleel Kudchadker facb05495f 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 1cfc9d1860 Call notifyCmdQueue when building the event wait list
SWDEV-237846

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

Change-Id: Ie916d8f03ce91e8ef05a2b4edc580a7021520f6f
2020-05-26 17:59:22 -04:00
Evgeny ed11059230 hip_prof: fixing printing pointer args
Change-Id: I93969723650f7c29d5c00a3809d3701c6a3dca44
2020-05-25 13:17:16 -04:00
kjayapra-amd 6bc01b31d6 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 ee4688d37e hipIpcCloseMemHandle checks the status of IpcDetach
Change-Id: Ifbe8e5bbda610a1007f881627d0da1c874d03682
2020-05-23 08:47:36 -04:00
Matt Arsenault a98920d9a3 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 51b6c1856c 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 3a30b9eb8d Add support for hipExtStreamCreateWithCUMask API
Change-Id: I369d0eaca493821c4badc6b18ac02daa2fddc95f
2020-05-22 11:34:06 -04:00
Matt Arsenault 1003128925 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 161c14c1de load functions when registered if lazy load is disabled
Change-Id: I08c9684ca4ab86a6294ed9e670f3125c1a0cc6c4
2020-05-21 09:19:20 -04:00
Sarbojit Sarkar 06a0de3567 added null check
Change-Id: I7631965286bad5684bacb7e38c63031b5c691dc0
2020-05-20 23:08:55 -04:00
Saleel Kudchadker fe9aa9356b 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