Commit Graph

417 Commits

Author SHA1 Message Date
Evgeny Mankov d33dd71ed3 [HIPIFY] Sync cudaError/CUresult between CUDA Driver API/CUDA RT API/HIP
+ Update *.md docs and hipify-perl accordingly

[Reason]
Starting with CUDA 10.1 all error codes are merged between Driver and RT APIs

[ToDo]
Do the same merge in HIP API as there is no need in distinguishing return codes by API
2019-11-29 19:29:11 +03:00
Shyam Saladi 70f457d7ea [HIPIFY] fix typo (#1681) 2019-11-22 07:54:37 +05:30
Evgeny Mankov 16c8ad0f99 [HIPIFY][doc] A few words about LLVM's FileCheck in README.md 2019-11-12 16:04:28 +03:00
Evgeny Mankov 93bc9c9195 [HIPIFY] Clang style formatting 2019-11-07 12:48:05 +03:00
Evgeny Mankov 0c07b6b421 [HIPIFY][fix] Delete canCompileHostAndDeviceInOneJob declaration as well 2019-11-07 11:32:53 +03:00
Evgeny Mankov c2c144ac04 [HIPIFY][fix] Abandon canCompileHostAndDeviceInOneJob check for --cuda-compile-host-device option
[Reason] It turned out that it is not so: 2 jobs are always
2019-11-07 11:30:40 +03:00
Evgeny Mankov 16a27213e4 [HIPIFY] Reorder options propagation to clang
[Reason] Leave overriding opportunity for -D, -std=c++XX, etc.
2019-11-07 11:21:06 +03:00
Evgeny Mankov 9ca4e96641 [HIPIFY][Win][fix] canCompileHostAndDeviceInOneJob is true only for LLVM >= 10 2019-11-06 19:25:42 +03:00
Evgeny Mankov 96483d0de5 [HIPIFY][doc] Update README.md
+ Supported versions, testing
2019-11-06 19:18:13 +03:00
Evgeny Mankov 3b76fd0b1c [HIPIFY][format] Apply clang style formatting in LLVMCompat 2019-11-06 14:43:22 +03:00
Evgeny Mankov c87ab05fc6 [HIPIFY] Add a compatibility for CharSourceRange if LLVM < 7 2019-11-06 14:30:39 +03:00
Evgeny Mankov a601670cb7 Merge pull request #1624 from emankov/hipify
[HIPIFY][#1409] Fix for kernel launch macro expansion
2019-11-05 14:04:51 +03:00
Evgeny Mankov 976f8e8bf6 [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
2019-11-05 14:00:13 +03:00
Evgeny Mankov 02589264a0 [HIPIFY] Introduce --cuda-gpu-arch as hipify-clang's option
+ Pass it to clang if specified
2019-11-02 14:19:31 +03:00
Evgeny Mankov c48fdefee8 [HIPIFY][CUB][#1460][perl] Add "cub::" namespace prefix support in hipify-perl as well 2019-11-01 14:34:18 +03:00
Evgeny Mankov f563772a25 [HIPIFY][cmake][#1572] Fix: Do not override CMAKE_INSTALL_PREFIX
Affects building with HIP, standalone building is not changed
2019-10-31 16:55:06 +03:00
Evgeny Mankov 389b5ec957 [HIPIFY][#1603] Fix 2019-10-29 22:10:36 +03:00
Evgeny Mankov 85087644da [HIPIFY][Linux] Rollback --cuda-compile-host-device on Linux
[Reason] It doesn't work with LLVM 9 and higher; Windows is fine
2019-10-29 20:53:54 +03:00
Evgeny Mankov 3f2eefa82a [HIPIFY] Introduce --cuda-compile-host-device for LLVM >= 9
* LLVM < 9 continues using --cuda-host-only
2019-10-29 19:42:53 +03:00
Evgeny Mankov 315a10a59d [HIPIFY] cudaMemcpy2DFromArray(Async) support 2019-10-29 19:12:42 +03:00
Evgeny Mankov 75d70a6714 [HIPIFY][cmake][#1571] Take into account building hipify-clang as a part of building HIP while installing
[Algorithm]
  [Release]
    If CMAKE_INSTALL_PREFIX is set by the user:
       If BIN_INSTALL_DIR is set by HIP, use it as CMAKE_INSTALL_PREFIX, otherwise CMAKE_INSTALL_PREFIX is used unchanged.
    If the user does not set CMAKE_INSTALL_PREFIX (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT):
       If BIN_INSTALL_DIR is set by HIP, use it as CMAKE_INSTALL_PREFIX, otherwise use PROJECT_BINARY_DIR/bin for installation.
  [Debug]
    If CMAKE_INSTALL_PREFIX is set by the user:
       CMAKE_INSTALL_PREFIX is used unchanged.
    If the user does not set CMAKE_INSTALL_PREFIX (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT):
       use CMAKE_CURRENT_SOURCE_DIR/bin for installation.

Standalone build left unchanged: CMAKE_INSTALL_PREFIX is used if set.
2019-10-23 18:54:45 +03:00
Evgeny Mankov b6e6f12b54 [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.
2019-10-22 19:07:37 +03:00
Evgeny Mankov 6f88c81a78 [HIPIFY][#1569] Fix 2019-10-22 11:08:37 +03:00
Evgeny Mankov b08f29a6fa [HIPIFY][perl] Support of 'using namespace cub' 2019-10-21 17:15:05 +03:00
Evgeny Mankov 98874c0e7f [HIPIFY][CUB][#1460] Add "using namespace cub" translation support
+ Add cub_03.cu
2019-10-18 18:51:40 +03:00
Aaron Enye Shi 31e57f8b64 [HIPIFY][cmake] Make CMakeLists use default 3.5.1 for Ubuntu 16.04 2019-10-17 21:21:24 +00:00
Evgeny Mankov 7ecbd71004 [HIPIFY][doc] Update README.md
+ Versions, testing
2019-10-17 22:26:48 +03:00
Evgeny Mankov f19e7c29df [HIPIFY][cmake] Add install rule for clang-resource-headers
+ Fix: set destination for all installing files to ${CMAKE_INSTALL_PREFIX}
2019-10-17 15:05:55 +03:00
Evgeny Mankov edfd05a86d [HIPIFY][CUB][#1460] Add cub:: namespace support in TemplateInstantiation of cudaLaunchKernel
+ Update cub_02.cu test accordingly
2019-10-16 19:02:13 +03:00
Evgeny Mankov 809a67a4f6 [HIPIFY] Refactor a couple of matcher functions
+ Separate out GetSubstrLocation function for finding substr SourceLocation in a given SourceRange
2019-10-16 13:43:56 +03:00
Evgeny Mankov 6960574850 [HIPIFY][CUB][#1460] Implement cubFunctionTemplateDecl matcher
+ Add cub_02.cu test
+ Partial fixes #1460
2019-10-16 13:08:11 +03:00
Evgeny Mankov d57c9a844b [HIPIFY][cmake] Make CMakeLists.txt compatible with default cmake 3.5.2 for Ubuntu 16.04
+ Update README.md accordingly
2019-10-15 11:26:03 +03:00
Evgeny Mankov c0f62157f9 [HIPIFY] HipifyAction code clean-up 2019-10-14 18:08:29 +03:00
Evgeny Mankov 2994fb3429 [HIPIFY][build fix] Add missing new source file 2019-10-14 16:32:57 +03:00
Evgeny Mankov 277d3b8369 [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.
2019-10-14 11:55:55 +03:00
Evgeny Mankov 876af8f381 [HIPIFY][perl] Add "important" notice
# IMPORTANT: Do not change this file manually: it is generated by hipify-clang --perl
2019-10-10 18:25:26 +03:00
Evgeny Mankov 4a4a620389 Merge pull request #1513 from emankov/hipify-clang
[HIPIFY][doc] Add a few words about hipify-perl
2019-10-08 22:30:25 +03:00
Evgeny Mankov de1b81b78a [HIPIFY][doc] Add a few words about hipify-perl
+ Update testing and versions
2019-10-08 22:27:48 +03:00
Evgeny Mankov 3286ffdfc0 [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
2019-10-08 15:58:48 +03:00
Evgeny Mankov 6aa7540be8 [HIPIFY] Sync with HIP
+ Update hipify-perl accordingly
2019-10-07 14:44:05 +03:00
Evgeny Mankov b744ec4548 [HIPIFY] Remove duplicates
+ C++ maps and docs affected, hipify-perl left unchanged
2019-10-07 14:33:04 +03:00
Evgeny Mankov 410f6c4a95 [HIPIFY][SPARSE] sync with hipSPARSE
+ Update doc and hipify-perl accordingly
2019-10-05 15:53:04 +03:00
Evgeny Mankov 6d6258d15e [HIPIFY] CUDA2HIP_Perl code clean-up and formatting
+ Generated hipify-perl is unchanged
2019-10-04 14:31:15 +03:00
ansurya ba9c6e13e4 Added new Memory API's (#1399)
Added new memory API's hipMemAllocPitch, hipMemAllocHost, hipMemsetD16, hipMemsetD16Async, hipMemsetD8Async
Modified to support all scenarios hipMemcpyParam2DAsync, hipMemcpyParam2D.
2019-10-04 13:36:31 +05:30
Evgeny Mankov b3cf982ee7 [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
2019-10-03 16:30:48 +03:00
Evgeny Mankov 6badebd963 [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
2019-10-03 16:00:52 +03:00
Evgeny Mankov 6bb9913e8a [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.
2019-10-02 16:01:07 +03:00
Evgeny Mankov b5f17e8ff0 [HIPIFY][#1490][fix] Populate the list of supported device atomic functions
+ Update hipify-perl accordingly
+ Add atomics.cu test on all atomics
2019-10-01 13:57:46 +03:00
Evgeny Mankov c8f73ea491 [HIPIFY][perl] Generate transformKernelLaunch
+ Update hipify-perl accordingly
+ Minor refactoring
2019-10-01 11:17:27 +03:00
Evgeny Mankov 65964db02c [HIPIFY][perl] Generate transformExternShared function
+ Update hipify-perl accordingly
2019-09-30 17:47:46 +03:00