Commit Graph

25 Commits

Author SHA1 Message Date
Evgeny Mankov 3328b1450f [HIPIFY] CUDA Driver API porting to HIP : Init and Memory functions support.
[ROCm/hip commit: 67de23d6b9]
2016-09-13 15:11:21 +03:00
Evgeny Mankov 55f4ec2ed9 [HIPIFY] CUDA Driver API porting to HIP : Stream functions support.
[ROCm/hip commit: 9145df8b63]
2016-09-09 11:46:35 +03:00
Evgeny Mankov 1b3c5452e2 [HIPIFY] CUDA Driver API porting to HIP : Module functions support.
[ROCm/hip commit: bc28c37654]
2016-09-09 11:31:50 +03:00
Evgeny Mankov bfdbab5303 [HIPIFY] CUDA Driver API porting to HIP : Event functions support.
[ROCm/hip commit: 84f8d97ba5]
2016-09-09 11:15:11 +03:00
Evgeny Mankov 940c8682ec [HIPIFY] CUDA Driver API porting to HIP : Conversion type Driver and driver functions are added.
[ROCm/hip commit: 3cbd5d88fe]
2016-09-09 11:10:19 +03:00
Evgeny Mankov d37e3d2a2c [HIPIFY] CUDA Driver API porting to HIP : Conversion types Context and Cache are added.
[ROCm/hip commit: 5e0323d6c0]
2016-09-05 20:26:21 +03:00
Evgeny Mankov d82474fa9a [HIPIFY] CUDA Driver API porting to HIP : Device functions support.
[ROCm/hip commit: 2a1c84b4f9]
2016-09-05 18:05:16 +03:00
Evgeny Mankov f19f9da717 [HIPIFY] CUDA Driver API porting to HIP : Context functions support.
[ROCm/hip commit: 53de91dd59]
2016-09-05 13:15:49 +03:00
Evgeny Mankov f31bc90537 [HIPIFY] CUDA Driver API porting to HIP : populate Replacer's rules with enum members.
enum members for:
CUdevice_attribute/hipDeviceAttribute_t
CUfunc_cache/hipFuncCache
CUsharedconfig/hipSharedMemConfig


[ROCm/hip commit: 8bc7aba719]
2016-09-02 22:23:13 +03:00
Evgeny Mankov cac6e516ac [HIPIFY] CUDA Driver API porting to HIP : types are added.
CUdevice           -> hipDevice_t // Yet under discussion
CUdevice_attribute -> hipDeviceAttribute_t
CUdevprop          -> hipDeviceProp_t
CUfunction         -> hipFunction_t
CUfunc_cache       -> hipFuncCache
CUsharedconfig     -> hipSharedMemConfig
CUcontext          -> hipCtx_t
CUmodule           -> hipModule_t
CUevent            -> hipEvent_t
CUstream           -> hipStream_t


[ROCm/hip commit: f7818c4c44]
2016-09-02 16:31:46 +03:00
Evgeny Mankov 6d95372587 [HIPIFY] CUDA Driver API porting to HIP : CUresult enum.
enum CUresult was merged with enum cudaError_t into single hipError_t.

Thus a majority of HIP error codes has a reflection to Driver's and RT's corresponding error code at the same time. For instance:
    cuda2hipRename["CUDA_SUCCESS"]                         = {"hipSuccess", CONV_ERR, API_DRIVER};
    cuda2hipRename["cudaSuccess"]                          = {"hipSuccess", CONV_ERR, API_RUNTIME};

There are a few CUDA return error codes which are RT or Driver specific. For instance:
    cuda2hipRename["CUDA_ERROR_INVALID_CONTEXT"]           = {"hipErrorInvalidContext", CONV_ERR, API_DRIVER};

    cuda2hipRename["cudaErrorInvalidMemcpyDirection"]      = {"hipErrorInvalidMemcpyDirection", CONV_ERR, API_RUNTIME};

Matchers were changed from "cuda.* | cublas.*" to "cu.*" as CUDA API functions/types starts with 'cu'.


[ROCm/hip commit: 43998387aa]
2016-09-01 18:54:03 +03:00
Evgeny Mankov d2af0612ec clang-hipify: code refactoring - API (Driver/Runtime/Blas) distinguishing is added.
[ROCm/hip commit: 36d212c81e]
2016-08-25 19:36:37 +03:00
Evgeny Mankov eb6834766d clang-hipify: code refactoring and performance improvement
[ROCm/hip commit: 0f4974dbcb]
2016-08-24 18:51:36 +03:00
Evgeny Mankov cd64586cc8 clang-hipify: After translating any symbol forcibly include the hip header file in case it wasn’t.
Fixes https://github.com/GPUOpen-ProfessionalCompute-Tools/HIP/issues/34


