Commit Graph

261 Commits

Author SHA1 Message Date
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 8eb7d53cec [HIPIFY][fix] Fix for upcoming LLVM 10.0 2019-09-01 18:15:03 +03:00
Evgeny Mankov a0a98790f0 [HIPIFY][DNN] cuDNN 7.6.3 support 2019-08-29 19:55:38 +03: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
Evgeny Mankov 3d07393003 [HIPIFY][fix] Set the correct exit value for hipify-clang if errors.
This fixes a hanging of unit tests.
2019-08-21 21:36:53 +03:00
Evgeny Mankov 8293f9a706 [HIPIFY] CUDA 10.1 Update 2 support 2019-08-21 21:06:20 +03: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 79de17dc84 [HIPIFY][Driver API] Add support for hipFuncGetAttribute() and enum hipFunction_attribute 2019-08-13 16:48:07 +03:00
Evgeny Mankov b9deceab05 [HIPIFY] Add cuMemcpy2DAsync -> hipMemcpyParam2DAsync mapping 2019-08-13 16:31:19 +03:00
Evgeny Mankov af557aaaf6 [HIPIFY] Cooperative groups support 2019-08-12 19:20:13 +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
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
Evgeny Mankov b149219167 [HIP][doc] Populate CUDA Runtime API doc with CUDA version field
+ CUDA version - version in which API has appeared and (optional) last version before abandoning it; no value in case of earlier versions < 7.5.
+ Fix typos, add missing references.
2019-07-31 22:59:05 +03:00
Evgeny Mankov ec755e0005 [HIPIFY][SPARSE] Sync cuSPARSE 10.1 - HIP - HIPIFY (Step 2 of 2)
+ Add undocumented but presented in cusparse.h functions since CUDA 10.1 Update 1
2019-07-29 21:12:35 +03:00
Evgeny Mankov ea02797cc7 [HIPIFY][SPARSE] Sync cuSPARSE 10.1 - HIP - HIPIFY (Step 1 of 2) 2019-07-26 21:34:36 +03:00
Evgeny Mankov e145850f26 [HIPIFY][SPARSE][doc] Populate cuSPARSE API doc with CUDA version field
+ CUDA version - version in which API has appeared and (optional) last version before abandoning it; no value in case of earlier versions < 7.5.
+ Fix typos
2019-07-26 19:05:42 +03:00
Evgeny Mankov 6d61e02acb [HIPIFY][#1239] Fix an assert 2019-07-22 22:13:54 +03:00
Evgeny Mankov 14aad50e07 [HIPIFY][#941][fix] Workaround for an assert on forbidden option "--"
+ Fixes the following assert in debug version:
Assertion failed: (S.empty() || S[0] != '-') && "Option can't start with '-", file C:\GIT\LLVM\trunk-for-submits\llvm-project\llvm\lib\Support\CommandLine.cpp, line 440
+ DashDash option left declared in order to be listed in help.
2019-07-19 20:23:17 +03: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
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
Evgeny Mankov 13788368ea [HIPIFY][#1221] Add regex replacements for include refs with path separators while generating hipify-perl 2019-07-12 16:18:00 +03: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
Evgeny Mankov 60a9143d6d [HIPIFY] Statistics to CSV file dumping revise
+ Add option -print-stats-csv to dump statistics to CSV file
+ If -o-dir is specified, CSV file will be dumped there
+ Generate 1 summary file sum_stat.csv in case of multiple sources
2019-07-07 20:55:17 +03:00
Evgeny Mankov 266cf3cf96 [HIPIFY] Fix multiple input files support
Reported in #1168
2019-06-20 18:05:57 +03:00
Evgeny Mankov b312ac8f61 [HIPIFY][DNN] Support of cuDNN 7.6.0
+ Update docs and README.md accordingly
2019-05-27 21:44:53 +03:00
Evgeny Mankov c1ac414f14 [HIPIFY][LLVMCompat] Support of upcoming LLVM 9.0.0 2019-05-24 15:14:14 +03:00
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
Evgeny Mankov 9cb3e9aa5e [HIP][HIPIFY] Make hipMemcpyParam2D coherent with cuMemcpy2D
+ Makes hip_Memcpy2D struct compatible with CUDA_MEMCPY2D struct
+ Add hipMemcpyParam2D support in nvcc fallback path
+ Update hipify-clang, tests and docs accordingly
2019-05-22 18:31:39 +03:00
Evgeny Mankov 02f8dfe7d8 [HIPIFY][cuDNN] Add cudnnGetFilter4dDescriptor support
+ Update cudnn_convolution_forward test accordingly
2019-05-16 16:36:23 +03:00
Evgeny Mankov bf65120156 [HIPIFY][fix][#1109] Do not preserve extern __shared__ for IncompleteArrayType
+ Update tests accordingly
2019-05-15 20:05:56 +03:00
Evgeny Mankov 5e49c25faa [HIPIFY][tests] Add reverse engineered HIP sample Profiler
+ Add missing cuda_profiler_api.h to hip/hip_profile.h transformation.
NOTE: HIP Profiler API is under development. This is NOT WORKING example.
TODO: Find out a way to generate HIP_SCOPED_MARKER, HIP_BEGIN_MARKER, HIP_END_MARKER, declared in hip/hip_profile.h in particular place (signatures are to obtain).
2019-05-14 16:43:44 +03:00
Evgeny Mankov 0f4affde9c [HIPIFY][python] Initial support of hipify-python generation from hipify-clang
+ Only a generation of transformation map of CUDA entities is implemented.
+ 2 hipify-clang options are added: -python, -o-python-map-dir.
+ Explicitly set -roc option for cuda_to_hip_mappings.py generation.
+ Generated file already might be used by pytorch team.
2019-05-08 19:08:55 +03:00
Evgeny Mankov 82efa64f55 [HIPIFY][perl] Support of hipify-perl generation from hipify-clang: next steps
+ Generate transformation map sorted by entity type.
+ Add a generation of supported header files.
2019-05-08 15:25:06 +03:00
Evgeny Mankov 849155d865 [HIPIFY][perl] Initial support of hipify-perl generation from hipify-clang
+ Only a generation of transformation map of CUDA entities supported by HIP is implemented.
+ 3 hipify-clang options are added: -perl, -o-perl-map, -o-perl-map-dir.
+ OptionsParser mode is changed from OneOrMore to Optional to support hipify-perl generation without actual hipification.
+ Add explicit control of source files specification absence in case of no perl generation.
2019-05-07 17:27:34 +03:00
Evgeny Mankov 72a809caf6 [HIPIFY][DNN] cudnnSetFilter4dDescriptor support 2019-04-25 12:18:51 +03:00
Evgeny Mankov df9418c3cd [HIPIFY][fix][#204] Suppress warning message: #pragma once in main file 2019-04-24 20:35:52 +03:00
Evgeny Mankov 95aca4f9a9 [HIPIFY][SPARSE] cuSPARSE 10.1 support 2019-04-16 14:59:44 +03:00
Evgeny Mankov bbcacd0146 [HIPIFY][BLAS] cuBLAS 10.1 support 2019-04-16 12:52:58 +03:00
Evgeny Mankov 5fa84735a6 [HIPIFY][cuDNN] Add partial cudnnRNNBiasMode_t support 2019-04-16 11:01:01 +03:00
Evgeny Mankov 64f0f29111 [HIPIFY] cuDNN 7.5.0.56 support 2019-04-15 15:46:46 +03:00
Evgeny Mankov b11bf48270 [HIPIFY] CUDA 10.1 Runtime API support 2019-04-10 18:41:36 +03:00
Evgeny Mankov 9a660c0d48 [HIPIFY] CUDA 10.1 Driver API support 2019-04-10 15:03:34 +03:00
Evgeny Mankov dfc631fb44 [HIPIFY] Change CUDA Driver's functions' cuMemsetD32(Async) mapping
cuMemsetD32(Async) -> hipMemsetD32(Async) (was hipMemset(Async))

based on:
[#933] https://github.com/ROCm-Developer-Tools/HIP/pull/933
2019-03-05 18:13:18 +03:00
Evgeny Mankov 59533a7309 [HIPIFY][Caffe2] Initial Caffe2 support 2019-02-23 20:46:22 +03:00
Evgeny Mankov b22c0de428 [HIPIFY][DNN] Revise and sync with CUDNN 10 and hipDNN
+ CUDNN_API_supported_by_HIP.md update
+ CUDA_Runtime_API_functions_supported_by_HIP.md update
+ libraryPropertyType_t is moved to Runtime
+ test update
2019-02-13 19:40:59 +03:00
Evgeny Mankov d1ea9d9d97 [HIPIFY][RAND] revise
+ add missing functions
+ add minimum rocRAND support
+ updated CURAND_API_supported_by_HIP.md
2019-02-08 17:54:28 +03:00
Evgeny Mankov 6160cff6ff [HIPIFY][BLAS] Restrict hipification to 'ROC' to BLAS library only
+ Add utility functions isToRoc, isHipUnsupported, isRocUnsupported, isUnsupported
2019-02-07 13:17:05 +03:00
Evgeny Mankov eea0df8d62 [HIPIFY][BLAS] Support of hipifying cuBLAS to rocBLAS 2019-02-06 18:47:21 +03:00
Evgeny Mankov 218a8109bb [HIPIFY] Introduce Verbose '-v' option as hipify's own 2019-01-30 15:19:06 +03:00
Evgeny Mankov 229b34fc79 [HIPIFY] CUDA Runtime API functions total revise (up to CUDA 10.0)
+ for all CUDA versions starting from 7.0
+ add missing functions
+ sync with HIP
+ update CUDA_Runtime_API_functions_supported_by_HIP.md
+ update affected tests
+ fix typos
+ formatting, annotating
2019-01-24 14:05:36 +03:00