Alex Voicu
2932706d47
Merge remote-tracking branch 'origin/master' into feature_use_module_based_dispatch_instead_of_pfe
2017-11-03 10:57:12 +00:00
Alex Voicu
bb1176001f
Merge remote-tracking branch 'origin/master' into feature_use_module_based_dispatch_instead_of_pfe
...
# Conflicts:
# src/hip_module.cpp
2017-11-03 10:53:39 +00:00
Maneesh Gupta
d90d431490
Merge pull request #248 from mangupta/SWDEV-134531
...
Remove libsupc++ dependency from HIP
2017-11-03 08:01:59 +05:30
Ben Sander
67dd5303ad
Merge pull request #247 from AlexVlx/feature_cleanup_tests
...
Test cleanup
2017-11-02 11:31:10 +01:00
Maneesh Gupta
f34f5c8684
Remove libsupc++ dependency from HIP
...
Change-Id: Ib843f99dfb3057b7c28029250c2449732ea7f17f
2017-11-02 12:29:09 +05:30
Alex Voicu
a619ac6f92
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.
2017-11-01 22:51:22 +00:00
Alex Voicu
2cacda91bb
Correctly deal with functions from shared objects, wherein the program visible VA == so_base_va + st_value(function_symbol). Remove quaint usage of pfe for hipMemset (which is actually fill_n).
2017-11-01 22:33:13 +00:00
Ben Sander
09d866a639
Merge pull request #237 from bensander/use_ctxptr_for_p2p
...
Use ctxptr for p2p
2017-11-01 18:55:25 +01:00
Ben Sander
86f62accfd
Merge pull request #245 from scchan/centos_fixes
...
various fixes for centos/rhel
2017-11-01 18:10:29 +01:00
Alex Voicu
c2482d1255
This switches HIP from its currently convoluted macro + pfe based dispatch mechanism to a more natural one partially based on the existing module API. The basic idea is that HCC will always correctly emit __global__ functions: as empty-bodied stubs, on host, and as kernels, on device. It then becomes trivial to obtain the mangled name on host, at dispatch, from the function's address, and then to use the mangled name to retrieve the kernel. This should address all problems stemming from serialisation, dubious mismatches due to the manufactured functor, macro-isms et al. It also immediately enables support for generalised globals as a consequence of that being available in the module API. Finally, it will make debug much easier, since the actual names of the __global__ functions will automatically be used in traces etc. One detail is that due to how dispatch works now (hipLaunchKernel and hipLaunchKernelGGL are themselves variadic function templates which deduce the function type of the callee), in certain cases it may be necesssary to insert explicit casts to ensure that the variadic argument list selects a viable overload - this can be observed in some unit tests. Eventually we may be able to remove this limitation, but for now it does not appear terribly onerous. The code is not extremely HIPpie, nor is it fully optimised, but rather is intended as a starting point for the HIP team to make its own.
2017-11-01 15:09:59 +00:00
Siu Chi Chan
99d32a195f
Centos/RHEL - remove usage of constexpr since libc++ doesn't enable ctor for constexpr pair in C++11
2017-10-31 18:16:12 +00:00
Siu Chi Chan
cd6996614f
use libc++ on centos 7 and rhel 7.4
2017-10-31 18:14:07 +00:00
Maneesh Gupta
f27c2c1715
Merge pull request #197 from bensander/update_coherency_tests
...
Update coherency tests
2017-10-31 17:26:50 +05:30
Maneesh Gupta
4d85b6ab29
Merge pull request #241 from ROCm-Developer-Tools/multi_host
...
Inital codes to remove x86_64 dependency in HIP source build
2017-10-31 16:35:12 +05:30
Maneesh Gupta
7026b73905
Merge pull request #242 from bensander/time_hip_apis
...
Add ns-level timer for HIP API routines
2017-10-31 16:33:46 +05:30
Ben Sander
7e908bdec8
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.
2017-10-30 20:20:51 +00:00
Wen-Heng (Jack) Chung
92fb244841
Inital codes to remove x86_64 dependency in HIP source build
2017-10-30 15:19:23 -05:00
Ben Sander
2e8ec71e40
Merge pull request #222 from bensander/fix_device_prop
...
Fix device prop
2017-10-30 17:58:48 +01:00
Ben Sander
d610f16c47
Check for null copyEngine before looking at peers.
2017-10-30 16:58:03 +00:00
Ben Sander
f8843ae415
Merge pull request #226 from scchan/add_printf3
...
add printf to HIP device functions
2017-10-30 17:08:18 +01:00
Evgeny Mankov
44c74b6511
[HIPIFY] fix typo - missing )
2017-10-27 23:31:43 +03:00
Evgeny Mankov
b28a69785b
Merge pull request #238 from ChrisKitching/statistics
...
[HIPIFY] Decouple the statistics system from the code rewriter
2017-10-27 23:17:20 +03:00
Evgeny Mankov
c9b7c43e1c
Merge pull request #236 from ChrisKitching/friendlyCmake
...
[HIPIFY] Make the cmake build system more friendly
2017-10-27 22:35:13 +03:00
Chris Kitching
20871a3a07
Remove commented else-block
...
A warning statement for _string literals_ seems a bit unhelpful.
There's no value in this being here.
2017-10-27 20:12:33 +01:00
Chris Kitching
b303ffe53e
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).
2017-10-27 20:12:33 +01:00
Chris Kitching
5699c18adc
Copy-paste less in the statistics printing code
2017-10-27 20:12:33 +01:00
Chris Kitching
50448aec3b
Inline updateCountersExt
2017-10-27 20:12:32 +01:00
Chris Kitching
d8beee8918
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.
2017-10-27 20:12:32 +01:00
Chris Kitching
00bb447e55
Prefer references to pointers in updateCountersExt()
2017-10-27 20:12:32 +01:00
Chris Kitching
ee8e11a720
Move string utility functions into their own translation unit
2017-10-27 20:12:32 +01:00
Chris Kitching
1bd837b4b1
Extract LLVM compatibility code into its own translation unit
2017-10-27 20:12:32 +01:00
Chris Kitching
0c09bdf523
Remove unused field
2017-10-27 20:12:32 +01:00
Chris Kitching
c6707ef33c
Remove CUDA_EXCLUDES
...
An artefact from a now-defunct hack to avoid corrupting programs
2017-10-27 20:12:32 +01:00
Chris Kitching
2f376c9b25
Make unsupported actually be a bool...
2017-10-27 20:12:31 +01:00
Chris Kitching
69e67fe25a
Describe the LLVM we found
2017-10-27 19:39:41 +01:00
Chris Kitching
82d05ee6f4
Update hipify-clang readme for simplified build process
2017-10-27 19:39:41 +01:00
Chris Kitching
b412802c66
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.
2017-10-27 19:39:41 +01:00
Chris Kitching
8fefc6a2b7
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.
2017-10-27 19:39:40 +01:00
Chris Kitching
92c90a7068
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.
2017-10-27 19:39:40 +01:00
Chris Kitching
c60c8d417e
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`.
2017-10-27 19:39:40 +01:00
Chris Kitching
921ff4c8a3
Don't attempt to find test dependencies if tests are disabled
...
And while we're at it, introduce a handy program-finder macro
2017-10-27 19:39:40 +01:00
Chris Kitching
56b4222043
Use add_dependencies to avoid duplication of pkg_hip_base
2017-10-27 19:39:40 +01:00
Chris Kitching
a4ecd4eb31
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?
2017-10-27 19:39:39 +01:00
Evgeny Mankov
9151a355c6
Merge pull request #234 from ChrisKitching/warningSpam
...
[HIPIFY] Do not process __fetch_builtin_* in cudaCall()
2017-10-27 21:30:42 +03:00
Evgeny Mankov
a865ebfe10
Merge pull request #235 from ChrisKitching/preprocessorEnhancements
...
[HIPIFY] Handle unconditional preprocessor directives far better
2017-10-27 21:21:20 +03:00
Siu Chi Chan
a9789ddcda
Merge remote-tracking branch 'origin/master' into HEAD
2017-10-27 01:18:28 -04:00
Ben Sander
f288f24e95
Merge pull request #198 from AlexVlx/feature_support_globals_for_module_api
...
Feature support globals for module api
2017-10-27 01:53:34 +02:00
Ben Sander
e97f675397
Merge pull request #218 from ChrisKitching/nodiscard
...
Add [[nodiscard]] attribute to hipError_t in C++17 mode
2017-10-26 22:48:54 +02:00
Ben Sander
772fe865fc
Merge pull request #223 from bensander/2x_bidir
...
Use 2X for bidir memory bandwidth calc
2017-10-26 21:49:06 +02:00
Ben Sander
7d30f32332
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.
2017-10-26 19:44:22 +00:00