Commit Graph

2056 Commits

Author SHA1 Message Date
Alex Voicu 28eb8e2c3e This introduces correct support for agent global variables, and implements hipModuleGetGlobal as an actual equivalent for cuModuleGetGlobal.
[ROCm/hip commit: 328c18b886]
2017-11-03 01:44:48 +00:00
Ben Sander da749d453f Merge pull request #247 from AlexVlx/feature_cleanup_tests
Test cleanup

[ROCm/hip commit: 67dd5303ad]
2017-11-02 11:31:10 +01:00
Alex Voicu b8a81d2b75 This corrects some interesting choices that were present in the HIP
unit tests such as e.g. de-allocating memory allocated with new[] using
free. All of these were identified via cppcheck.


[ROCm/hip commit: a619ac6f92]
2017-11-01 22:51:22 +00:00
Ben Sander 2979a99888 Merge pull request #237 from bensander/use_ctxptr_for_p2p
Use ctxptr for p2p

[ROCm/hip commit: 09d866a639]
2017-11-01 18:55:25 +01:00
Ben Sander 6f3b28d27c Merge pull request #245 from scchan/centos_fixes
various fixes for centos/rhel

[ROCm/hip commit: 86f62accfd]
2017-11-01 18:10:29 +01:00
Siu Chi Chan d938703f9b Centos/RHEL - remove usage of constexpr since libc++ doesn't enable ctor for constexpr pair in C++11
[ROCm/hip commit: 99d32a195f]
2017-10-31 18:16:12 +00:00
Siu Chi Chan b6265074fa use libc++ on centos 7 and rhel 7.4
[ROCm/hip commit: cd6996614f]
2017-10-31 18:14:07 +00:00
Maneesh Gupta e6e90e9cfa Merge pull request #197 from bensander/update_coherency_tests
Update coherency tests

[ROCm/hip commit: f27c2c1715]
2017-10-31 17:26:50 +05:30
Maneesh Gupta 07b52ec043 Merge pull request #241 from ROCm-Developer-Tools/multi_host
Inital codes to remove x86_64 dependency in HIP source build

[ROCm/hip commit: 4d85b6ab29]
2017-10-31 16:35:12 +05:30
Maneesh Gupta b93e9ae1b7 Merge pull request #242 from bensander/time_hip_apis
Add ns-level timer for HIP API routines

[ROCm/hip commit: 7026b73905]
2017-10-31 16:33:46 +05:30
Ben Sander e88ef63bc8 Add ns-level timer for HIP API routines
Refactor some miuses of ihipLogStatus, these should only be in top-level
HIP APIs and should be paired with HIP_API_INIT calls.


[ROCm/hip commit: 7e908bdec8]
2017-10-30 20:20:51 +00:00
Wen-Heng (Jack) Chung afb75b0b2c Inital codes to remove x86_64 dependency in HIP source build
[ROCm/hip commit: 92fb244841]
2017-10-30 15:19:23 -05:00
Ben Sander 51ee7807db Merge pull request #222 from bensander/fix_device_prop
Fix device prop

[ROCm/hip commit: 2e8ec71e40]
2017-10-30 17:58:48 +01:00
Ben Sander ccb8b441a7 Check for null copyEngine before looking at peers.
[ROCm/hip commit: d610f16c47]
2017-10-30 16:58:03 +00:00
Ben Sander 8242c45eda Merge pull request #226 from scchan/add_printf3
add printf to HIP device functions

[ROCm/hip commit: f8843ae415]
2017-10-30 17:08:18 +01:00
Evgeny Mankov 27c5e94c81 [HIPIFY] fix typo - missing )
[ROCm/hip commit: 44c74b6511]
2017-10-27 23:31:43 +03:00
Evgeny Mankov b9a52020b2 Merge pull request #238 from ChrisKitching/statistics
[HIPIFY] Decouple the statistics system from the code rewriter

[ROCm/hip commit: b28a69785b]
2017-10-27 23:17:20 +03:00
Evgeny Mankov 193235bd08 Merge pull request #236 from ChrisKitching/friendlyCmake
[HIPIFY] Make the cmake build system more friendly

[ROCm/hip commit: c9b7c43e1c]
2017-10-27 22:35:13 +03:00
Chris Kitching 54f786583b Remove commented else-block
A warning statement for _string literals_ seems a bit unhelpful.
There's no value in this being here.


