Commit Graph

324 Commits

Author SHA1 Message Date
Evgeny Mankov 62b86d1c76 [HIPIFY] Clang style formatting
[ROCm/clr commit: 7f143585f6]
2019-11-07 12:48:05 +03:00
Evgeny Mankov db5f0b0237 [HIPIFY][fix] Delete canCompileHostAndDeviceInOneJob declaration as well
[ROCm/clr commit: 4d2424ad36]
2019-11-07 11:32:53 +03:00
Evgeny Mankov be483c4b3e [HIPIFY][fix] Abandon canCompileHostAndDeviceInOneJob check for --cuda-compile-host-device option
[Reason] It turned out that it is not so: 2 jobs are always


[ROCm/clr commit: 21c3d25403]
2019-11-07 11:30:40 +03:00
Evgeny Mankov ba52f11231 [HIPIFY] Reorder options propagation to clang
[Reason] Leave overriding opportunity for -D, -std=c++XX, etc.


[ROCm/clr commit: f18e63b8a9]
2019-11-07 11:21:06 +03:00
Evgeny Mankov c3a76d58da [HIPIFY][Win][fix] canCompileHostAndDeviceInOneJob is true only for LLVM >= 10
[ROCm/clr commit: 97a0670d29]
2019-11-06 19:25:42 +03:00
Evgeny Mankov 4ef69e128b [HIPIFY][format] Apply clang style formatting in LLVMCompat
[ROCm/clr commit: 4cad5fab78]
2019-11-06 14:43:22 +03:00
Evgeny Mankov bb93c0b039 [HIPIFY] Add a compatibility for CharSourceRange if LLVM < 7
[ROCm/clr commit: 3dcae8760d]
2019-11-06 14:30:39 +03:00
Evgeny Mankov ecad81b794 Merge pull request #1624 from emankov/hipify
[HIPIFY][#1409] Fix for kernel launch macro expansion

[ROCm/clr commit: cf5d1caab3]
2019-11-05 14:04:51 +03:00
Evgeny Mankov 3889be3031 [HIPIFY][#1409] Fix for kernel launch macro expansion
+ Add a corresponding test kernel_launch_01.cu
+ Add isBefore() check to avoid crash on Replacement with negative length

TODO:
+ Compatibility with former LLVM versions
+ More complicated kernel launch tests


[ROCm/clr commit: a1c380f38d]
2019-11-05 14:00:13 +03:00
Evgeny Mankov bc9690328f [HIPIFY] Introduce --cuda-gpu-arch as hipify-clang's option
+ Pass it to clang if specified


[ROCm/clr commit: 7142b884ab]
2019-11-02 14:19:31 +03:00
Evgeny Mankov 43d286e9ce [HIPIFY][CUB][#1460][perl] Add "cub::" namespace prefix support in hipify-perl as well
[ROCm/clr commit: c5a2a2daf2]
2019-11-01 14:34:18 +03:00
Evgeny Mankov dc0186720c [HIPIFY][#1603] Fix
[ROCm/clr commit: 050fdad7b7]
2019-10-29 22:10:36 +03:00
Evgeny Mankov d8e846fc91 [HIPIFY][Linux] Rollback --cuda-compile-host-device on Linux
[Reason] It doesn't work with LLVM 9 and higher; Windows is fine


[ROCm/clr commit: dd2243f2fa]
2019-10-29 20:53:54 +03:00
Evgeny Mankov 21d798394a [HIPIFY] Introduce --cuda-compile-host-device for LLVM >= 9
* LLVM < 9 continues using --cuda-host-only


[ROCm/clr commit: 411b18a124]
2019-10-29 19:42:53 +03:00
Evgeny Mankov bb75fa46f0 [HIPIFY] cudaMemcpy2DFromArray(Async) support
[ROCm/clr commit: 5dd00bdf52]
2019-10-29 19:12:42 +03:00
Evgeny Mankov 0896e41987 [HIPIFY] Disable delayed template parsing
By implicit unconditional passing -fno-delayed-template-parsing option (which appeared in LLVM 3.8.0, thus doesn't need compatibility wrapping) to hipify-clang.

[Reason] To parse uncalled template functions otherwise they are not parsed without calling, thus not hipified.

Affects cub_03.cu test, which has uncalled global template function.


[ROCm/clr commit: 7ab06b3892]
2019-10-22 19:07:37 +03:00
Evgeny Mankov 82222bf945 [HIPIFY][#1569] Fix
[ROCm/clr commit: e2191e23e6]
2019-10-22 11:08:37 +03:00
Evgeny Mankov de849a44e7 [HIPIFY][perl] Support of 'using namespace cub'
[ROCm/clr commit: 9633cdbd8a]
2019-10-21 17:15:05 +03:00
Evgeny Mankov 85281b1d86 [HIPIFY][CUB][#1460] Add "using namespace cub" translation support
+ Add cub_03.cu


[ROCm/clr commit: 86f6756b02]
2019-10-18 18:51:40 +03:00
Evgeny Mankov b357301610 [HIPIFY][CUB][#1460] Add cub:: namespace support in TemplateInstantiation of cudaLaunchKernel
+ Update cub_02.cu test accordingly


[ROCm/clr commit: e557563947]
2019-10-16 19:02:13 +03:00
Evgeny Mankov 97f10790eb [HIPIFY] Refactor a couple of matcher functions
+ Separate out GetSubstrLocation function for finding substr SourceLocation in a given SourceRange


[ROCm/clr commit: 0a20048759]
2019-10-16 13:43:56 +03:00
Evgeny Mankov 643a8bcf5b [HIPIFY][CUB][#1460] Implement cubFunctionTemplateDecl matcher
+ Add cub_02.cu test
+ Partial fixes #1460


[ROCm/clr commit: 5555d46e66]
2019-10-16 13:08:11 +03:00
Evgeny Mankov 15d2744450 [HIPIFY] HipifyAction code clean-up
[ROCm/clr commit: 0025c24fe9]
2019-10-14 18:08:29 +03:00
Evgeny Mankov 4b51111a1d [HIPIFY][build fix] Add missing new source file
[ROCm/clr commit: 01ae988fab]
2019-10-14 16:32:57 +03:00
Evgeny Mankov e066bba058 [HIPIFY][CUB] Initial support (hipify-clang only)
+ Add one matcher (will be more)
+ Update Maps and Statistics
+ Add cub_01.cu unit test
+ Update lit harness to support standalone CUB
+ Update README.md
+ Update hipify-perl (only CUB header is supported for now)

[IMPORTANT]
clang (and hipify-clang) works correctly only with official NVLabs version on GitHub.
Compilation of CUB from official CUDA release has conflicts with THRUST.
Thus, to compile CUB sources, option "-I" should be specified to the cloned CUB from NVLAB on GitHub.


[ROCm/clr commit: 97df38903a]
2019-10-14 11:55:55 +03:00
Evgeny Mankov 84e74b1b6c [HIPIFY][perl] Add "important" notice
# IMPORTANT: Do not change this file manually: it is generated by hipify-clang --perl


[ROCm/clr commit: 0ee069bad7]
2019-10-10 18:25:26 +03:00
Evgeny Mankov 808f59cd1c [HIPIFY][#1487][fix] Translate correctly kernel names prefixed with namespace
+ Modify CUDA2HIP_perl for the fix
+ Add ns_kernel_launch.cu test
+ Update hipify-perl by hipify-clang -perl


[ROCm/clr commit: 4a2d87b70c]
2019-10-08 15:58:48 +03:00
Evgeny Mankov c08b24a569 [HIPIFY] Sync with HIP
+ Update hipify-perl accordingly


[ROCm/clr commit: 59c5220c2f]
2019-10-07 14:44:05 +03:00
Evgeny Mankov d3efda3f9f [HIPIFY] Remove duplicates
+ C++ maps and docs affected, hipify-perl left unchanged


[ROCm/clr commit: b7c812160c]
2019-10-07 14:33:04 +03:00
Evgeny Mankov 48224daaa3 [HIPIFY][SPARSE] sync with hipSPARSE
+ Update doc and hipify-perl accordingly


[ROCm/clr commit: 201e6deaac]
2019-10-05 15:53:04 +03:00
Evgeny Mankov 2fab0ddcc8 [HIPIFY] CUDA2HIP_Perl code clean-up and formatting
+ Generated hipify-perl is unchanged


[ROCm/clr commit: 63af6684fa]
2019-10-04 14:31:15 +03:00
ansurya efc64a4f8a Added new Memory API's (#1399)
Added new memory API's hipMemAllocPitch, hipMemAllocHost, hipMemsetD16, hipMemsetD16Async, hipMemsetD8Async
Modified to support all scenarios hipMemcpyParam2DAsync, hipMemcpyParam2D.


[ROCm/clr commit: 96890792b0]
2019-10-04 13:36:31 +05:30
Evgeny Mankov 7064f3a832 [HIPIFY][perl] Start to generate hipify-perl under an option -perl
+ Get rid of --o-perl-map option for Perl output filename: the output name now is always hipify-perl
+ Option --o-perl-map-dir renamed to --o-hipify-perl-dir

Cmd example for generating hipify-perl script to the particular directory:
hipify-clang -perl --o-hipify-perl-dir=../../bin


[ROCm/clr commit: 04988dcdea]
2019-10-03 16:30:48 +03:00
Evgeny Mankov cc2af89494 [HIPIFY] Finishing with generation of hipify-perl
+ hipify-perl script is entirely generated by hipify-clang under an option -perl now
+ hipify-perl still has correctness gaps comparing to hipify-clang: they will be eliminated AMAP further


[ROCm/clr commit: 94aac73b3b]
2019-10-03 16:00:52 +03:00
Evgeny Mankov 85ae269393 [HIPIFY] Return to wrapping with HIP_KERNEL_NAME(...) macro of a template instantiation kernel launch
[REASON]

1. hip-clang is fine with the templated kernel launch, brackets are unneeded: HIP_KERNEL_NAME(...) __VA_ARGS__
2. HCC is not, thus: HIP_KERNEL_NAME(...) (__VA_ARGS__)

[TODO] Clean-up entirely kernel name wrapping when HCC is finally obsolete.

+ Update perl generation, hipify-perl, and affected tests accordingly.


[ROCm/clr commit: fee2f0fa78]
2019-10-02 16:01:07 +03:00
Evgeny Mankov 6dab0c3faa [HIPIFY][#1490][fix] Populate the list of supported device atomic functions
+ Update hipify-perl accordingly
+ Add atomics.cu test on all atomics


[ROCm/clr commit: 2371150401]
2019-10-01 13:57:46 +03:00
Evgeny Mankov aaa4495aeb [HIPIFY][perl] Generate transformKernelLaunch
+ Update hipify-perl accordingly
+ Minor refactoring


[ROCm/clr commit: 0d8d0f1ebc]
2019-10-01 11:17:27 +03:00
Evgeny Mankov 1886fdcbeb [HIPIFY][perl] Generate transformExternShared function
+ Update hipify-perl accordingly


[ROCm/clr commit: bf5546f35e]
2019-09-30 17:47:46 +03:00
Evgeny Mankov 4d2de06f2c [HIPIFY][perl] Generate simpleSubstitutions function
+ Update hipify-perl accordingly


[ROCm/clr commit: 4860559996]
2019-09-30 16:53:19 +03:00
Evgeny Mankov 20496c8486 [HIPIFY] Reconcile transformation (statistics) types between hipify-clang and hipify-perl
+ Update hipify-perl accordingly


[ROCm/clr commit: b42a476614]
2019-09-29 17:33:37 +03:00
Evgeny Mankov de20b6c2f0 [HIPIFY][perl] Generate stat functions
TODO: make statistics as much as similar to hipify-clang's


[ROCm/clr commit: 46273f86a1]
2019-09-29 14:20:32 +03:00
Evgeny Mankov a48cfd56e9 [HIPIFY] Generate more hipify-perl (continuation)
+ Minor hipify-perl clean-up
+ Minor CUDA2HIP_Perl refactoring


[ROCm/clr commit: 0d36e13ce9]
2019-09-27 19:10:54 +03:00
Evgeny Mankov a5a10dc4f9 [HIPIFY] Add supported fp16 functions
+ Update hipify-perl accordingly


[ROCm/clr commit: ff1699397b]
2019-09-26 18:13:20 +03:00
Evgeny Mankov 3ee668a9b9 [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


[ROCm/clr commit: 1db7c1d694]
2019-09-25 18:53:17 +03:00
Evgeny Mankov 6fdfbb4062 [HIPIFY] HipifyAction refactoring
+ Merge of cudaSymbolFuncCall and cudaReinterpretCastArgFuncCall matchers into a single cudaHostFuncCall matcher
+ More const std::string declarations
+ Formatting


[ROCm/clr commit: 7c62b1b2d0]
2019-09-24 10:33:51 +03:00
Evgeny Mankov d3adb0478f [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


[ROCm/clr commit: cf467b4550]
2019-09-24 09:44:17 +03:00
Evgeny Mankov 6dfc9a99d6 [HIPIFY][perl] CUDA2HIP_Perl code cleanup
[ROCm/clr commit: a13540b97a]
2019-09-22 23:43:07 +03:00
Evgeny Mankov fa6a69e375 [HIPIFY][perl] generateSymbolFunctions() small refactoring
[ROCm/clr commit: d6b0ab0fd2]
2019-09-22 22:34:07 +03:00
Evgeny Mankov ef23cdda41 [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


[ROCm/clr commit: 72a658295f]
2019-09-21 07:33:17 +03:00
Evgeny Mankov 2ee59279d6 [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


[ROCm/clr commit: d4f8c6bc4b]
2019-09-19 19:33:42 +03:00