Commit Graph

4345 Commits

Author SHA1 Message Date
foreman cd2abbb731 P4 to Git Change 2004245 by axie@axie_win_opencl_nvme on 2019/09/25 16:46:31
SWDEV-203855 - Segfault when using hipArrayCreate and hipMemcpyParam2D
	1. hipArrayCreate API implementation uses a wrong parameter to check width. That parameter can be null pointer because it is used to pass the pointer back to the caller.
	2. Implement hipMemcpyParam2D similar to HIP-HCC implementation. Reference: https://github.com/ROCm-Developer-Tools/HIP/blob/master/src/hip_memory.cpp

	Tests:
	1. PRE CHECK-IN build and test(no regression):  http://ocltc:8111/viewModification.html?modId=126608&personal=true&init=1&tab=vcsModificationBuilds
	2. GPU is VEGA10, OS is Windows 10, CPU is threadripper 1900x, run the test. There is not segfault or exit during hipArrayCreate and hipMemcpyParam2D function call.

	ReviewBoard: http://ocltc.amd.com/reviews/r/18037/

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/hip/hip_memory.cpp#72 edit
2019-09-25 16:53:50 -04:00
Evgeny Mankov 1db7c1d694 [HIPIFY][#1439] Add reinterpret_cast to args of some functions
+ Perl part of [#1458]
+ Affected functions: hipFuncSetCacheConfig, hipFuncGetAttributes
+ Implement function generateHostFunctions() in hipify-clang for that purposes
+ Update hipify-perl accordingly
2019-09-25 18:53:17 +03:00
Evgeny Mankov 76f2202abf [HIPIFY][perl] Get rid of obsolete warnings on cuBLAS and cuRAND 2019-09-25 17:37:41 +03:00
foreman 35c8a50c99 P4 to Git Change 2003445 by yaxunl@yaxunl-lc10 on 2019/09/24 16:56:01
SWDEV-145570 - Add new kernel launching API for hip-clang

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/hip/hip_hcc.def.in#28 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_hcc.map.in#27 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_platform.cpp#41 edit
2019-09-24 16:58:14 -04:00
foreman 4f6bbfa473 P4 to Git Change 2003196 by kjayapra@0_HIPWS_LNX1_ROCM on 2019/09/24 10:48:45
SWDEV-144570 - Implementing some Texture APIs

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/hip/hip_hcc.def.in#27 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_hcc.map.in#26 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_texture.cpp#17 edit
2019-09-24 10:57:33 -04:00
Evgeny Mankov 7c62b1b2d0 [HIPIFY] HipifyAction refactoring
+ Merge of cudaSymbolFuncCall and cudaReinterpretCastArgFuncCall matchers into a single cudaHostFuncCall matcher
+ More const std::string declarations
+ Formatting
2019-09-24 10:33:51 +03:00
Evgeny Mankov cf467b4550 [HIPIFY][#1439] Add reinterpret_cast to args of some functions
+ Affected functions: hipFuncSetCacheConfig, hipFuncGetAttributes
+ Add a corresponding Matcher cudaReinterpretCastArgFuncCall
+ Add reinterpret_cast.cu test

TODO: Do the same for hipify-perl
2019-09-24 09:44:17 +03:00
Evgeny Mankov f7b3dcd6d7 [HIPIFY][doc] Return X86 target back in LLVM's cmake
Due to LLVM 9.0.0 release, which still needs X86 for NVPTX, LLVM trunk - doesn't.
2019-09-23 22:20:23 +03:00
Evgeny Mankov a13540b97a [HIPIFY][perl] CUDA2HIP_Perl code cleanup 2019-09-22 23:43:07 +03:00
Evgeny Mankov d6b0ab0fd2 [HIPIFY][perl] generateSymbolFunctions() small refactoring 2019-09-22 22:34:07 +03:00
Evgeny Mankov 72a658295f [HIPIFY][#1435][perl] Add HIP_SYMBOL wrapper to the templated Device Symbol argument of the following functions:
cudaMemcpyToSymbol, cudaMemcpyToSymbolAsync, cudaGetSymbolSize, cudaGetSymbolAddress, cudaMemcpyFromSymbol, cudaMemcpyFromSymbolAsync

+ Perl part of [#1441]
+ Implement function generateSymbolFunctions() in hipify-clang for that purposes
+ Update hipify-perl

TODO: Eliminate dim3() issue in hipify-perl as well
2019-09-21 07:33:17 +03:00
Evgeny Mankov 2a27572463 [HIPIFY][doc] Update README.md due to LLVM 9.0.0 release
+ LLVM 9.0.0 is latest stable release, no patches are needed
+ The latest CUDA 10.1 Update 2 is supported
+ Tested on Windows and Linux
2019-09-20 09:16:10 +03:00
Evgeny Mankov d4f8c6bc4b [HIPIFY][#1435] Add HIP_SYMBOL wrapper to the templated Device Symbol argument of the following functions:
cudaMemcpyToSymbol, cudaMemcpyToSymbolAsync, cudaGetSymbolSize, cudaGetSymbolAddress, cudaMemcpyFromSymbol, cudaMemcpyFromSymbolAsync

+ Add a corresponding cudaSymbolFuncCall matcher.
+ Add device_symbols.cu test for the above 6 functions, update existed.
+ Fix dim3() type cast issue, update affected tests.

TODO: Do the same in hipify-perl
2019-09-19 19:33:42 +03:00
foreman 13a5655710 P4 to Git Change 2000486 by vsytchen@vsytchen-remote-ocl-win10 on 2019/09/18 14:25:45
SWDEV-201925 - hipArray3DCreate() not available in HIP/PAL on Windows

	1. Implement hipArray3DCreate().
	2. Remove the array size calculation from hipArrayCreate() as it is not used.

	ReviewBoardURL = http://ocltc.amd.com/reviews/r/18005/diff/

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/hip/hip_memory.cpp#71 edit
2019-09-18 14:29:25 -04:00
Evgeny Mankov a49f9924a7 [HIPIFY][#1437] Fix: cudaFuncGetAttributes to hipFuncGetAttributes is supported
+ Update hipify-perl and CUDA_Runtime_API_functions_supported_by_HIP.md accordingly
2019-09-18 17:57:31 +03:00
Evgeny Mankov 05d71d4b8b [HIPIFY] Add supported device functions (from device_functions.h)
+ [perl] Sync hipify-perl accordingly
2019-09-18 17:07:50 +03:00
Evgeny Mankov 774a6c5667 [HIPIFY][#1430] Build fix for LLVM < 8.0.0 2019-09-18 11:53:23 +03:00
foreman 06b563e59c P4 to Git Change 1999915 by cpaquot@cpaquot-ocl-lc-lnx on 2019/09/17 19:43:34
SWDEV-201128 - [HIP] test_snli_cuda failure
	Default to sync packet
	Make sure GPU_NUM_MEM_DEPENDENCY is 0 for HIP
	No sync packet is only used when there are mem dependency check

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/hip/hip_context.cpp#22 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#86 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.hpp#28 edit
2019-09-17 19:47:11 -04:00
Evgeny Mankov 33cd4dffd5 [HIPIFY] Add supported device functions (from math_functions.h)
+ [perl] Add generation of sub countSupportedDeviceFunctions
+ [FIX] Do not perform any replacement for supported device functions
+ [perl] Sync hipify-perl accordingly
2019-09-17 16:17:28 +03:00
foreman 72000beb84 P4 to Git Change 1998982 by cpaquot@cpaquot-ocl-lc-lnx on 2019/09/16 17:49:10
SWDEV-145570 - [HIP] Fix regression from new headers.

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/hip/hip_device.cpp#23 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_device_runtime.cpp#18 edit
2019-09-16 17:58:06 -04:00
Evgeny Mankov b43bb7d3c1 [HIPIFY][perl][fix] Treat ::device_function as a device function
+ Do not treat somenamespace::device_function_name as a device function
+ Fix generation of warnUnsupportedDeviceFunctions function in hipify-clang
+ Update hipify-perl based on hipify-clang -perl generation
+ Update device test math_functions.cu for hipify-perl

[Restrictions]
- hipify-perl is yet unable to handle function declarations in user namespaces
- hipify-perl is yet unable to handle using directive
2019-09-16 17:36:55 +03:00
Evgeny Mankov dd752e3d4e [HIPIFY] Fix build failure due to typo in [#1377] 2019-09-16 14:28:52 +03:00
mhbliao 4691c1ef8c [HIP] Remove a circular including. (#1418) 2019-09-16 08:32:47 +00:00
satyanveshd 842e304a9c Fix checks in hipMemcpy[D/H]to[D/H]() (#1397)
* SWDEV-202043 hipMemcpyDtoD() issue
2019-09-16 08:32:38 +00:00
AlexBinXie 313726a457 [hip]Skip test when hipHostMallocCoherent is not supported by implementation (#1380) 2019-09-16 08:31:43 +00:00
ansurya e2a934f377 Added new device attributes (#1377)
* Added new device attributes

* updated comment

* updated with new device attributes supported
2019-09-16 08:31:30 +00:00
Aryan Salmanpour 6c7da60e28 [hip] add initial support for hipLaunchCooperativeKernelMultiDevice API (#1368)
* [hip] add initial support for hipLaunchCooperativeKernelMultiDevice API

* fix formatting
2019-09-16 08:31:17 +00:00
Aryan Salmanpour 51c7fedd36 [hip][tests] add a unit test for testing hipLaunchCooperativeKernel (#1361)
* [hip][tests] add a unit test for testing hipLaunchCooperativeKernel

* use __ockl_grid_sync function

* remove already defined __ockl_grid_sync function

* use sync function for grid synchronization
2019-09-16 08:31:09 +00:00
Evgeny Mankov db2fee682b [HIPIFY] Scripting related refactoring
+ Move generating hipify-perl and hipify-python into separate namespaces and files
+ Move getAbsoluteFilePath and getAbsoluteDirectoryPath to StringUtils
2019-09-15 21:13:56 +03:00
Evgeny Mankov 422403a3ff [HIPIFY][perl] Syn with hipify-clang 2019-09-15 15:25:40 +03:00
Evgeny Mankov b69f7afa67 [HIPIFY][perl] Generate sub warnUnsupportedDeviceFunctions 2019-09-15 15:18:58 +03:00
Evgeny Mankov d05caef113 Merge pull request #1417 from emankov/master
[HIPIFY][doc] Update README.md
2019-09-13 18:58:22 +03:00
Evgeny Mankov 0416eaf12e [HIPIFY][doc] Update README.md
+ Adding -DLLVM_TARGETS_TO_BUILD="NVPTX" to LLVM's cmake command line for minimizing LLVM's build (tested)
+ Test logs update
+ Versions update
2019-09-13 18:56:48 +03:00
foreman 0aa24f6d4d P4 to Git Change 1997981 by cpaquot@cpaquot-ocl-lc-lnx on 2019/09/13 11:17:32
SWDEV-203438 - [HIP] AllGather RCCL test issue
	The test tries to launch a kernel on two devices at once and they need to communicate with each other.
	For that, it uses a custom stream for each devices.
	Problem is in getNullStream we used to call syncStreams all the time
	and it was syncing all the streams even the ones on different devices.
	So that made the second kernel launch (on 2n dev) to wait for the first kernel to finish which
	would never occur since the first one was waiting for the second one.
	The fix is to not call syncStreams from getNullStream because we sync already anyway prior in general.

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/hip/hip_context.cpp#21 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_event.cpp#16 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_internal.hpp#40 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_memory.cpp#70 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_module.cpp#41 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_stream.cpp#24 edit
2019-09-13 11:28:33 -04:00
Rahul Garg d9179cbe70 Fix typo and colon in comment 2019-09-13 03:09:01 +05:30
Rahul Garg 2e9b8e9d0d [HACK] Temporary fix for hipFree for hipManagedMalloc 2019-09-13 02:10:21 +05:30
foreman b0b5c92469 P4 to Git Change 1997621 by cpaquot@cpaquot-ocl-lc-lnx on 2019/09/12 14:16:09
SWDEV-145570 - Fixed some logging issues regarding hip(Ext)ModuleLaunchXXX.

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/hip/hip_module.cpp#40 edit
2019-09-12 14:35:36 -04:00
Evgeny Mankov 4b3889b47e [HIPIFY] Add unsupported fp16 functions 2019-09-12 18:51:25 +03:00
Evgeny Mankov ece8a71bad [HIPIFY] Add more unsupported device functions 2019-09-12 17:53:25 +03:00
Evgeny Mankov 905c6383db [HIPIFY][#1404] Fix: add cooperative_groups.h -> hip/hip_cooperative_groups.h 2019-09-11 18:07:09 +03:00
Evgeny Mankov ede7e2a094 Merge pull request #1406 from emankov/master
[HIPIFY][#1400] Fix Template Instantiation kernel launch (clang & perl)
2019-09-11 15:49:46 +03:00
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
Aditya Lad 4a53718e10 Replacment of RENAME command in CMakeLists.txt (#1402) 2019-09-10 08:35:16 +00:00
foreman 15d819d61f P4 to Git Change 1995672 by skudchad@skudchad_rocm on 2019/09/09 14:45:42
SWDEV-199293 - Fix build

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/hip/hip_rtc.cpp#4 edit
2019-09-09 14:50:37 -04:00
foreman f0f4755aae P4 to Git Change 1995665 by skudchad@skudchad_test2_win_opencl on 2019/09/09 14:36:57
SWDEV-199293 - Implement hiprtcGetLoweredName

	ReviewBoardURL = http://ocltc.amd.com/reviews/r/17960/diff/

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/hip/hip_rtc.cpp#3 edit
2019-09-09 14:42:47 -04:00
foreman 9a839c46dc P4 to Git Change 1994974 by skudchad@skudchad_test2_win_opencl on 2019/09/06 19:09:36
SWDEV-199293 - Implement some hipRTC apis.

	ReviewBoardURL = http://ocltc.amd.com/reviews/r/17953/diff/

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/hip/build/Makefile.hip#18 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_rtc.cpp#2 edit
2019-09-06 19:11:43 -04: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
foreman 860615b64d P4 to Git Change 1994498 by skudchad@skudchad_test2_win_opencl on 2019/09/06 04:25:22
SWDEV-202136 - Fix windows build

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/hip/hip_hcc.def.in#26 edit
2019-09-06 04:33:24 -04:00
foreman 0322bfd64f P4 to Git Change 1994199 by michliao@hliao-dev-00-hip.rocm-workspace on 2019/09/05 16:35:36
SWDEV-202136 - Fix typos in `hip_hcc.def.in`.

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/hip/hip_hcc.def.in#25 edit
2019-09-05 16:45:19 -04:00
foreman 53d56a3843 P4 to Git Change 1994120 by axie@axie-hip-pal on 2019/09/05 14:22:40
SWDEV-201667 - Linker errors when using hipArrayCreate and hipMemcpyParam2D

	Tests:
	In Windows 10, the linker errors has been fixed with this code change.
	http://ocltc.amd.com:8111/viewModification.html?modId=125600&personal=true&tab=vcsModificationBuilds

	Review:
	http://ocltc.amd.com/reviews/r/17943/

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/hip/hip_hcc.def.in#24 edit
2019-09-05 14:34:47 -04:00