[ROCm/hip commit: 20871a3a07]
2017-10-27 20:12:33 +01:00
Chris Kitching 05699e3779 Decouple the statistics system from the code translation
The original implementation had the statistics system woken very
tightly into things like PPCallbacks, with counters duplicated
in two places, and all the output code duplicated. This made it
very difficult to alter the structure of the program without
breaking the statistics system.

Since the planned approach for solving the remaining preprocessor
bugs needs the introduction of a custom FrontendAction, and such
a restructure was incompatible with the way the statistics system
was set up, this rewrite was required.

'tis rather simpler now, mind you :D

This commit also fixes an issue where some stats were counted
twice, and allows `-print-stats` to operate independently of
`-stat-output`, allowing you to print stats to a file without
printing them to a terminal (or vice-versa).


[ROCm/hip commit: b303ffe53e]
2017-10-27 20:12:33 +01:00
Chris Kitching 1454bf9651 Copy-paste less in the statistics printing code
[ROCm/hip commit: 5699c18adc]
2017-10-27 20:12:33 +01:00
Chris Kitching e4569bc84e Inline updateCountersExt
[ROCm/hip commit: 50448aec3b]
2017-10-27 20:12:32 +01:00
Chris Kitching a3c1d30745 Update counter maps sanely
operator[] default-constructs the map value if no value exists
for that key. Default-construction of int yields a zero. So all
the manual faffing around is just unnecessary.


[ROCm/hip commit: d8beee8918]
2017-10-27 20:12:32 +01:00
Chris Kitching 51df5b20c9 Prefer references to pointers in updateCountersExt()
[ROCm/hip commit: 00bb447e55]
2017-10-27 20:12:32 +01:00
Chris Kitching 25517e41fd Move string utility functions into their own translation unit
[ROCm/hip commit: ee8e11a720]
2017-10-27 20:12:32 +01:00
Chris Kitching 85fd2e6f51 Extract LLVM compatibility code into its own translation unit
[ROCm/hip commit: 1bd837b4b1]
2017-10-27 20:12:32 +01:00
Chris Kitching 389fa2e68e Remove unused field
[ROCm/hip commit: 0c09bdf523]
2017-10-27 20:12:32 +01:00
Chris Kitching 48e7403762 Remove CUDA_EXCLUDES
An artefact from a now-defunct hack to avoid corrupting programs


[ROCm/hip commit: c6707ef33c]
2017-10-27 20:12:32 +01:00
Chris Kitching 199d75adc0 Make unsupported actually be a bool...
[ROCm/hip commit: 2f376c9b25]
2017-10-27 20:12:31 +01:00
Chris Kitching 2285482075 Describe the LLVM we found
[ROCm/hip commit: 69e67fe25a]
2017-10-27 19:39:41 +01:00
Chris Kitching 7a0eedabbe Update hipify-clang readme for simplified build process
[ROCm/hip commit: 82d05ee6f4]
2017-10-27 19:39:41 +01:00
Chris Kitching e3338fe5a4 hipify does not add the hipLaunchParm option any more
This was removed a while ago - seems like it uses a different
variant of the launch kernel function now, so this is redundant.


