Граф коммитов

13474 Коммитов

Автор SHA1 Сообщение Дата
Chris Kitching 8d91579dcf Don't use now-defunct cmake variable in lit test config 2017-10-24 20:52:51 +01:00
Chris Kitching b24b33ee2e Refactor cudaCall to prefer early return to deep nesting
Sorry for the invasive refactor, but this was making reasoning
about this function more difficult.
2017-10-24 20:38:49 +01:00
Chris Kitching 9da456b315 Split the giant lookup table into 3 smaller ones
Instead of having a single, enormous LUT for all CUDA names, let's
have separate ones for different types of entity. We often know
that we're looking at a typename, or a function name, or a macro
name - so we can be more efficient (and resilient to name
collisions) by having smaller lookup tables for each of those
classes of entity).

Here we start that off by having three LUTs:
- Header names
- Type names
- Everything else

Future work could usefully split "everything else" into:
- enum values
- macro names
- function names
- everything else

It's worth noting that the "needs new matcher" todos I delete here
were actually resolved with the previous commit. It no longer
naively searches for things that start with "cu*" - it will find
exactly those things that are present in our lookup tables.
2017-10-24 20:38:49 +01:00
Chris Kitching 93c9b3ca34 One matcher for type expressions to rule them all
Previously, there were different AST matchers for each
language construct that contains a type reference, and custom
logic to perform the transformation within each of those
structures.

Since the transformation in all such cases was only replacing
CUDA types with hip ones, we can instead use an AST matcher
that finds and updates the type references directly.
This simplifies the program considerably, and it won't fail
when it finds a language feature (or complicated type expression)
that nobody wrote custom logic for yet.
2017-10-24 20:38:49 +01:00
Chris Kitching 3b2d8029fb Make control flow less insane
`while(false)` is certainly a bold choice.
2017-10-24 20:38:49 +01:00
Chris Kitching 9a4778f435 Use a cmake glob for collecting hipify sources
Should make breaking this monstrosity into multiple files a bit
easier...
2017-10-24 20:38:48 +01:00
Chris Kitching 803d3ffd9c Move giant lookup table into another translation unit
Also, rewrote it as a constant variable instead of a function
that imperatively fills a map. It's shorter, faster the compile,
and (depending on how badly the compiler screws it up) maybe
faster to run.

And, of course, it starts breaking up that giant .cpp file.
2017-10-24 20:38:25 +01:00
Evgeny Mankov ecbbb9f379 Merge branch 'master' of https://github.com/ROCm-Developer-Tools/HIP 2017-10-24 22:24:51 +03:00
Evgeny Mankov 4e78738267 Merge pull request #230 from emankov/master
[HIPIFY][fix] cmake: NO_DEFAULT_PATH is strongly needed in find_package for LLVM
2017-10-24 20:44:56 +03:00
Evgeny Mankov 19bd0a2bbc Merge branch 'master' of https://github.com/ROCm-Developer-Tools/HIP 2017-10-24 20:13:43 +03:00
Evgeny Mankov cbb772c3ab Merge pull request #224 from ChrisKitching/tests
[HIPIFY] Make the automated tests more useful
2017-10-24 20:12:36 +03:00
Evgeny Mankov 712a1da073 Merge branch 'master' into tests 2017-10-24 20:03:51 +03:00
Evgeny Mankov 7b307b21d1 Merge pull request #227 from ChrisKitching/clang-silly
Tweak some version numbers in clang version compatibility checks
2017-10-24 17:16:07 +03:00
Evgeny Mankov 4a0228cedb [HIPIFY][fix] cmake: NO_DEFAULT_PATH is strongly needed in find_package for LLVM
Otherwise LLVM will be searched in system folders.
2017-10-24 16:35:10 +03:00
Rahul Garg 10b1b58505 Example showing globals use with module APIs 2017-10-24 18:12:25 +05:30
Maneesh Gupta e324e77184 Merge pull request #225 from emankov/master
[HIPIFY] cmake: fix standalone build
2017-10-24 17:06:51 +05:30
Evgeny Mankov 7c51376bbf [HIPIFY][fix] cmake: do not build hipify-clang if not asked
+ warn "hipify-clang will not be built" if HIPIFY_CLANG_LLVM_DIR is not specified.
+ fix typo in previous commit .
2017-10-24 14:16:05 +03:00
emankov 559d9a68aa [HIPIFY] cmake: simplify build 2017-10-24 10:51:11 +03:00
foreman 778197c431 P4 to Git Change 1474014 by johtaylo@johtaylo-jtincrementor2-increment on 2017/10/24 03:00:05
SWDEV-2 - Change OpenCL version number from 2525 to 2526.

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#2273 edit
2017-10-24 03:08:30 -04:00
Siu Chi Chan 4ed3e9e15f printf support for module API 2017-10-24 00:55:41 -04:00
Chris Kitching aa288fcf1f Tweak some version numbers in clang version compatibility checks
Apparently a couple of those APIs changed in clang 5, not 4.

