Commit Graph

156 Commits

Author SHA1 Message Date
Rahul Garg 188278b38a grid size optimization
Change-Id: I68b197548b961e1c0aa63119eecc8d9a25350cf2
2020-09-10 15:10:55 -04:00
Jatin Chaudhary fef8df6e2e Adding dim3 conversion operator to __hip_builtin_threadIdx_t
Change-Id: Ib7f9e45872ec6d48c0e5b7fc93ccecaafaeac754
2020-08-31 21:30:14 -04:00
Ronak Chauhan affe9ab9b5 Support passing macros to hipLaunchKernelGGL
This makes hipLaunchKernelGGL take a variable argument list, that will be
expanded before being fed to hipLaunchKernelGGLInternal.

This is different from 961717879d.

We try to accomodate the case when a kernel template has multiple
type parameters.

Change-Id: I87577d402c92b0f3b51e298f8293f4065e1f6de8
2020-06-30 10:44:55 -04:00
Daniil Fukalov 63e44d16a3 Add __attribute__((const)) to grid related functions declarations
This is cherrypick of Daniil Fukalov's PR https://github.com/ROCm-Developer-Tools/HIP/pull/2110
which has been committed to master branch.

Make declarations consistent with https://github.com/RadeonOpenCompute/ROCm-Device-Libs/blob/amd-stg-open/ockl/src/workitem.cl
Without the attribute these functions don't have "readnone" LLVM IR attribute. Without it some optimizations fails, e.g. Loop Invariant Code Motion doesn't hoist these calls out of a loop.

Change-Id: Idb599570d142152cc4f6a3c8986384ad7f0c4729
2020-06-29 13:33:18 -04:00
Ronak Nilesh Chauhan b7101af203 Revert "Support passing macros to hipLaunchKernelGGL"
This reverts commit 961717879d.

Reason for revert: This patch breaks ROCPrim tests

Change-Id: Ib2235f719861c9f4317c33e86b6c1f8bc669cfd4
2020-06-24 04:28:46 -04:00
Michael LIAO cea6b99a28 [hip] Disable assert workaround for HCC on HIP-Clang.
- HIP-Clang follows the standard assert definition by providing
  `__assert_fail`.  But, `assert` macro is added as an HCC-specific
  workaround due to the missing implementation. Only enable that on the
  HCC compilation to avoid unexpected behaviors on HIP-Clang
  compilation.

Change-Id: I1c9a707baff9b85c30faef58c52ebfe07e3fc3fc
2020-06-22 10:33:56 -04:00
Ronak Chauhan 961717879d Support passing macros to hipLaunchKernelGGL
This makes hipLaunchKernelGGL take a variable argument list, that will be
expanded before being fed to hipLaunchKernelGGLInternal.

Change-Id: Id76e2bf91acd5d68f56a24fc39f219f2eeb06d33
2020-06-22 04:35:29 -04:00
Yaxun (Sam) Liu 087c579625 Fix include path and wrapper header
Currently std::complex and some other std functions require uses to
include hip_runtime.h before any other headers to work, which is not
reliable.

changes are made in clang to fix this issue:
https://reviews.llvm.org/D81176

which requires hipcc and HIP headers to make corresponding changes.

This patch will make sure the clang change will not break
HIP/ROCclr during this transition.

After the transition is done, we can remove explicitly setting
include path for HIP-Clang and HIP header in hipcc and hip config
cmake files and rely on clang driver to set it automatically.

