Commit grafiek

4424 Commits

Auteur SHA1 Bericht Datum
Joseph Greathouse e1123ce997 Fix maxSharedMemoryPerMultiProcessor attribute (#1927)
The maxSharedMemoryPerMultiProcessor attribute is meant to describe
the number of bytes of shared memory (LDS space in AMD terminology)
in each SM (CU in AMD terminology). For instance, on AMD GPUs this
is often 64KB per CU, and some Nvidia GPUs it's 96KB per SM.

This shared memory is a different address space from the normal
global memory. However, the current HIP-HCC properties fill this
in with a size that matches the totalGlboalMem property. This gives
a drastically too-high calculation for the amount of LDS space that
each CU has -- tens of GBs vs. 10s of KBs.

This patch fixes this by pulling the maxSharedMemoryPerMultiProcessor
property from the HSA pool that describes how much workgroup-local
space is available on each CU. The HSA runtime eventually pulls
this from the topology information about LDSSizeInKB, defined as
"Size of Local Data Store in Kilobytes per SIMD".

Previously, this HSA query was used to fill in the value of the
sharedMemPerBlock property. On today's AMD GPUs, we know that
the amount of LDS avaialble to the workgroup is identical to the
amount of LDS space in the CU. However, in the future this may
differ. As such, this patch changes around the order and fills
in the "PerMultiProcessor" property from the HSA query (since
what's what the query is defined to return), and then separately
fills in the "PerBlock" property as we know it.

[ROCm/clr commit: 44b16df84f]
2020-03-17 14:00:51 +05:30
Joseph Greathouse 04ead59f0b Fix errors in occupancy calculation function (#1926)
Fix two errors in hipOccupancyMaxActiveBlocksPerMultiprocessor.
1) Fix a possible segfault if the user passed in a null pointer for
   the numBlocks value.
2) Handle the situation when the user is asking for a block size
   that is larger than what the target device can hold within a
   single block.

[ROCm/clr commit: 6ae1b1a321]
2020-03-17 14:00:38 +05:30
Yaxun (Sam) Liu 586dc598b6 Let hipcc not pass -mllvm option to HIP-Clang on Windows (#1924)
Currently there is a clang bug on Windows causing duplicate -mllvm options in clang -cc1.

Tempoarily disable -mllvm options for HIP-Clang on Windows until the bug is fixed.

Change-Id: I3a4393ba7745989398dc6c6001722837dad18704

[ROCm/clr commit: 6b1956d139]
2020-03-17 14:00:20 +05:30
Maneesh Gupta 91546b6c9f Annotate __constant__ (#1901)
[ROCm/clr commit: e8bd9768d1]
2020-03-17 13:59:44 +05:30
mhbliao b8f9f9598b [hip] Improve the portability of the header for vector type support. (#1873)
- Need to check the availability of `__has_attribute` builtin macro
  instead of compiler versions. That's more reliable and portable among
  various compilers.
- Provides a very basic support of vectors for unknown compilers.

[ROCm/clr commit: fc223dc584]
2020-03-17 13:59:24 +05:30
Evgeny Mankov 5e8ec423f2 Merge pull request #1916 from asalmanp/refactor_cooperative_APIs
[HIP] Refactor cooperative APIs

[ROCm/clr commit: bf385d8641]
2020-03-12 19:12:50 +03:00
Evgeny Mankov c50f579660 Merge pull request #1908 from asalmanp/prop_mulit_coop
[HIP] add hip specific properties for cooperative kernel multi device

[ROCm/clr commit: 21ccb0be01]
2020-03-12 19:12:11 +03:00
Alex Voicu 8acb4eaa33 Merge branch 'master' of https://github.com/ROCm-Developer-Tools/HIP into feature_robust_constant
[ROCm/clr commit: b9544eabe8]
2020-03-12 14:20:26 +00:00
Maneesh Gupta 666f217a6a Expose support for non-returning atomic FADD (#1909)
Change-Id: If5359488324477315a9bd4f308a75f606c065b39

[ROCm/clr commit: af933d0900]
2020-03-11 14:33:15 +05:30
srinivamd 195abb8a18 return hipSuccess when count is zero (#1900)
[ROCm/clr commit: 32960ab8f9]
2020-03-11 14:32:54 +05:30
Evgeny Mankov db38be5a13 Merge pull request #1925 from arghdos/patch-3
Fix incorrect shfl_xor for Windows

[ROCm/clr commit: 925d76ddef]
2020-03-11 00:58:11 +03:00
Aryan Salmanpour cb8cf51d3f [HIP] return an error if blockDim exceeds maxThreadsPerBlock
[ROCm/clr commit: 70ef268add]
2020-03-10 15:26:53 -04:00
Evgeny Mankov c20ccb8ba5 Merge pull request #1922 from emankov/HIP
[HIP][doc] Update README.md

[ROCm/clr commit: e605bce913]
2020-03-10 22:20:00 +03:00
Nick Curtis cf2629a95c Fix incorrect shfl_xor for Windows
copy/paste error, need __shfl_xor w/ lane_mask

[ROCm/clr commit: a9af4755cb]
2020-03-10 12:04:05 -05:00
Evgeny Mankov 2b17cd5189 [HIP][doc] Update README.md
[ROCm/clr commit: 2bb166503f]
2020-03-10 18:04:01 +03:00
Evgeny Mankov ce6b791ddb Merge pull request #1919 from ssahasra/declare-printf
separate printf declaration for vdi/clang

[ROCm/clr commit: 31b1d5e4a4]
2020-03-10 12:26:54 +03:00
Aryan Salmanpour d011efb792 [HIP] fix formatting/code clean up and fix a bug
[ROCm/clr commit: 7009901fe0]
2020-03-09 16:03:59 -04:00
Sameer Sahasrabuddhe 988b489efd separate printf declaration for vdi/clang
There are now two implementations of printf in HIP:

1. The implemenation for HCC is controlled by the HC_FEATURE_PRINTF
   macro, and it works only with the HCC compiler used in combination
   with the HCC runtime.

2. The implementation for hip-clang requires the VDI runtime, and is
   always enabled with that combination.


[ROCm/clr commit: 2c3dfdda41]
2020-03-09 09:40:05 +05:30
Alex Voicu 1d009eaee4 Merge branch 'master' of https://github.com/ROCm-Developer-Tools/HIP into feature_robust_constant
[ROCm/clr commit: 31bdd6ef24]
2020-03-08 18:00:14 +00:00
Aryan Salmanpour 2ca751f70c [HIP] Refactor cooperative APIs
[ROCm/clr commit: 97b24eba45]
2020-03-06 18:30:12 -05:00
Aryan Salmanpour 4146f75d46 move new enums to the end to maintain compatibility
[ROCm/clr commit: ddd0b31d16]
2020-03-06 11:38:44 -05:00
Evgeny Mankov 0d9efef77b Merge pull request #1914 from emankov/hipify-clang
[HIPIFY][doc] Update README.md: LLVM 10.0.0-rc3 is supported

[ROCm/clr commit: cf61ad2830]
2020-03-06 18:20:36 +03:00
Evgeny Mankov 47e249093d [HIPIFY][doc] Update README.md: LLVM 10.0.0-rc3 is supported
+ Add -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON for LLVM 10.0.0 or newer
+ Supported versions update


[ROCm/clr commit: 278eff4c96]
2020-03-06 18:17:05 +03:00
Alex Voicu 10970e9dd9 Merge branch 'master' of https://github.com/ROCm-Developer-Tools/HIP into feature_robust_constant
[ROCm/clr commit: 8d6e4f872c]
2020-03-06 12:33:31 +02:00
Maneesh Gupta 8def98b74e Expose support for non-returning atomic FADD
Change-Id: If5359488324477315a9bd4f308a75f606c065b39


[ROCm/clr commit: 48f5524fdc]
2020-03-05 10:30:52 +05:30
Evgeny Mankov fbf9b7429d Merge pull request #1905 from emankov/hipify-clang
[HIP][cmake] Remove dependency from hipify-clang

[ROCm/clr commit: 3be5375bde]
2020-03-04 07:42:48 +03:00
Aryan Salmanpour a582f9797e [HIP] add hip specific properties for cooperative kernel multi device
[ROCm/clr commit: 7bfb990ef7]
2020-03-03 13:25:36 -05:00
Evgeny Mankov 464af0b28e [HIP][cmake] Remove dependency from hipify-clang
[Reason] Upcoming hipify-clang's splitting out into a new repository https://github.com/ROCm-Developer-Tools/HIPIFY.


[ROCm/clr commit: ff7165a73c]
2020-03-03 12:07:13 +03:00
Alex Voicu 6adaa5dec3 Annotate __constant__
[ROCm/clr commit: 3441cd7f16]
2020-02-28 22:54:00 +02:00
Jatin Chaudhary ee8cee7d35 [dtests] __shfl_up and __shfl_down tests (#1899)
[ROCm/clr commit: dacc90f415]
2020-02-28 16:48:15 +05:30
Siu Chi Chan e1b10796da improve code object loading error message (#1889)
[ROCm/clr commit: eebba4799c]
2020-02-28 16:47:40 +05:30
saleelk 21712e6fb8 Fix HIPRTC headers to export C style symbols (#1879)
[ROCm/clr commit: 40a28e767e]
2020-02-28 16:47:29 +05:30
Rahul Garg 7395bf9ba9 Remove deprecated HIP markers (#1876)
[ROCm/clr commit: 6be7537cf9]
2020-02-28 16:47:15 +05:30
Rahul Garg ff421fb2d2 Add hipDrvOccupancyMaxActiveBlocksPerMultiprocessor[WithFlags] (#1854)
Equivalent to cuOccupancyMaxActiveBlocksPerMultiprocessor[WithFlags].

[ROCm/clr commit: 1c794045e0]
2020-02-28 16:46:55 +05:30
jiabaxie 43818d733a Cleaned up error messages for HipEnvVarDriver test (#1825)
There were several error messages that appeared even if the hipEnvVarDriver.exe test passes and executes successfully. Now it is cleaned up. The following are those instances:

* When popen searches for directed_test directory but does not find it, it outputs an error, then finds the hipEnvVar at the same level. Currently the fix will prompt the test to only output an error if both searches for hipEnvVar fails.
* When assertion is used towards the later half of the test, conditions were set to specifically hide the devices, resulting in No Hip Device detected in the latter half of the test. The fix will make these errors not appear as they are intended to not find any devices. Assertions themselves are untouched.

HipEnvVarDriver.cpp has also been refactored. Reading HipEnvVar will now happen in a helper function for getDeviceNumber and getDevicePCIBusNumRemote, as the code to read HipEnvVar were really similar in them.


[ROCm/clr commit: e747efe2b4]
2020-02-28 16:46:12 +05:30
Alex Voicu 6a37ef97c4 Address post-staging issues in #1809 (#1894)
Fixes SWDEV-223910 and SWDEV-223663

[ROCm/clr commit: cea5489f00]
2020-02-27 16:21:12 +05:30
Maneesh Gupta d805279060 bump version to 3.2 (#1898)
- Bump version to 3.2
- [ci] Enable tests on ROCm 3.1

[ROCm/clr commit: 3b4b58bda6]
2020-02-27 16:18:31 +05:30
Nick Curtis e5d029b8a4 fix long shuffle implementations for windows (#1895)
Fixes for SWDEV-223694

[ROCm/clr commit: a094c87038]
2020-02-26 15:53:56 +05:30
Yaxun (Sam) Liu d79e247a70 Fix hipcc for extra -mllvm option (#1885)
[ROCm/clr commit: ff4479fcc7]
2020-02-26 15:53:43 +05:30
Sarbojit2019 51087a9a46 [HIPIFY] Add back missing execute permission to hipify-perl (#1881)
hipify-perl script lost its executable permission hence "samples/0_Intro/square" was failing. Fixes SWDEV 223433.

[ROCm/clr commit: d81a9a712a]
2020-02-19 13:48:20 +05:30
eshcherb 5c9e5225d4 adding hipExtModuleLaunchKernel to tracing layer (#1880)
[ROCm/clr commit: 82478dca65]
2020-02-19 13:47:49 +05:30
Alex Voicu 3057a52be5 Tweak synchronous memcpy implementation (#1809)
The existing one can have issues on certain systems, therefore this limits use of direct memcpy via largeBAR to sizes where it is unequivocally better.

Also addresses SWDEV-220030 and SWDEV-222237.

[ROCm/clr commit: 730f23829e]
2020-02-18 20:50:27 +05:30
Yaxun (Sam) Liu 5748b7550b Let HIP-Clang inline all functions by default (#1875)
This is a quick workaround to match HCC behavior for performance since inlining usually
results in more optimization opportunities therefore better performance.

We will fine tuning inline threashold later.

[ROCm/clr commit: f4120043ed]
2020-02-17 22:49:26 +05:30
Rahul Garg 6f1d14c96d Fix hipMemcpy3D (#1798)
Fixes #1790 and #1791. hipMemcpy3D still requires further refactoring for different input and output combinations.

[ROCm/clr commit: ec84c16d75]
2020-02-17 19:35:35 +05:30
Maneesh Gupta 734b90c592 [dtests] Fix random timeout failures in hipModuleLoadDataMultThreaded (#1877)
Limit the max threads that are launched to 16.

[ROCm/clr commit: 2ec55fde47]
2020-02-17 11:16:20 +05:30
vsytch fd7dfa19d1 Add missing __hip_pinned_shadow__ attributes to the texture global vars. (#1866)
[ROCm/clr commit: 5afe43b1aa]
2020-02-15 09:52:25 +05:30
Maneesh Gupta 2b1a99ff12 Use deque instead of vector for code readers so that the iterators and references will be stable (#1851)
* Use deque instead of vector for code readers so that the iterators and references will be stable

* Fix compile error

* Assign the iterator

* Add multithreaded test

* Make threads a multiple of hardware concurrency

* Output on failure

* Add setDevice to try and initialize the context on cuda

* Create context for cuda

* Set context on each thread

* Reduce threads on cuda

* Skip test on cuda

* Try to initialize the primary context on cuda

* Push ctx to the stack as current

* Revert "Push ctx to the stack as current"

This reverts commit c1b707ff63.

* Revert "Try to initialize the primary context on cuda"

This reverts commit d9cbd5a143.

* updated test for nvidia path

* Add c++11 option for nvcc

Co-authored-by: satyanveshd <53337087+satyanveshd@users.noreply.github.com>


[ROCm/clr commit: e085417370]
2020-02-15 09:51:24 +05:30
Nick Curtis e9ee5a3719 Implement long / long long shuffles (#1829)
Implement additional data-types for shuffles (long and long long).
Based upon the double implementation.


[ROCm/clr commit: 5b0f34c59b]
2020-02-15 09:51:09 +05:30
Siu Chi Chan c74c8d7a1c Disabling HCC code object v3 generation by default.
Some PyTorch unit tests have regression.  Disabling cov3 to allow more
time to debug and unblock PyTorch

Change-Id: Iba7f425ef3499c20c42ec45d9152b5d27ce97d03


[ROCm/clr commit: 13052f27c2]
2020-02-14 19:39:27 -05:00
Evgeny Mankov 0fee0571d8 Merge pull request #1870 from emankov/HIP
[HIPIFY][doc] Update README.md: LLVM 10.0.0-rc2 - the latest supported LLVM Release

[ROCm/clr commit: eae0bddbca]
2020-02-14 13:25:43 +03:00