Commit Graph

831 Commits

Author SHA1 Message Date
Evgeny Mankov 4e3845be83 [HIPIFY][#1400] Fix Template Instantiation kernel launch (clang & perl)
+ Enclose template instantiation kernel calls into round brackets, leave regular kernel names unchanged (hipify-perl doesn't handle cases with macros).
+ Fix corresponding tests.

PS. hipify-perl couldn't handle correctly the following cases due to macros expansion disability, thus hipify-clang should be used instead:

#define KERNEL_NAME_MACRO axpy<float>
#define KERNEL_CALL_MACRO axpy<float><<<1, 2>>>
#define KERNEL_ARG_LIST_MACRO a, x, y

// CUDA:
KERNEL_NAME_MACRO<<<1, 2>>>(KERNEL_ARG_LIST_MACRO);
KERNEL_CALL_MACRO(KERNEL_ARG_LIST_MACRO);

// hipify-perl:
hipLaunchKernelGGL(KERNEL_NAME_MACRO, dim3(1), dim3(2), 0, 0, KERNEL_ARG_LIST_MACRO);
KERNEL_CALL_MACRO(KERNEL_ARG_LIST_MACRO);

// hipify-clang:
hipLaunchKernelGGL((KERNEL_NAME_MACRO), dim3(1), dim3(2), 0, 0, KERNEL_ARG_LIST_MACRO);
hipLaunchKernelGGL((axpy<float>), dim3(1), dim3(2), 0, 0, KERNEL_ARG_LIST_MACRO);
2019-09-10 15:59:06 +03:00
Evgeny Mankov aec10d6ee1 [HIPIFY] Add device functions support
+ Add a corresponding matcher cudaDeviceFuncCall to match only (__device__ or __global__) and not __host__ functions.
+ Add a corresponding device functions mapping:
  only unsupported are listed, cause supported are exactly the same as of CUDA and do not need transformation;
  make FindAndReplace for device functions separated from host API calls.
+ Add a test to distinguish device functions and user-defined.
2019-09-06 18:34:12 +03:00
Evgeny Mankov e26ec02a99 [HIPIFY][perl][#259] Fix
empty<<<1, 2>>> ( );     >>  hipLaunchKernelGGL(empty, dim3(1), dim3(2), 0, 0);
empty<<<1, 2, 0>>>();    >>
empty<<<1, 2, 0, 0>>>(); >>

instead of erroneous:    >> hipLaunchKernelGGL((empty), dim3(1), dim3(2), 0, 0, );
2019-09-03 16:44:20 +03:00
Evgeny Mankov 608331250e [HIPIFY][tests] Add occupancy test 2019-09-02 17:54:06 +03:00
Sameer Sahasrabuddhe 68c133bd78 remove obsolete test for OCKL Asynchronous Streams
The implementation for OCKL AS was recently removed from the device
library since that feature is now superseded by hostcall.
2019-08-30 20:41:29 +05:30
Evgeny Mankov 451721a821 Merge pull request #1372 from emankov/master
[HIPIFY][#207][fix] Translate all preprocessor's conditional blocks
2019-08-29 10:30:05 +03:00
Sarbojit2019 1ae43cbeba [HIP] Reclaiming hipLaunchKernel API (#1353)
* [HIP] Reclaiming hipLaunchKernel API

* Reclaiming hipLaunchKernel : Incorporated review comments

* Incorporated review comments

* Removed hipLaunchKernel Macro from nvcc path
2019-08-29 01:02:41 +00:00
Evgeny Mankov 32f22a0117 [HIPIFY][#207][fix] Translate all preprocessor's conditional blocks
+ Start to translate preprocessor's false conditional blocks too:
  based on clang's https://reviews.llvm.org/D66597;
  available only starting from LLVM 10.0 or trunk.
+ Option -skip-excluded-preprocessor-conditional-blocks for skipping excluded conditional blocks:
  the default behavior for hipify-clang built with LLVM < 10.0;
  false by default for hipify-clang built with LLVM 10 or trunk.
+ Add 4 preprocessor unit tests, 2 of which are LLVM 10.0 only
+ Update couple of existing tests by setting -skip-excluded-preprocessor-conditional-blocks option:
  update lit testing accordingly
2019-08-28 21:17:35 +03:00
Rahul Garg c741ad3c80 [dtests] refactor windows specific changes (#1313)
* [dtests] refactor windows specific changes

* Refactor hipMemoryAllocateCoherentDriver - PR- 1309

* Fix missing z in _putenv_s

* Revert "Fix missing z in _putenv_s"

This reverts commit 099a1b20a5c75c5f122d57c0ad2bca01745cdc9c.

* Refactor changes from PR 1299

* Update hipEnvVarDriver.cpp
2019-08-16 02:13:00 +00:00
Maneesh Gupta 3634695737 [hit] Add support for specifying dependencies in HIT syntax (#1323) 2019-08-14 11:30:42 +00:00
Evgeny Mankov 9166b1554e [HIPIFY] Add cudaMallocManaged -> hipMallocManaged
+ Add mapping for corresponding data types
+ Add a test
+ Update docs
2019-08-13 17:56:06 +03:00
Evgeny Mankov 2ee0ecde06 [HIPIFY][cuRAND][#1257] Fix
+ Update CURAND_API_supported_by_HIP.md and test accordingly
2019-08-09 21:27:16 +03:00
amd-lthakur 19ad365834 [dtests] Fix build issues with hipMemoryAllocateCoherentDriver.cpp on windows (#1309)
Compilation error being observed due to popen(), pclose() and setenv() linux calls on windows. Replaced with appropriate calls on windows.
2019-08-09 11:53:16 +00:00
amd-lthakur 93f5940ef8 [dtests] Fix build issue with hipMemcpy_simple.cpp on windows (#1306)
Compilation error being observed on windows due to aligned_alloc() call. Mapped the call to _aligned_malloc() for windows.
2019-08-09 11:52:46 +00:00
ansurya fc60f3a95b [dtests[ Fix build issues with hipEnvVar*.cpp on windows (#1299)
* replace getopt with clara based command line options

* Removed header getopt.h
2019-08-09 11:52:10 +00:00
amd-lthakur 36977dc276 [dtests] Fix build issues with hipLaunchParm.cpp on windows (#1293)
* Removed unwanted #include sys/time.h , gettimeofday() and timeval variables and this also helps avavoid compilation error in windows due to gettimeofday() call equivalent of which is not available in windows

* Changed the Macro name from GPU_PRINT_TIME to MY_LAUNCH_MACRO
2019-08-09 11:50:10 +00:00
amd-lthakur c212c484af [dtests] Fixed build issues with hipAsynchronousStreams.cpp on windows (#1292)
Changed the third arg of the functions __hip_as_write_block and __ockl_as_write_block from ulong to uint64_t so as to fix the compilation error in windows
2019-08-09 11:49:31 +00:00
lthakur 80acd13ba7 Resubmitting the fix so as to address the changed format in the last submission 2019-08-08 11:26:26 +05:30
lthakur c4f6d58354 Fixed compilation errors being observed on windows 2019-08-07 15:54:46 +05:30
Sarbojit2019 f23c1a1499 Enabled gcc for hip host code (#1214)
* Enabled gcc for hip host code

* Adding tests for hip code + (gcc & g++), without kernels

* Excluding nvcc platforms for gcc and g++ tests + Addressing review comments

* minor code clean-up

* Add rocm include path

* Added relative path for library

* Hiding non supported functions for gcc

* Incorporating review comments
2019-08-05 09:51:36 +00:00
Evgeny Mankov fedef02c37 [HIPIFY][fix][#211] Taking into account include guard controlling macro
...while including HIP main header file, which is inserted now after #indef controlling macro, or after #pragma once, if it's occurred earlier.

+ Add a couple of unit tests.
ToDo: Check backward compatibility on older clang versions.
2019-08-02 16:46:45 +03:00
wkwchau ed04e96e2d Added CooperativeLaunch and CooperativeMultiDeviceLaunch flag and property for hipDeviceGetAttribute() and hipGetDeviceProperties() (#1247) 2019-08-02 10:00:25 +00:00
wkwchau abe6776677 Added query of hipDeviceAttributeHdpMemFlushCntl and hipDeviceAttribu… (#1238)
* Added query of hipDeviceAttributeHdpMemFlushCntl and hipDeviceAttributeHdpRegFlushCntl

* Added NVCC blocker for the hip*FlushCntl test cases
2019-08-01 16:03:35 +00:00
Maneesh Gupta 6ee5fcc07c Merge pull request #1276 from vsytch/SWDEV-197675
[hip][tests] Don't use a hardcoded warp size, since it can be dynamically changed.…
2019-08-01 08:59:43 +00:00
wkwchau 7b9801fe9a Added support of hipOccupancyMaxActiveBlocksPerMultiprocessor & hipOc… (#1240)
* Added support of hipOccupancyMaxActiveBlocksPerMultiprocessor & hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags APIs

* Taking into account of SGPR usage to determine the max active blocks in hipOccupancyMaxActiveBlocksPerMultiprocessor()
2019-08-01 08:58:48 +00:00
Vladislav Sytchenko 9a1835ddc3 Don't use a hardcoded warp size, since it can be dynamically changed. Query it from the runtime instead. 2019-07-31 17:04:31 -04:00
Rahul Garg c610159b85 Add HIP init in hipFuncGetAttributes (#1262)
* Add HIP init in hipFuncGetAttributes

* [dtest]Remove explicit hip init call in hipFuncGetAttributes dtest
2019-07-31 15:42:08 +00:00
ansurya 440c5f1677 Testcase to validate signed/unsigned char,short as normalized float (#1267)
* Testcase to validate signed/unsigned char,short as normalized float

* corrected test_common.cpp file path
2019-07-31 05:02:35 +00:00
Aryan Salmanpour 571af6d85b [hip][tests] add a unit test for using hipExtLaunchMultiKernelMultiDevice API (#1250) 2019-07-24 07:57:39 +00:00
Aaron Enye Shi 8c82f9db77 Add GFX908 specific changes to HIP (#1229)
* Add GFX908 specific for HIP

* Fix missing __halfTest in hipTestNativeHalf
2019-07-24 07:51:17 +00:00
Maneesh Gupta 7feda764b6 [dtests] Fix complex_loading_behavior.cpp build issues on nvcc path (#1242) 2019-07-24 07:49:39 +00:00
Aaron Enye Shi c56876cc19 Fix hipMemcpy-size test running out of Host Mem (#1224)
* Fix hipMemcpy-size test running out of Host Mem

The hipMemcpy-size uses a maxElem calculated from the total GPU mem /8. Then it will allocate 4 times that amount of host memory. This tests begins failing when there is not enough host memory, such as on systems with 32GB GPU mem, and 16GB RAM. This fixes the test if not enough host memory is available on the system.

* Add windows support to hipMemcpy-size fix

* avoid linking extra libs for windows

* HIPMemcpy-size Remove freeCPU including swap
2019-07-24 07:49:20 +00:00
Maneesh Gupta af9aae6b4e [hit] Workaround for %cc and %cxx mappings. (#1233)
* [hit] Workaround for %cc and %cxx mappings.

HIP CMakeLists.txt modifies CMAKE_C_COMPILER and CMAKE_CXX_COMPILER.
This messes up any dtests that want to test against cc/c++.

So hardcode %cc to /usr/bin/cc and %cxx to /usr/bin/c++ for now till
we come up with a better solution.

Change-Id: I7dce93ce8360191e612a94e3a735e5612ac27ab5

* [hit] Add auto-variable %hip-path to syntax for BUILD_CMD

Change-Id: Id097a183fbce2b2c9691d0180d3304dd17a4e016
2019-07-19 04:45:56 +00:00
ansurya f566bec546 [HIP][Tests] Added new testcases for Module API (#1150)
* [HIP][tests] New testcases for module api

* [HIP][Tests]Support for CUDA devices

* Updated tests as per latest master & test GetGlobal to work on all platforms
2019-07-19 04:45:20 +00:00
ansurya 00aa42e05f Add Max Texture 1D,2D,3D device properties (#1226)
* Add Max Texture 1D,2D,3D device properties

* Corrected testcase to use enums defined in hipDeviceAttribute_t

* Added texture 1D,2D and 3D support for NVIDIA path
2019-07-18 03:18:50 +00:00
Maneesh Gupta d206d66dfe [dtests] Fix typo in hipAPIStreamDisable.cpp (#1227)
Change-Id: Ib88a6be49ba192578129bb88ad09817839981398
2019-07-17 07:28:38 +00:00
Maneesh Gupta 4d2f2396aa [dtests] Temporarily disable failing tests (#1218)
Change-Id: I7bb36a964c635bfbdf67484f3454d8fff7168eb2
2019-07-17 07:28:21 +00:00
Evgeny Mankov c978af3b13 Merge pull request #1220 from emankov/master
[HIP][HIPIFY] Split HIP_ARRAY_DESCRIPTOR struct to HIP_ARRAY_DESCRIPTOR and HIP_ARRAY3D_DESCRIPTOR
2019-07-16 18:15:44 +03:00
kpyzhov 728ce926d9 Added gfx906 kernel binary to the HIPFB file for hipModule test. (#1215) 2019-07-12 03:13:45 +00:00
Evgeny Mankov f0832fd968 [HIP][HIPIFY] Split HIP_ARRAY_DESCRIPTOR struct to HIP_ARRAY_DESCRIPTOR and HIP_ARRAY3D_DESCRIPTOR
[Reason] To be compatible with CUDA [#1133]

Update HIP code, hipify-clang, tests and docs

[TODO] Add support of the corresponding functions on nvcc fallback path
2019-07-11 14:58:16 +03:00
Yaxun (Sam) Liu 3169f3a881 Add __hip_pinned_shadow__ for hip-clang and fix texture reference tests (#1200) 2019-07-03 08:51:59 +00:00
Alex Voicu 87eac86298 Put 3-wide vector types on a ketogenic diet. (#1180)
* Put 3-wide vector types on a ketogenic diet.

* Remove needless include.

* Do not be narrow-minded.

* Do not be narrow-minded.

* Put the C people on a diet too.
2019-06-25 06:32:09 +05:30
wkwchau 28c34ead70 Implement the hipOccupancyMaxPotentialBlockSize function (#1162)
* Implement the hipOccupancyMaxPotentialBlockSize function

* Replaced hipGetDeviceProperties() call by ihipGetDeviceProperties() in ihipOccupancyMaxPotentialBlockSize()

* Add test for hipOccupancyMaxPotentialBlockSize in Module API

* Added extern declaration for ihipGetDeviceProperties() to be accessed inside ihipOccupancyMaxPotentialBlockSize()

* fixed hipOccupancyMaxPotentialBlockSize test build issue

* Fix hipOccupancyMaxPotentialBlockSize dtest

* Add BUILD_CMD in hipOccupancyMaxPotentialBlockSize dtest

* Revert "Add BUILD_CMD in hipOccupancyMaxPotentialBlockSize dtest"

This reverts commit 0480ff56f1441fc515d2c26ce33783e303423938.

* Disable hipOccupancyMaxPotentialBlockSize dtest on NVCC

* move extern declaration of ihipGetDeviceProperties to hip_module.cpp

* Update the limiation of 32 wavefronts per CU and 800/512 SGPRs for VI/pre-VI chips to calculate the occupancy
2019-06-20 05:58:29 +05:30
Maneesh Gupta 165d73de9a [dtests] Temporarily disable hiprtc tests
Change-Id: I87c0c01837e7b59b11d99fb94d679a765f914da5
2019-05-31 16:39:33 +05:30
Maneesh Gupta f30446c4bc Merge pull request #1124 from kpyzhov/hipModule-test
Updated kernel binary file for hipModule test.
2019-05-24 14:16:03 +05:30
Maneesh Gupta c289973030 Merge pull request #1121 from kpyzhov/hipStreamSync2-test
Disable hipStreamSync2 test for hip-clang.
2019-05-24 14:15:54 +05:30
Evgeny Mankov 7db992cf44 [HIPIFY] Add device texture fetch functions support
+ Add a corresponding reverse engineered sample tex2dKernel with texture template
2019-05-23 12:47:08 +03:00
Konstantin Pyzhov d2125f0325 Updated kernel binary file for hipModule test. 2019-05-21 13:21:48 -04:00
Evgeny Mankov 5c205b75f5 [HIPIFY][tests] Add reverse engineered HIP sample "peer2peer"
+ Fix typo in sample "stream"
2019-05-20 17:16:11 +03:00
Konstantin Pyzhov adf3b8774e Disable hipStreamSync2 test for hip-clang. 2019-05-20 02:13:30 -04:00