[ROCm/hip commit: b412802c66]
2017-10-27 19:39:41 +01:00
Chris Kitching fd656a0fbb Use cmake's builtin mechanism for handling library locations
See [the documentation](https://cmake.org/cmake/help/v3.0/command/find_package.html)
for exactly how the search procedure works. If you want to use an
LLVM from a specific location, use CMAKE_PREFIX_PATH as normal.

No longer do we have a nonstandard HIPIFY_CLANG_LLVM_DIR variable
for people to learn about.


[ROCm/hip commit: 8fefc6a2b7]
2017-10-27 19:39:40 +01:00
Chris Kitching 1461c69757 Move the "LLVM found" print adjacent to the find_package call
Very surprising that LLVM's finder module doesn't print this
itself like _literally every other finder module_. Blarg.


[ROCm/hip commit: 92c90a7068]
2017-10-27 19:39:40 +01:00
Chris Kitching cc1bc495a0 We no longer rely on HIPIFY_CLANG_LLVM_DIR to disable hipify-clang
Since there's now an option for toggling hipify-clang, omitting the
path is no longer something we need to check for. We'll still
abort if LLVM isn't found, due to `REQUIRED`.


[ROCm/hip commit: c60c8d417e]
2017-10-27 19:39:40 +01:00
Chris Kitching d92f3c8d76 Don't attempt to find test dependencies if tests are disabled
And while we're at it, introduce a handy program-finder macro


[ROCm/hip commit: 921ff4c8a3]
2017-10-27 19:39:40 +01:00
Chris Kitching b61c4a241f Use add_dependencies to avoid duplication of pkg_hip_base
[ROCm/hip commit: 56b4222043]
2017-10-27 19:39:40 +01:00
Chris Kitching 7947e406c7 Make BUILD_HIPIFY_CLANG a cmake option
Instead of deciding whether to build hipify-clang based on
the presence of an LLVM path on the command line, have an
explicit option.

Do we want this default-on or default-off? I've defaulted it to
on for now, but maybe we want the opposite?


[ROCm/hip commit: a4ecd4eb31]
2017-10-27 19:39:39 +01:00
Evgeny Mankov a9c3228cb1 Merge pull request #234 from ChrisKitching/warningSpam
[HIPIFY] Do not process __fetch_builtin_* in cudaCall()

[ROCm/hip commit: 9151a355c6]
2017-10-27 21:30:42 +03:00
Evgeny Mankov aead033e41 Merge pull request #235 from ChrisKitching/preprocessorEnhancements
[HIPIFY] Handle unconditional preprocessor directives far better

[ROCm/hip commit: a865ebfe10]
2017-10-27 21:21:20 +03:00
Siu Chi Chan 6cc7f10e84 Merge remote-tracking branch 'origin/master' into HEAD
[ROCm/hip commit: a9789ddcda]
2017-10-27 01:18:28 -04:00
Ben Sander ad9a636b90 Merge pull request #198 from AlexVlx/feature_support_globals_for_module_api
Feature support globals for module api

[ROCm/hip commit: f288f24e95]
2017-10-27 01:53:34 +02:00
Ben Sander 37bd264cd4 Merge pull request #218 from ChrisKitching/nodiscard
Add [[nodiscard]] attribute to hipError_t in C++17 mode

[ROCm/hip commit: e97f675397]
2017-10-26 22:48:54 +02:00
Ben Sander c8fc8122b9 Merge pull request #223 from bensander/2x_bidir
Use 2X for bidir memory bandwidth calc

[ROCm/hip commit: 772fe865fc]
2017-10-26 21:49:06 +02:00
Ben Sander d7153f792d Fix bug with peer-to-peer combined with context API
- Store context inside the tracker rather than using int deviceID that
  was always mapped to primary context
- IsPeerWatcher now based on device IDs rather than specific peers.


[ROCm/hip commit: 7d30f32332]
2017-10-26 19:44:22 +00:00
Aditya Atluri 3ddd48ab86 Enhance debug for copy pointers
- show more pointer tracking fields
- show pointer info before and after "tailoring'


[ROCm/hip commit: 5d646d0fe3]
2017-10-26 19:44:22 +00:00
Chris Kitching c15f6bdf5c Greatly enhance handling of macros in kernel launches
All but the most contrived use of macros is now properly handled -
have a look at the new testcases this commit adds. You can have
macros in kernel calls, macros spanning chunks of your arguments,
the call, call parameters, or callee can all be macros or
partially macros.


[ROCm/hip commit: 094b2b9b05]
2017-10-26 17:28:46 +01:00
Chris Kitching d0acfd5bde Simplify how kernel launch expressions get translated
It seems like there was a lot of machinery here that is no longer
needed now we have hipLaunchKernelGGL (which doesn't require us
to insert an extra argument into kernel functions). We no longer
need to waste cycles scanning the AST for callees.

We can literally just do "Take the callee expression, and dump
it into the first argument of hipLaunchKernelGGL()".


[ROCm/hip commit: eff86d975b]
2017-10-26 17:28:30 +01:00
Chris Kitching 59713c2459 Deduplicate preprocessor code
There's three functions here that all do the same thing...

There was also logic that looks for numeric literals and works
backwards to find the macro name from which they are expanded.
I previously introduced code that rewrites macro references at
expand-time in the `MacroExpands` callback, so that code is no
longer doing anything useful.


[ROCm/hip commit: fd911e1839]
2017-10-26 17:28:30 +01:00
Chris Kitching ca913bb196 Rewrite _all_ CUDA macro identifiers in the preprocessor
Calls to macros that were themselves CUDA API calls were often
being missed - this applies the identifier transform to macro
names at the callsites, too.


[ROCm/hip commit: d1e26b2e7e]
2017-10-26 17:27:56 +01:00