Drat.
2017-10-24 01:45:23 +01:00
Siu Chi Chan f1992c5b11 add an unit test for printf 2017-10-23 18:31:13 -04:00
Siu Chi Chan 36c2795dd4 add a printf device function 2017-10-23 18:30:08 -04:00
Siu Chi Chan da7c37947c replace __hcc_workweek__ with HC_FEATURE_PRINTF flag 2017-10-23 18:30:08 -04:00
Evgeny Mankov cdd849541f [HIPIFY] cmake: fix standalone build 2017-10-23 21:16:13 +03:00
Rahul Garg 4090c82936 Use 2X for bidir p2p memory bandwidth calc 2017-10-23 21:57:20 +05:30
Chris Kitching 2c65d0da37 Add concurentKernels.cu to the testsuite 2017-10-23 13:39:37 +01:00
Chris Kitching 64d5f07050 Add the CUDA samples include dir to the path for tests
Means we get to easily steal CUDA examples for tests
2017-10-23 13:39:37 +01:00
Chris Kitching 2437b31939 Add cudaRegister.cu lit test 2017-10-23 13:39:37 +01:00
Chris Kitching ead79e5bf4 Add square.cu to lit testsuite 2017-10-23 13:39:37 +01:00
Chris Kitching c99dcbba8d Introduce a test runner script to simplify invocation
... And to use a standard, highly amusing trick for making
coloured output work.
2017-10-23 13:39:37 +01:00
Chris Kitching 5912f465bd Adapt lit test for the hipLaunchKernelGGL changes from before... 2017-10-23 13:39:37 +01:00
Chris Kitching 74fd64d5c1 Migrate lit test to using FileCheck, so failures are readable
It seems the test is already broken, but look how awesome the
error message is now:

/home/chris/HIP/tests/hipify-clang/axpy.cu:31:12: error: expected string not found in input
 // CHECK: hipLaunchKernel(HIP_KERNEL_NAME(axpy), dim3(1), dim3(kDataLen), 0, 0, a, device_x, device_y);
           ^
<stdin>:31:2: note: scanning from here
 //
 ^
<stdin>:33:2: note: possible intended match here
 hipLaunchKernelGGL(axpy, dim3(1), dim3(kDataLen), 0, 0, a, device_x, device_y);
 ^
2017-10-23 13:39:37 +01:00
Chris Kitching 3868036ea7 Look for FileCheck for running lit tests, too
Use of grep in `lit` RUN lines is deprecated:
https://llvm.org/docs/TestingGuide.html#writing-new-regression-tests

Using grep leads to really unhelpful failure output (it literally
just says "the test failed"). FileCheck is much more helpful, and
distributed with LLVM on most distros anyway, so this extra
dependency shouldn't prove problematic.
2017-10-23 13:39:36 +01:00
Chris Kitching 9747578d09 Propagate the CUDA toolkit directory into the lit tests
Allows the tests to actually run... :D
2017-10-23 13:39:36 +01:00
Chris Kitching e9d259699c Remove dependency on nonexistent lit target
This just... isn't a target. Maybe you were trying to do a file
dependency? But that's handled implicitly by the find_program
call anyway, so all this is doing is generating a cmake warning
2017-10-23 13:39:36 +01:00
Maneesh Gupta 281c543bc3 Make elfio headers private
Change-Id: I3ba174bb46e84a75380207d93a0da6fe3703689e
2017-10-23 10:24:36 +05:30
Ben Sander 21689e8710 Use 2X for bidir memory bandwidth calc 2017-10-21 07:47:32 -05:00
Evgeny Mankov 9dec691dbf Merge pull request #219 from ChrisKitching/newClang
[HIPIFY] Migrate hipify-clang to a newer version of clang
2017-10-21 11:59:46 +03:00
foreman 53a1d4d451 P4 to Git Change 1473303 by johtaylo@johtaylo-jtincrementor2-increment on 2017/10/21 03:00:04
SWDEV-2 - Change OpenCL version number from 2524 to 2525.

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#2272 edit
2017-10-21 03:13:53 -04:00
foreman c8c4813e17 P4 to Git Change 1473290 by lmoriche@lmoriche_opencl_dev2 on 2017/10/20 20:49:28
SWDEV-126884 - OCL 2.1 Platform APIs
	- Report OpenCL C 2.0 on OCL/ROCm/HSAIL

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#74 edit
2017-10-20 21:00:19 -04:00
foreman c9852274bd P4 to Git Change 1473287 by lmoriche@lmoriche_opencl_dev2 on 2017/10/20 19:31:40
SWDEV-126884 - OCL 2.1 Platform APIs
	- Report OpenCL C 2.0 on OCL/ROCm/HSAIL

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#73 edit
2017-10-20 19:39:49 -04:00
foreman 403b110f0c P4 to Git Change 1473269 by lmoriche@lmoriche_opencl_dev2 on 2017/10/20 18:19:58
SWDEV-102726 - [OCL-LC-ROCm] Open source OpenCL Runtime
	- Initialize spirVersions_ even if we do not report the extension.

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#72 edit
2017-10-20 18:30:09 -04:00
Ben Sander b4c7876244 Remove printf 2017-10-20 13:24:04 -07:00
Ben Sander 326651875d Merge pull request #214 from scchan/reinit_printf_buffer
hipDeviceReset(): make sure to reinitialize the printf buffer in hcc RT
2017-10-20 11:04:37 -05:00
Ben Sander ed85b15c3e Update device properties.
- clear properties to defined initial state.
- enable some property flags which are now supported.
2017-10-20 15:52:13 +00:00
Ben Sander e738fa66b5 Modify device properties to use pool API.
- Also better error code checking
2017-10-20 14:49:29 +00:00
Jenkins 8077be49da Merge 'master' into 'amd-master'
Change-Id: Ibf1621678d63291b419c8c4193b35240ce3406fe
2017-10-20 04:10:17 -05:00
foreman f7ceb625b4 P4 to Git Change 1472922 by johtaylo@johtaylo-jtincrementor2-increment on 2017/10/20 03:00:08
SWDEV-2 - Change OpenCL version number from 2523 to 2524.

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#2271 edit
2017-10-20 03:08:46 -04:00
foreman 3eb98fe4e7 P4 to Git Change 1472623 by lmoriche@lmoriche_opencl_dev2 on 2017/10/19 13:12:12
SWDEV-135933 - Use the same device driver version format for all device backends
	- Report "####.# (HSA#.#,{HSAIL|LC})"

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#71 edit
2017-10-19 13:19:58 -04:00