Change-Id: I5d226861c2560ffa6c5ab17343a43cc378048061
2020-06-09 17:37:20 -04:00
Jatin 2d517fdcc6 Adding changes for hipExtLaunchKernel for rocCLR
Change-Id: Iba52bc3bde7c37f3fb375a55ba0947e87b3cdc9b
2020-06-02 14:16:41 -04:00
Maneesh Gupta a0b5dfd625 Merge in the rocclr based hip runtime (#2032)
* Merge master-next changes in master (include vdi development in master branch)
2020-04-23 09:12:06 -07:00
Yaxun (Sam) Liu 8d83e95457 Disable device side malloc (#2009)
* Disable device side malloc

Currently device side malloc is not working and takes excessive
device memory.

Disable it for now until a working malloc is implemented.

Change-Id: I1ad908c1c53a83752383b4be96688a848642c699
2020-04-14 16:07:14 +05:30
Yaxun (Sam) Liu 08d9759eba Workaround for libc++ include path for HIP-Clang (#1917)
HIP-Clang cuda_wrapper headers require clang include path before standard C++ include path.
However libc++ include path requires to be before clang include path.
To workaround this, we pass -isystem with the parent directory of clang include
path instead of the clang include path itself.
2020-03-18 11:20:21 +05:30
Sameer Sahasrabuddhe 899c878703 enable HCC printf when using hip-clang (#1947)
This allows printf to work with hip-clang and HCC runtime. See comments under #1919 for a reported bug and feature request.
2020-03-17 14:03:27 +05:30
Sameer Sahasrabuddhe 09130b3b92 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.
2020-03-09 09:40:05 +05:30
Maneesh Gupta 00bd5d1cec Revert PRs that break ROCm builds (#1781)
Fixes SWDEV-218626 and SWDEV-218629

Changes:
- Revert "`static inline` in a header, just like excess sugar in a diet, causes bloat (#1692)"
   This reverts commit be70b9f7e7.
- Revert "Fix rocFFT build failure (#1777)"
   This reverts commit 753277422a.
2020-01-08 15:11:58 +05:30
Yaxun (Sam) Liu 3c90d57072 Add macro __HIP_ENABLE_CUDA_WRAPPER_FOR_OPENMP__ (#1761)
This is to allow force enable cuda wrapper for OpenMP for flexibility
2019-12-23 19:24:54 +05:30
Alex Voicu be70b9f7e7 static inline in a header, just like excess sugar in a diet, causes bloat (#1692) 2019-12-23 19:09:38 +05:30
Michael LIAO d6ff22510e Remove redundant declarations.
- The revised `hip/hip_ext.h` have that declarations.
2019-11-07 10:11:22 -05:00
Alex Voicu ab8fe8a3d8 Optimise the gridDim.n * blockDim.m idiom (#1468) 2019-09-30 10:39:23 +05:30
Yaxun (Sam) Liu 8fe8fc18c0 Do not include cuda wappers for OMP for hip-clang (#1382) 2019-09-03 05:13:59 +00:00
Sarbojit2019 e1f9e08ea7 Removed hipLaunchKernel macro got missed in Merge (#1374) 2019-09-03 05:13:07 +00:00
Yaxun (Sam) Liu 51f0b3f3a6 Fix missing decl for hip-clang
Add back decl for hipHccModuleLaunchKernel and hipExtModuleLaunchKernel for HIP/VDI only
2019-08-19 18:27:13 -04:00
Rahul Garg 3dd0e988b1 Fix undefined identifier issue for hipExtModuleLaunchKernel 2019-08-14 16:46:32 -04:00
Jatin Chaudhary 3e213d94e1 Adding fix to initialize a dim3 variable from blockIdx. (#1212)
Adding gitignore for ctags
2019-07-11 09:16:03 +00:00
Aryan Salmanpour 96dc74897d [hip] implement the hipExtLaunchMultiKernelMultiDevice API (#1165)
* [hip] implement the hipExtLaunchMultiKernelMultiDevice API

* add a guard to check the HCC version for acquire_locked_hsa_queue() API which was introdued in HCC for ROCm 2.5

* modified code based on the requested changes

* changes to lock all streams before launching kernels for each device and unlock them after the dispatches

* check each stream to be valid before starting to lock all the streams
2019-06-20 05:59:05 +05:30
Michael LIAO 5150f1297a [hip] Add API hipExtModuleLaunchKernel in HIP runtime 2019-05-06 21:20:28 -04:00
Michael LIAO dc0d7bd5ce [hip] Fix including of hip_fp16.h
- Separate the definition of `__HCC_OR_HIP_CLANG__`, `__HCC_ONLY__`, and
  `__HIP_CLANG_ONLY__` into hip_common.h so that it could be included in
  hip_fp16.h, which may be included separately in app.
2019-04-23 09:16:00 -04:00
Yaxun (Sam) Liu b9f8f977fb hip-clang: Add __align__
CUDA has __align__. Define eqivalent for hip-clang.
2019-04-10 14:17:18 -04:00
Michael LIAO b3497824ec [hip] Fix typo in macro hipLaunchKernel 2019-03-25 12:06:46 -04:00
Maneesh Gupta 4094824b9e Merge pull request #965 from mhbliao/hliao/master/immarg
[Device Function] Support immediate argument.
2019-03-19 18:41:31 +05:30
Michael LIAO 950b6efe72 [Device Function] Support immediate argument.
- `immarg`, immediate argument, is enabled on all AMDGPU intrinsics.
  Revise device functions using these intrinsics with immediate
  arguments.
2019-03-15 12:38:04 -04:00
Michael Liao 30185b4114 [hip] Re-implement hipLaunchKernelGGL as macros. 2019-03-08 09:10:51 -05:00
Aaron Enye Shi 817b27d530 Remove libhip_device.a static library
Move remaining function definitions from device_util.cpp to hip_runtime.h header. We can now remove the static library completely as device_util.cpp was the last file part of target hip::hip_device .
2018-10-25 19:52:35 +00:00
Alex Voicu 5312336ce2 Minimal should mean minimal. 2018-10-11 00:21:41 +01:00
Alex Voicu ca375cb8c5 Re-sync with upstream. 2018-10-10 11:43:49 +01:00
Yaxun Sam Liu cf184460e9 Fix build failure of hipTestHalf and hipTestIncludeMath for hip-clang 2018-09-18 21:00:15 -04:00
Yaxun Sam Liu fc228c7ea6 Fix hipLaunchKernelGGL for hip-clang
Do not decay function pointer type of the kernel argument passed to hipLaunchKernelGGL
and hipLaunchKernel, otherwise some type information is lost which may cause
type inference failure for the template.

This issue caused compilation error of FeatureLPPooling in Caffe2/PyTorch and this patch
fixes that.
2018-09-17 11:20:41 -04:00
Alex Voicu c6720e882b Align with HC Next. 2018-09-17 11:50:29 +03:00
Maneesh Gupta 66f863d1f3 Merge branch 'master' into support-malloc 2018-09-17 10:17:25 +05:30
Maneesh Gupta cb348421d7 Merge pull request #650 from ROCm-Developer-Tools/hip-clang-new
Support placement new in hip-clang
2018-09-15 11:21:01 +05:30
Maneesh Gupta 8fe4e22b19 Merge pull request #665 from aaronenyeshi/fix-min-funcs
Use templates for min to prevent ambiguity
2018-09-14 13:21:38 +05:30
Maneesh Gupta 411e53a665 Merge pull request #661 from yxsamliu/add-empty-printf
Add empty printf for hip-clang
2018-09-13 07:54:03 +05:30
Aaron Enye Shi 0121ec13aa Use templates for min to prevent ambiguity 2018-09-11 18:21:54 +00:00
Yaxun Sam Liu 9e9a93e10a Use template for hipLaunchKernelGGL for hip-clang 2018-09-07 16:20:00 -04:00
Yaxun Sam Liu 3e1833ca52 Add empty printf for hip-clang 2018-09-07 16:15:08 -04:00
Yaxun (Sam) Liu 338eaefa84 Support placement new in hip-clang 2018-09-04 16:53:46 -04:00
Maneesh Gupta 11cccaa5d0 Merge pull request #613 from ROCm-Developer-Tools/hcc-compat
Add HCC compatibility mode for hip-clang
2018-08-10 09:32:31 +05:30
Maneesh Gupta 78ca12d583 Merge pull request #603 from b-sumner/master
Drop use of NVCC_COMPAT since it is always set
2018-08-03 08:45:18 +05:30
Maneesh Gupta d0cdc69676 Merge pull request #610 from aaronenyeshi/enable-hcc-module-launch
Enable hipHccModuleLaunchKernel on HIP-Clang
2018-08-02 08:08:46 +05:30
Yaxun Sam Liu ef1d1d57f7 Add hc_get_workitem_absolute_id for hip-clang HCC compatibility mode 2018-08-01 15:14:38 -04:00