[ROCm/hip commit: 807a6a9ac4]
2016-08-18 20:59:51 +03:00
Evgeny Mankov 4596f44fbe clang-hipify: Add support for nested macro expansion and translation.
Fixes bug “HIPIFY: nested macro is not hipified”
https://github.com/GPUOpen-ProfessionalCompute-Tools/HIP/issues/33

Example:
#include "cuda_runtime.h"
#define MY_MACRO(func, flags) (func, flags)
...
cudaEvent_t *event = NULL;
MY_MACRO(cudaEventCreateWithFlags(event, cudaEventDisableTiming), NULL);

where cudaEventDisableTiming is a defined numeric literal and thus a nested MACRO:
#define cudaEventDisableTiming 0x02 /**< Event will not record timing data */

After hipifying now:
MY_MACRO(hipEventCreateWithFlags(event, cudaEventDisableTiming), NULL);

Should be:
MY_MACRO(hipEventCreateWithFlags(event, hipEventDisableTiming), NULL);


[ROCm/hip commit: 2aacb02358]
2016-08-11 22:29:55 +03:00
Evgeny Mankov d5d642d7bb clang-hipify: Transformation of declarations with external linkage and shared attribute for IncompleteArrayType (aka C array[]) only.
Example:
extern __shared__ uint sRadix1[]; =>  HIP_DYNAMIC_SHARED(unsigned int, sRadix1);


[ROCm/hip commit: 114d5bfddf]
2016-08-05 21:35:58 +03:00
Evgeny Mankov 59e3e7b531 clang-hipify: Populate replacement rules and fix typos.
+ fix typo in hipStreamWaitEvent.
+ hipHostAlloc -> hipHostMalloc.
+ Memory Types, Pointer Attributes are added.
+ Event, Host Malloc and Register, Device and Stream Flags are added.
+ exclude cudacommon.h.prehip from includes' replacement rules.


[ROCm/hip commit: 19a6f1486a]
2016-07-07 18:01:41 +03:00
Evgeny Mankov 5f4dd24454 clang-hipify: add Replacement Excludes
Excludes are not replaced, for instance, CHECK_CUDA_ERROR and CUDA_SAFE_CALL.
Add check for excludes in MacroExpands and CallExpr routines.


[ROCm/hip commit: fd1e556cf2]
2016-07-01 19:58:14 +03:00
Evgeny Mankov f239b02539 clang-hipify: fix typos and populate replacement rules
+ typos in cudaDeviceAttr and cudaDeviceAttr
+ Device Attribules are added
+ More error codes are added


[ROCm/hip commit: 2eac7144f0]
2016-06-29 20:32:05 +03:00
Evgeny Mankov 2f9a50766c clang-hipify: Array of elements of typedef type translation support.
Example: cudaStream_t streams[2]


[ROCm/hip commit: e1785a8b9f]
2016-06-28 19:57:08 +03:00
Evgeny Mankov ecf3c87003 cublas to hipblas translation support in clang-hipify
+ CUBLAS V2 functions support
+ annotating, formatting


[ROCm/hip commit: 8f9bdf641f]
2016-06-28 15:33:38 +03:00
Evgeny Mankov ed75fba80e Initial cublas to hipblas translation support in clang-hipify.
To run clang-hipify with hipblas support please specify corresponding hipblas include directory, for example:

./hipify-clang --print-stats matrixMult.cpp.cuda -- -I/srv/git/HIP/HIP-Examples/hipblas/include

Additionally:
+ typedef translation support is added (cudaEvent_t and cudaStream_t are converted now).
+ anonymous typedef enum translation support.
+ function name macro expansion support.
+ clang options propagation is restored.
P.S. In order to avoid the following error message:
“Could not auto-detect compilation database for file "… .cu"
No compilation database found in /srv/git/HIP/build/clang-hipify or any parent directory
json-compilation-database: Error while opening JSON database: No such file or directory
Running without flags.”
please append “--“ to the end of clang-hipify’s command line.


[ROCm/hip commit: 8cbc2f3f44]
2016-06-22 19:15:03 +03:00
Maneesh Gupta 340a3f8d5b Fix missing JSON database warning from hipify-clang
Change-Id: I4aeff51556678266c1392a031deeb9ffff2386bc


[ROCm/hip commit: 99dc8abf68]
2016-05-20 14:06:27 +05:30
alex-t 0b16b6592b Fixed incorrect kernel paramlist replacement length & hipGetDeviceProperties mapping
[ROCm/hip commit: c84fdef9d3]
2016-04-14 13:48:58 +03:00
dfukalov a769b1ee38 Imported clang-hipify as a subtree
[ROCm/hip commit: 8115896010]
2016-04-04 23:18:15 +03:00