Wykres commitów

49 Commity

Autor SHA1 Wiadomość Data
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
Christophe Paquot 538f18f06c Merge "HPC : Intermittent hangs are observed while running Gromacs benchmarks" into amd-master-next 2020-05-12 11:21:47 -04:00
Karthik Jayaprakash 54d264c418 Merge "SWDEV-227602 - Fixing hipFuncGetAttribute parameters" into amd-master-next 2020-05-12 10:52:25 -04:00
Matt Arsenault 024764c337 Use find_package to find ROCclr
Maintain compatability with the old finding for now for the
convenience of commit order.

Change-Id: I99b236cbb3d61b00650e3da7fe5931d4c4b3fec6
2020-05-12 09:28:19 -04:00
kjayapra-amd 78e27488be SWDEV-227602 - Fixing hipFuncGetAttribute parameters
Change-Id: I46bd079372f453cabfaa2c709e2b30c69400dd33
2020-05-12 09:15:43 -04:00
Matt Arsenault ab285297e9 Use project relative include dir for generated header paths
Change-Id: I8c0834d68e6dac00b41a7059a978cbd2ebb933f9
2020-05-11 21:57:25 -04:00
Christophe Paquot 6b361bc1a0 HPC : Intermittent hangs are observed while running Gromacs benchmarks
SWDEV-235579
Move the lock before destroying the queue as there's a multithreaded race condition if the queue
is being destroy and right after we set queue_ to nullptr, another thread can call ihipWaitStreams
which will then call create on that same stream because queue is now nullptr.
Moving the lock on streamSet prevents this from happening because we would remove the stream from that
list and therefore ihipWait will not try to call asHostQueue which tries to create the queue if not created yet
since the stream won't be in the list anymore

Change-Id: I3108657ab403d39d4123e83294fcf1f0880e5563
2020-05-11 16:35:13 -07:00
Payam a477612a22 updating hipDeviceProps_t-< arch flags according to SWDEV-234277
Change-Id: I6238edf9a2df15a5dfe420dbb8723e10a0725f98
2020-05-11 16:43:13 -04:00
Matt Arsenault 16dbce3776 Start cleaning up rocclr include paths
Use target_include_directories instead of global includes.

Change-Id: I3adadc905843f152a548c71b2f12701476065207
2020-05-11 15:24:19 -04:00
Vlad Sytchenko fec51e85b0 Correct HIP_FUNC_ATTRIBUTE_NUM_REGS query
Change-Id: I526cc7871c690260df0fa8c1b3b4b15fbc5af219
2020-05-09 12:42:30 -04:00
Christophe Paquot 507f6bb0c3 Merge "Don't add a null command to waitList in hipMemcpy" into amd-master-next 2020-05-08 17:01:38 -04:00
Christophe Paquot 3ca2d1e6a9 Don't add a null command to waitList in hipMemcpy
SWDEV-235345

Change-Id: Ib1abd0ba6414d081891a9f5209df083c45734aee
2020-05-08 12:43:41 -07:00
Vlad Sytchenko 1b1c032e9f Correct HIP_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK query
We should be returning the max workgroup size calculated by the compiler.

Change-Id: If86590efbb9b291f470bdbe87e5df992e661c539
2020-05-08 14:36:47 -04:00
Vlad Sytchenko a373538d72 Fix confusion in hipFuncGetAttribute()
Cuda shared == OpenCL local

Cuda local == OpenCL private

Change-Id: I5a204945ecde35919b9e9def20bbb2662fffea2b
2020-05-08 14:36:36 -04:00
Matt Arsenault 6262ce482f Don't add llvm includes to rocclr build
There are no llvm includes here.

Change-Id: I0567c6e47e717580819f3854782ba08501bd069d
2020-05-08 12:24:49 -04:00
Sarbojit Sarkar 3612851809 Enabling hipGetDeviceFlags required in [SWDEV-229170]
Change-Id: I998d37e5847f9651345554bada86df6fce86d1eb
2020-05-08 01:37:23 -04:00
Aaron Enye Shi 1c1be71b63 Fix missed VDI names in hip-on-rocclr
Change-Id: I830feb37a043656136648e92a0c6f1eaae8402d7
2020-05-07 08:37:28 -04:00
Christophe Paquot 78df96024d Merge "SWDEV-232464 - Need to initialize image with ptr passed since they can pass image not of type __ClangOffloadBundler." into amd-master-next 2020-05-06 16:42:50 -04:00
kjayapra-amd 5e91bee221 SWDEV-232464 - Need to initialize image with ptr passed since they can pass image not of type __ClangOffloadBundler.
Change-Id: I2c50042220a0230bc445ed21728f114a229c53e1
2020-05-06 14:25:43 -04:00
Christophe Paquot f0b49d0560 Skip iHipWaitActiveStreams if stream is NonBlocking
SWDEV-234484

Change-Id: I279bdc8485d8218e0aaa89d094c08a84f002a608
2020-05-06 10:36:53 -07:00
Aakash Sudhanwa 6f86a74018 rocclr/CMakeLists.txt: Fixing unresolved merge conflict
Change-Id: I09b9a955b0f1ece8d278112a22bc8aef31b57258
Signed-off-by: Aakash Sudhanwa <Aakash.Sudhanwa@amd.com>
2020-05-06 07:24:25 -07:00
Payam c5f76c3de3 name change vdi to rocclr
Change-Id: I06d198bbb4a499e153b290b73a92afed3553b252
2020-05-06 09:14:30 -04:00