Commit Graph

2938 Commits

Author SHA1 Message Date
Evgeny Mankov 558894ab06 [HIPIFY][cmake][win] Add cmake versioning depending on Visual Studio version 2019-01-09 16:44:12 +03:00
Evgeny Mankov 5dba4e74cb Merge branch 'master' of https://github.com/ROCm-Developer-Tools/HIP 2019-01-09 14:03:40 +03:00
Evgeny Mankov d160c7285c [HIPIFY][cmake] Add cmake versioning depending on CUDA version 2019-01-09 13:59:48 +03:00
Wen-Heng (Jack) Chung 6e68d44220 Introduce hash key to HIP module implementation
A hash calculated via FNV-1a algorithm is introduced in ihipModule_t, the
internal of hipModule_t. The hash is used by HIP module APIs such as

- read_agent_global_from_module

to determine whether the agent-scope globals for a module have been iterated.

This commit fixes one issue that applications which load / unload modules
frequently would occasionally fail. After deep investigation of the issue it
turns out the old implementation in read_agent_global_from_module uses
hipModule_t as the key, which is not robust enough, as hipModule_t instances
are allocated dynamically so there are cases that one memory address may be
used by multiple hipModule_t instances. The real solution is to introduce a
uniquely identifiable hash for the code object associated with the HIP module.
And that's the rationale behind this commit.
2019-01-08 17:33:40 +00:00
Maneesh Gupta cf7dc26851 Merge pull request #845 from mangupta/cleanup-install-markdown
Update INSTALL.md
2019-01-07 10:04:36 +05:30
Maneesh Gupta 03e1058666 Merge pull request #701 from ssahasra/stream-tests
introduce tests for asynchronous streams
2019-01-07 10:04:29 +05:30
Maneesh Gupta 79251fc4e2 Update hipAsynchronousStreams.cpp
This test needs to be excluded from nvcc platform
2019-01-07 09:26:21 +05:30
emankov 61593291fd [HIPIFY][fix][#851] make_absolute only in case of relative path
Otherwise return the input path.
2019-01-06 17:58:37 +03:00
emankov 50ba722a2d [HIPIFY][fix][#849] Create temporary file based on source file name only 2019-01-05 14:52:15 +03:00
emankov 728fb14ab9 [HIPIFY][cmake] Change min supported version of cmake to 3.12.3
[Reason]
CUDA 10 is supported by cmake since 3.12.3.
2019-01-04 19:10:11 +03:00
emankov 207bbad778 [HIPIFY][cmake][win] check for Visual Studio version
hipify-clang could be built by Visual Studio 14 2015 or higher.

[Reason]
hipify-clang contains c++14 features which are not supported even by the latest VS 2013 and the Platform Toolset "Visual C++ Compiler Nov 2013 CTP".
2019-01-04 18:52:28 +03:00
Sameer Sahasrabuddhe 39574dba4c introduce test for asynchronous streams
This test is identical to the HCC tests under
tests/Unit/OCKL/AsyncStreams, but only for synchronous operation.
2019-01-04 05:51:50 -05:00
Maneesh Gupta 92a556c20a Update INSTALL.md
- Improved install instructions for AMD-hcc and NVIDIA-nvcc.
- Removed redundant section related to HCC-Native-GCN-ISA.

Change-Id: I33a9e71d95df51dbdcade4a48834840146bdbe6f
2019-01-04 11:04:47 +05:30
emankov 9808b22864 [HIPIFY][tests] CUDA 7.0 is also supported
+ Exclude 1 test for CUDA 7.0
+ Update README.md
2019-01-04 01:32:30 +03:00
emankov 852bc8d545 [HIPIFY][tests] Exclude CUDA 8.0 (9.0) tests if CUDA < 8.0 (9.0) 2019-01-03 18:06:49 +03:00
emankov 410f8f0b92 [HIPIFY][tests] Reduce cudaRegister.cu test 2019-01-03 17:17:21 +03:00
Alex Voicu 3470692998 Hook into the creaky lazy-reinit machinery. Try to minimise race-risk. 2019-01-01 11:01:16 +05:30
Alex Voicu b2f76123b1 More blobs, more problems. 2019-01-01 11:01:07 +05:30
Alex Voicu 3e8f198b58 Start re-working 731 for 2.0. 2019-01-01 11:00:57 +05:30
Maneesh Gupta aa932d542a Merge pull request #818 from yxsamliu/fix-hip-config
Add default arguments for hipConfigureCall
2019-01-01 10:25:25 +05:30
Yaxun Sam Liu 57d1f6e6cb Use __dparm for default parameter 2018-12-31 13:07:19 -05:00
Maneesh Gupta 7647bdb664 Merge pull request #821 from gargrahul/remove_redundancy_memset3d_test
[dtest] Remove redundant arguments from hipMemset3D test
2018-12-31 15:32:19 +05:30
emankov 158b358c5b [HIPIFY][fix] Change system includes order
'include/cuda_wrappers' should go first.
2018-12-29 22:10:00 +03:00
emankov e9589e3330 [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.
2018-12-29 21:53:18 +03:00
emankov 6f6228cf36 [HIPIFY] Get rid of setting '--cuda-gpu-arch='
[Reasons]
+ We don't compile kernel code at least for now as HIP kernel syntax is almost equal CUDA's;
+ clang always includes PTX in its binaries, so e.g. a binary compiled with --cuda-gpu-arch= would be forwards-compatible with e.g. sm_35 GPUs.
2018-12-29 19:48:28 +03:00
emankov cea1e5a1a6 [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.
2018-12-29 17:04:59 +03:00
emankov b24e89b40f [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.
2018-12-29 15:51:06 +03:00
Evgeny Mankov 323e22e5fc Merge pull request #834 from emankov/master
[HIPIFY] LLVM compatibility
2018-12-28 15:13:36 +03:00
Maneesh Gupta 61e0546120 [ci] Remove ROCm 1.9.x from test infrastructure
Change-Id: I58cce7c60f6def22f337bbe15fab2620419e202b
2018-12-28 11:23:52 +05:30
emankov 723c58afa4 [HIPIFY] LLVM compatibility
+ sys::fs::make_absolute fro LLVM < 5.0
+ sys::fs::real_path for LLVM >= 5.0
2018-12-28 01:34:35 +03:00
emankov 8f415def6f [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.
2018-12-27 17:00:18 +03:00
Maneesh Gupta 274db66ff2 Merge pull request #817 from aaronenyeshi/fix-rn-intrinsics
Add *_rn functions back into HIP intrinsics
2018-12-27 16:07:27 +05:30
emankov c65338fbf7 [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.
2018-12-26 16:30:41 +03:00
emankov 7cac7dbfea [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.
2018-12-22 00:47:19 +03:00
emankov cb598445f5 [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
2018-12-20 20:43:50 +03:00
emankov 340550cc56 [HIPIFY] Add the legal right comment to all the sources 2018-12-20 18:47:57 +03:00
Rahul Garg 10d2a9a269 Remove redundant arguments from hipMemset3D test 2018-12-20 06:51:22 +05:30
Yaxun Sam Liu 02deeadaa4 Add default arguments for hipConfigureCall 2018-12-18 15:48:21 -05:00
Aaron Enye Shi 2d50392c17 Add *_rn functions back into HIP intrinsics
Add back the round-to-nearest-even intrinsics back to HIP math
intrinsics as it caused regression.
2018-12-18 19:31:54 +00:00
Evgeny Mankov 1180928408 [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
2018-12-17 20:48:48 +03:00
Evgeny Mankov 1e30cd3ea7 [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
2018-12-13 18:35:45 +03:00
Evgeny Mankov 8d28db9c8d [HIPIFY][fix] Fixer for #801
[issue #801] Errors in hipification statistics
2018-12-12 21:33:00 +03:00
Evgeny Mankov 80d5861d78 Merge pull request #800 from emankov/master
[HIPIFY][tests][fix] Add correct CUDA version detection while testing
2018-12-12 18:30:03 +03:00
Evgeny Mankov a5c66018b6 [HIPIFY][tests][fix] Add correct CUDA version detection while testing
+ Just do load_config for lit.site.cfg earlier in lit.cfg to get initialized cuda_version
+ Remove lit.cfg.in for CMake variables substitution
+ Return back lit.cfg
+ Exclude CUDA 9.0 tests if CUDA < 9.0
+ Report CUDA version before running tests
2018-12-12 17:05:01 +03:00
Maneesh Gupta a778f7cdf7 Merge pull request #797 from gargrahul/fixhipPointerGetAttributes
Fixed hipPointerGetAttributes for hostmalloced ptr
2018-12-12 10:16:07 +05:30
Maneesh Gupta 6ce99b066c Merge pull request #608 from gargrahul/add_pinned_2d_sdma_copy
Added support for pinned 2D SDMA copy
2018-12-12 07:44:16 +05:30
Evgeny Mankov 2b01f1eb6f [HIPIFY][tests][fix] Add correct CUDA version detection while testing
+ Add lit.cfg.in for CMake variables substitution to now generated lit.cfg
+ Exclude lit.cfg
+ Exclude CUDA 9.0 tests if CUDA < 9.0
+ Report CUDA version before running tests
2018-12-11 22:03:11 +03:00
Rahul Garg 77fd517e09 Fixed hipPointerGetAttributes for hostmalloced ptr 2018-12-08 01:42:08 +05:30
Evgeny Mankov 747eb2c11c [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
2018-12-06 21:52:54 +03:00
Evgeny Mankov b76cf94562 [HIPIFY][tests] Reorganization 2018-12-04 20:47:34 +03:00