Gráfico de commits

205 Commits

Autor SHA1 Mensaje Fecha
emankov 5f15b656e0 [HIPIFY][fix][#851] make_absolute only in case of relative path
Otherwise return the input path.


[ROCm/clr commit: 61593291fd]
2019-01-06 17:58:37 +03:00
emankov 32711768a4 [HIPIFY][fix][#849] Create temporary file based on source file name only
[ROCm/clr commit: 50ba722a2d]
2019-01-05 14:52:15 +03:00
emankov a8a2395057 [HIPIFY][fix] Change system includes order
'include/cuda_wrappers' should go first.


[ROCm/clr commit: 158b358c5b]
2018-12-29 22:10:00 +03:00
emankov 4c5a332edc [HIPIFY] Add system includes for packaged hipify-clang to use it without the necessity of installing clang
Header files in those dirs are an integral part of clang, which includes wrapper headers for CUDA.
There is no need in checking those dirs.

[Reasons]
1. clang will not take into account empty or irrelevant include dirs;
2. Packages for different clang versions will have different header files in the above dirs.


[ROCm/clr commit: e9589e3330]
2018-12-29 21:53:18 +03:00
emankov 843f936503 [HIPIFY] Starts implicitly setting '-x cuda' by hipify-clang itself
+ No need in setting '-x cuda' for the user anymore;
+ Testing and Readme updated accordingly.


[ROCm/clr commit: cea1e5a1a6]
2018-12-29 17:04:59 +03:00
emankov 1e3c49e8f2 [HIPIFY][win] Set -std=c++14 if MSVC
+ Due to latest Windows SDK implementation based on c++14 features, '-std+c++14' is a must;
+ Doesn't affect older versions of MSVC 2017, 2015 (the latest supported is MSVC 2015);
+ On linux still '-std=c++11' is a must;
+ Exclude '-std=' from lit config.


[ROCm/clr commit: b24e89b40f]
2018-12-29 15:51:06 +03:00
emankov 725f821629 [HIPIFY] LLVM compatibility
+ sys::fs::make_absolute fro LLVM < 5.0
+ sys::fs::real_path for LLVM >= 5.0


[ROCm/clr commit: 723c58afa4]
2018-12-28 01:34:35 +03:00
emankov 1ff4bf47c6 [HIPIFY] Use sys::fs::createTemporaryFile without file creation
[Reasons]
+ File is opened further by clang
+ There is a regression with LLVM 5.x, when system error occurs: temporary file couldn't be renamed - permission denied.


[ROCm/clr commit: 8f415def6f]
2018-12-27 17:00:18 +03:00
emankov c65d6a9e7a [HIPIFY] Introduce option -o-dir
Option -o-dir for output directory:
  + if not specified source file(s) directory is used;
  + creates the directory if the directory doesn't exist (only one level in a tree);
  + if -o and -o-dir both are specified the hipified file is placed to "-o-dir" + "-o";
  + reports an error in case of a wrong directory specified, in case of necessity of creating a tree of subfolders, or in case of a filename specified.


[ROCm/clr commit: c65338fbf7]
2018-12-26 16:30:41 +03:00
emankov 0056b8ad20 [HIPIFY][#812] Finishing with temps
1. Option -temp-dir for temporary directory:
  + if not specified system temp is used;
  + creates the directory if the directory doesn't exist (only one level in a tree);
  + reports an error in case of a wrong directory specified, in case of necessity of creating a tree of subfolders, or in case of a filename specified.
2. Option -save-temps for preserving temporary files:
  + if specified temporary files are not being deleted from system temps and user temps as well.
3. Work with files in terms of calculated absolute paths by collapsing all '.' and '..' patterns, resolving symlinks and expanding '~' expression to the user's home directory:
  + to produce correct include paths;
  + to avoid possible errors on file routines.


[ROCm/clr commit: 7cac7dbfea]
2018-12-22 00:47:19 +03:00
emankov 369ac7b6f5 [HIPIFY][fix][#824] Fix the bug with -inplace option
+ Do temp file copying instead of renaming
+ Replace all file routine functions with LLVM's
+ Do not output hipified file in case of errors


[ROCm/clr commit: cb598445f5]
2018-12-20 20:43:50 +03:00
emankov 7d9eaec992 [HIPIFY] Add the legal right comment to all the sources
[ROCm/clr commit: 340550cc56]
2018-12-20 18:47:57 +03:00
Evgeny Mankov 47d5d2cfd7 [HIPIFY] Temporary files in system temps introducing
+ Files are not being placed near original source before hipification anymore, system tmp is used for them now.
+ Additional include (-I) to absolute original source dir is added
+ Partially implements #812
+ Tested on windows/linux, single/multiple inputs, with and without includes to user header files


[ROCm/clr commit: 1180928408]
2018-12-17 20:48:48 +03:00
Evgeny Mankov 882620028c [HIPIFY][fix] Fix for the rest of found bugs in Statistics
+ Signs of the converted file are extended
+ Total converted lines and total elapsed time are fixed
+ Zero rates are excluded from statistics


[ROCm/clr commit: 1e30cd3ea7]
2018-12-13 18:35:45 +03:00
Evgeny Mankov d2e478546b [HIPIFY][fix] Fixer for #801
[issue #801] Errors in hipification statistics


[ROCm/clr commit: 8d28db9c8d]
2018-12-12 21:33:00 +03:00
Evgeny Mankov ccad9cbd80 [HIPIFY] Initial support of translation to ROCm
+ Option '-roc' is added to translate to ROCm instead of HIP
+ Update hipification mechanism accordingly
+ Populate all translation maps with additional field for ROCm identifiers
+ There are 4 degrees of CUDA support now: full support, only by HIP, only by ROCm, unsupported


[ROCm/clr commit: 747eb2c11c]
2018-12-06 21:52:54 +03:00
Evgeny Mankov c6efca710f [HIPIFY][SPARSE] Add 3 more CUDA 10.0 tests
+ lit update
+ fix typos


[ROCm/clr commit: a421aff96d]
2018-12-04 19:24:29 +03:00
Evgeny Mankov d3ffb890c0 [HIPIFY][SPARSE] Matrix Reorderings and Format Conversion Reference
+ cuSPARSE is supported up to CUDA 10.0
+ cuSPARSE_08 test (CUDA 10.0)
+ update CUSPARSE_API_supported_by_HIP.md
+ lit: add a rule for CUDA 10.0 tests excluding


[ROCm/clr commit: 424e4c8229]
2018-11-30 15:33:57 +03:00
Evgeny Mankov 1c4d1bf7a6 [HIPIFY][SPARSE] Preconditioners Reference: Tridiagonal and Pentadiagonal solves
+ Tridiagonal Solve, Batched Tridiagonal and Pentadiagonal Solve
+ cuSPARSE_07 test
+ update CUSPARSE_API_supported_by_HIP.md


[ROCm/clr commit: e8054fe485]
2018-11-29 18:46:51 +03:00
Evgeny Mankov 81004dc3ac [HIPIFY][SPARSE] Preconditioners Reference: Incomplete LU Factorization: level 0
+ cuSPARSE_06 test
+ update CUSPARSE_API_supported_by_HIP.md


[ROCm/clr commit: ef99d6dee4]
2018-11-29 15:59:58 +03:00
Evgeny Mankov c0224ff0b9 [HIPIFY][SPARSE] Preconditioners Reference: Incomplete Cholesky Factorization: level 0
+ cuSPARSE_05 test
+ update CUSPARSE_API_supported_by_HIP.md


[ROCm/clr commit: e90373c927]
2018-11-28 20:10:30 +03:00
Evgeny Mankov 239104d125 [HIPIFY][SPARSE] Extra functions
+ cuSPARSE_04 test
+ update CUSPARSE_API_supported_by_HIP.md


[ROCm/clr commit: c75b3c444b]
2018-11-27 12:41:50 +03:00
Evgeny Mankov 8623c6dbf0 [HIPIFY][SPARSE] Level 3 functions
+ cuSPARSE_03 test
+ update CUSPARSE_API_supported_by_HIP.md


[ROCm/clr commit: a384efcecf]
2018-11-27 11:57:25 +03:00
Evgeny Mankov 353b3936f5 [HIPIFY][SPARSE] Helper and Level 1,2 functions
+ 2 cuSPARSE tests
+ update CUSPARSE_API_supported_by_HIP.md


[ROCm/clr commit: a04788ffa7]
2018-11-26 15:11:52 +03:00
Maneesh Gupta f0976b3c37 Merge pull request #748 from mkuron/getsymboladdress
Implement hipGetSymbolAddress and hipGetSymbolSize

[ROCm/clr commit: 40d3184dd1]
2018-11-21 10:32:01 +05:30
emankov 2de86ca8c1 [HIPIFY][SPARSE] Data types support
+ Add all cuSPARSE types
+ Update CUSPARSE_API_supported_by_HIP.md
+ Update README.md


[ROCm/clr commit: 732374233c]
2018-11-21 01:31:02 +03:00
emankov 2a9370f82e [HIPIFY][SPARSE] Initial support
[ROCm/clr commit: f66388bd05]
2018-11-20 17:58:05 +03:00
Michael Kuron 4b77b5c1ba Merge branch 'master' into getsymboladdress
[ROCm/clr commit: e9b88711e2]
2018-11-20 12:03:22 +01:00
Evgeny Mankov eb0d028c9e [HIPIFY] Move Complex API types and functions to separate files
[ROCm/clr commit: d28c89830d]
2018-11-19 21:04:47 +03:00
Evgeny Mankov 506f2f4043 [HIPIFY] CUDA Driver API functions total revise (up to CUDA 10.0)
+ for all CUDA versions
+ add missing types
+ fix typos
+ sync with HIP
+ update CUDA_Driver_API_functions_supported_by_HIP.md
+ formatting, annotating


[ROCm/clr commit: 1472478194]
2018-11-19 20:00:05 +03:00
Evgeny Mankov 1b6421eff6 [HIPIFY][LLVMCompat] support of upcoming LLVM 8.0
+ StringRef issue, which is finally moved to LLVM from Clang
+ Renamed getBeginLoc() and getEndLoc() resolution for Expr and TypeLoc classes
+ Support all the previous LLVM versions via LLVCompat


[ROCm/clr commit: b087a7f275]
2018-11-16 01:23:25 +03:00
Michael Kuron a38366c81e Implement hipGetSymbolAddress and hipGetSymbolSize
[ROCm/clr commit: 0b6f5791f8]
2018-11-04 10:39:34 +01:00
Evgeny Mankov 7b244965b6 [HIPIFY][fix] Fix typo and functions' string arguments
+ Fix typo with missing comma in counterNames array
+ Change std::string argument to const std::string& argument in all functions


[ROCm/clr commit: 48abb4a36b]
2018-11-01 16:57:57 +03:00
Evgeny Mankov 24bd6d2925 [HIPIFY][fix][#739] Fix garbage after replacements
[Issue] https://github.com/ROCm-Developer-Tools/HIP/issues/739
[Resolution] Always use an std::string not a clang::StringRef for replacement

P.S. Occurred only on Linux, on Windows works fine.


[ROCm/clr commit: 2ab8e92195]
2018-10-30 19:35:59 +03:00
Evgeny Mankov 4ae4f1073f [HIPIFY][fix] Return back cudaDeviceProp's struct field warpSize to hipWarpSize mapping.
[ROCm/clr commit: 3489fe9ca1]
2018-10-30 15:53:00 +03:00
Evgeny Mankov 8c98204b9c [HIPIFY] Modify HIP types to conform to CUDA's ones
[ROCm/clr commit: 2af2827a05]
2018-10-29 20:51:25 +03:00
Evgeny Mankov 4e7e8b7704 [HIPIFY] CUDA Runtime API data types total revise
+ for all CUDA versions up to 10.0
+ add missing types
+ fix typos
+ sync with HIP
+ sync with CUDA Driver API
+ update CUDA_Runtime_API_functions_supported_by_HIP.md
+ update CUDA Driver API map accordingly
+ update CUDA_Driver_API_functions_supported_by_HIP.md
+ formatting, annotating


[ROCm/clr commit: 41bc184e90]
2018-10-29 17:13:00 +03:00
Evgeny Mankov 26509d1f68 [HIPIFY] Split CUDA2HIP map into a number of maps based on API type
[Reasons]
+ Simplify the support
+ Optimize compilation and code generation time

[Additionally]
+ Update minimum required version of cmake
+ Fix MSVC compile options force update


[ROCm/clr commit: 75972cb51d]
2018-10-23 00:00:10 +03:00
Evgeny Mankov ff564c763c [HIPIFY] CUDA Driver API data types total revise
+ for all CUDA versions
+ add missing types
+ fix typos
+ sync with HIP
+ update CUDA_Driver_API_functions_supported_by_HIP.md
+ formatting, annotating


[ROCm/clr commit: 865c6f23c7]
2018-10-18 18:50:24 +03:00
Evgeny Mankov a533379e12 [HIPIFY] Code cleanup and formatting
[ROCm/clr commit: 9a1a511c84]
2018-10-15 15:27:37 +03:00
Evgeny Mankov a89c112545 [HIPIFY] CUDA 10.0 Driver API initial support
[ROCm/clr commit: cb4eb94174]
2018-10-03 20:29:22 +03:00
Evgeny Mankov 2a6861aa64 Merge pull request #687 from emankov/hipBLAS
[HIPIFY][BLAS] Add support of hipblasGemmEx and corresponding types

[ROCm/clr commit: d12c1f7eff]
2018-09-25 18:48:06 +03:00
Evgeny Mankov 11dde91716 [HIPIFY][BLAS] Add support of hipblasGemmEx and corresponding types
TODO (hipBLAS/HIP): rename hipblasDatatype_t to hipDataType_t and move it from hipBLAS to HIP, as Data types are used not only in BLAS library.


[ROCm/clr commit: 65035fa485]
2018-09-25 18:46:23 +03:00
Evgeny Mankov dac14d60b7 [HIPIFY][Complex] Add cuComplex support
+ Add API_COMPLEX support (data types and functions)
+ Add cuComplex_API_supported_by_HIP.md
+ Add cuComplex_Julia.cu test
+ Update README.md


[ROCm/clr commit: ce57b99f9d]
2018-08-08 18:34:57 +03:00
Evgeny Mankov 66e24cb0d3 [HIPIFY][FFT] Add cuFFT support
+ Add API_FFT support (data types and functions)
+ Add CUFFT_API_supported_by_HIP.md
+ Add simple_cufft.cu test
+ Update README.md


[ROCm/clr commit: c57bfd50e3]
2018-07-31 22:25:48 +03:00
Evgeny Mankov 351f385ea9 [HIPIFY][BLAS] cuBLAS support revise
+ doc for CUBLAS API supported by HIP
+ 3 tests: 0 & 1 based indexing, sgemm matmul


[ROCm/clr commit: e00cfefd4f]
2018-07-28 21:00:44 +03:00
Evgeny Mankov 23fb9e51f2 [HIPIFY][DNN] cuDNN support revise
+ add doc for CUDDN API supported by HIP
+ cuDNN softMax test


[ROCm/clr commit: 618b1f5171]
2018-07-20 21:00:24 +03:00
Evgeny Mankov 3a45d7016c [HIPIFY] Support of cudaComputeMode / CUcomputemode
+ update docs
+ fix typo in hip_runtime_api.h


[ROCm/clr commit: 4e0d07f07a]
2018-07-14 16:08:19 +03:00
Evgeny Mankov 6e94b0dfa6 [HIPIFY] Current trunk LLVM 7.0 initial support
Tested with CUDA 8.0, 9.0, 9.1 and 9.2.

Only 8.0 works with LLVM 7.0, due to the changes in LLVM trunc since released 6.0, which works fine with CUDA 8.0 and 9.0.

So, nothing to do in hipify-clang, hope that all the CUDA 9.x related issues will be fixed in 7.0 release.


[ROCm/clr commit: b9c15702d2]
2018-07-11 20:15:49 +03:00
Evgeny Mankov ed0cef6002 [HIPIFY] Add DEBUG(X) macro compatibility
In LLVM 7.0 DEBUG(X) was deleted, LLVM_DEBUG(X) should be used instead.


[ROCm/clr commit: 22dffde22e]
2018-07-11 18:21:00 +03:00