Commit Graph

884 Commits

Author SHA1 Message Date
Maneesh Gupta fa85974c47 module_api: workaround to use vcpy_kernel.cpp for NV path
Change-Id: Ib4868bf02c64070e846c19427c39289609909466
2016-09-04 12:35:08 +05:30
pensun 793dc2bce0 For module_api sample, use vcpy_kernel.cu to generate ptx file for NV path.
Change-Id: Id0033678834288c4eaa56b12e7d447119be99deb
2016-09-03 21:06:58 -05:00
Ben Sander 3c90766c70 remove printf
Change-Id: I36510a7ff0425f05a6d0b9c65cda4397c9cc2d95
2016-09-02 17:50:31 -05:00
Ben Sander 9466ab4fca add hipStreamQuery on nvcc, fix hipStreamWaitEvent for nvcc 2016-09-02 17:26:16 -05:00
Evgeny Mankov 7062586103 [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
2016-09-02 22:23:13 +03:00
Aditya Atluri 8f536d8580 corrected offline kernel compilation on hipcc path
1. hipgenisa.sh now adds int main(){} during kernel compilation. User does not have to put it there
2. Renamed vcpy_isa.cpp to vcpy_kernel.cpp
3. Removed vcpy_isa.cu as the kernel code should be common for both paths
4. Changed Makefile and runkernel.cpp to work with above changes

Change-Id: I9f8c84706b44bb500bc493a68e959762b55a0142
2016-09-02 13:17:17 -05:00
Ben Sander 0fdb5bf517 Fix double-lock of stream on hipModuleLaunchKernel
Change-Id: I4ca164971c25f4eb8fbcca11d6258367bb3d2ab4
2016-09-02 12:47:49 -05:00
pensun 8ae5498f99 Add deprecated information for threadfence() and threadfence_system() function.
Change-Id: I71793e9f48523776a87c91f3ed1eef7b9a9da88b
2016-09-02 09:52:07 -05:00
Ben Sander d882f4fb74 Doc and test updates.
Change-Id: I44cbd2c0de7cb692d0194d1bb8b8ae25c58d4e00
2016-09-02 09:46:59 -05:00
Ben Sander 8e883ab666 hipStreamWaitEvent update.
Add passed to hipStreamWaitEvent test.
Fix pointerAttrib test to work with new and old HCC versions.
Minor code touchup.

Change-Id: I139ba6ce9f6bf2b4bee89aebdec5981b4346ffc0
2016-09-02 09:46:59 -05:00
Ben Sander 9ee9284306 Only use ihipLogStatus from top-level HIP functions.
Change-Id: I07e9c088d5c16a79ed52cb008a798889a656016c
2016-09-02 09:46:59 -05:00
Ben Sander 8ec453a8c1 Add test for hipStreamWaitEvent
Change-Id: I157b33a78a0fc125b4b85f611f32f3b492f1b4d9
2016-09-02 09:46:59 -05:00
Ben Sander fca1b367da Add hipEvent_t to vim syn
Change-Id: Iade4aa123e72ada39028543890957cec03dd7a2e
2016-09-02 09:46:59 -05:00
Ben Sander 43e9932196 Fix av::copy in dialects to use capture-by-value
Change-Id: Ibce1488a1326f66b92b4d5b351230666b691ed31
2016-09-02 09:46:59 -05:00
Ben Sander 9a99000a62 Use create_blocking_marker for WaitEvent implementation
Change-Id: Ib3113f69a14e48b9fe0558d7b455148e478d8eed
2016-09-02 09:46:59 -05:00
Ben Sander 8a4900b679 improve debug for event
Change-Id: If6c0e25729d9964cbe5967833247a6d791d575a0
2016-09-02 09:46:59 -05:00
Ben Sander 02f65a483c Refactor for stream->_av.
- move _av into stream critical section.  ( HCC accelerator_view is not
  thread-safe but HIP steram is. )
- Refactored many places in code that need to acquire critical section.
some were previously thread races, ie enqueueing marker.

-remove support for GRID_LAUNCH_VERSION < 20
-Enable USE_AV_COPY based on HCC work-week.
- Review hipModule docs, some calrity/editing.

Change-Id: I3ce7c25ece048c3504f55ecd4683e506bb1fc8b6
2016-09-02 09:46:59 -05:00
Ben Sander 27b3706a72 enable hc_am example in hcc_ddialects example
Change-Id: Iec2f9eb05f95cb025c157fee8fd284aab844d1a2
2016-09-02 09:46:59 -05:00
Ben Sander 6a8ae733cc enable dynamic shared always
Change-Id: Idc246546f583a82489ef34d1fe22d0e118b1e0ed
2016-09-02 09:46:59 -05:00
Aditya Atluri 3fbe062008 added logger for return status
Change-Id: Ib93012a15b1cfa90714a6ebd5153cc40e28e6566
2016-09-02 09:44:00 -05:00
Aditya Atluri af86d28187 fixed code according to convention
Change-Id: Ib90c84a30ea6da3531e8b7c3e281dd4b31915198
2016-09-02 09:31:37 -05:00
Ben Sander bc489dd902 Documentation review and update
Change-Id: If40d096646014d70a198db3532758028abe6a93f
2016-09-02 09:15:49 -05:00
Evgeny Mankov 000f0f8114 [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
2016-09-02 16:31:46 +03:00
Rahul Garg 093569e611 Removed Doxygen return codes from source file
Change-Id: Iaf9f13df73a9c17c494c9ff67203b836ee90648d
2016-09-02 18:37:26 +05:30
Rahul Garg 302f6c1e3a Added hipDeviceTotalMem
Change-Id: I877fbc9e4767bbd70ecd0184f5123c9bc6cbd06f
2016-09-02 15:12:50 +05:30
Maneesh Gupta 672e8772a2 hip_base package: bundle cmake folder in package
Change-Id: I7f30469242a0357c68b9a27b7b18bbe1f1f15fc1
2016-09-02 15:09:05 +05:30
Maneesh Gupta 6396f07835 CMakeLists.txt: install cmake folder
Change-Id: I5367281c62529b4b832c77ea93e3994a5f9133f4
2016-09-02 15:08:36 +05:30
Maneesh Gupta de24b6d228 FindHIP: First version of re-implementation
Change-Id: I84332a0f7d89271bf9370dbcd19d893119e738f9
2016-09-02 15:07:33 +05:30
Rahul Garg 392860bf20 Added hipDeviceComputeCapability, hipDeviceGetPCIBusId and hipDeviceGetName
Change-Id: Ibe2d975df796712633900ddc7b0734ec2b8ab4ec
2016-09-02 14:45:53 +05:30
Rahul Garg 2b2ffaf599 Added hipDeviceGet function
Change-Id: I7c25bc24680589682af1b199072807523fc37f50
2016-09-02 12:25:50 +05:30
Ben Sander af2dee92ab add hipStreamWaitEvent on nvcc 2016-09-01 13:28:27 -05:00
pensun 4ed2035dd2 Modify hipMalloc to take size of 0 and return NULL pointer for it.
Modify hipMemoryAllocate test for this change.

Change-Id: I884aee0cd5fe0c60aebb4cb37cdbb4833c5bd0c7
2016-09-01 13:08:30 -05:00
Evgeny Mankov 22dca6794d [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'.
2016-09-01 18:54:03 +03:00
Aditya Atluri f22fda1291 Fixed offline kernel compilation
1. Removed vcpy_isa.ptx as it should be generated during make
2. Made argument padding specific to hcc path
3. Renamed --gencodeobject to --genco
4. Changed Makefile to work on both nvcc and hcc path

Change-Id: Ifd053d541085d9ce4fd37bc21b07674786c7163e
2016-09-01 10:39:14 -05:00
Maneesh Gupta b7b78d3b86 Fixed module_api/Makefile to set flags based on HIP_PLATFORM
Change-Id: I2fa9a556e0c4f25f4963ecef1d25eb922f9af1b9
2016-09-01 15:11:12 +05:30
Maneesh Gupta 1446ad3b92 Updates to gencodeobject generation logic
- hipcc honors HIPCC_VERBOSE for gencodeobject too
    - fixed gencodeobject generation logic for nvcc path
    - hipgenisa.sh is no longer passed the --gencodeobject flag

Change-Id: Iab83c18a6decef445fda8468ba5de10cd7935046
2016-09-01 15:06:36 +05:30
Rahul Garg 25f3032328 Added doxygen documentation for hipCtxXXX APIs
Change-Id: Id9cf3491e9a8c78cb7bfeb9976c36d6fe565628f
2016-09-01 12:22:37 +05:30
Maneesh Gupta adcc0e32d2 hipgenisa.sh looks for hipcc relative to itself
Change-Id: Iac63fb5a87db1d735dbfa9697ce1f769a36b4d4a
2016-09-01 12:13:11 +05:30
Maneesh Gupta 9eeb6c31ae Fix typo in hipcc
Change-Id: I35817c08b503f438f412d4bfe84afc11b671dc77
2016-09-01 12:11:11 +05:30
Maneesh Gupta 7c24b08284 module_api/Makefile: Use gencodeobject instead of genisa
Change-Id: I7e3523810f5603ad727b1fda7ff2d0dc53ec72d7
2016-09-01 12:10:31 +05:30
Rahul Garg 8de15914ae Added context related difference note in hip_porting_driver_api.md
Change-Id: I5bd2884a16db51871baa7c19fa2bd63a0bd3adad
2016-09-01 11:35:42 +05:30
Rahul Garg a949060b12 Added HIP_INIT_API to hipDeviceSynchronize()
Change-Id: I9bd6bf206905621b17e1999994b5ea09b7382180
2016-09-01 11:00:30 +05:30
Aditya Atluri 6cd10125e9 added device code offline compilation for nvcc
Change-Id: I1f77131778b4dcfcf720b4367dd9f18ffaf1cbb3
2016-08-31 20:36:36 -05:00
Aditya Atluri bcbf2973a3 corrected path to hipgenisa.sh and fixed its working
Change-Id: I140055d5e800cd4b23253171ba889db5e63b637b
2016-08-31 20:16:48 -05:00
Aditya Atluri 667ec7cbe2 added sample for how-to-use pre-compiled kernels1. Corrected the exit output of kernel compilation by hipcc
2. Added sample which loads/run kernel binary during runtime?

Change-Id: I26ccaca1f844fee317592e26c9e654ce548b96a8
2016-08-31 13:56:07 -05:00
Aditya Atluri 6754587ed2 added how to use hipcc for kernel compilation
Change-Id: If652316272f21b90516f5a5ed88c17f4f4e77fb0
2016-08-31 13:22:28 -05:00
Aditya Atluri 2f8b2fca6b added kernel only compilation feature for hipcc
1. Added hipgenisa.sh file to compile kernel code to hsa code object
2. Changed hipcc to call hipgenisa.sh, making hipcc compiling the kernels

Change-Id: I976459c1ebb24343e1b1fe38b4c3a203f1adffa9
2016-08-31 13:05:57 -05:00
Aditya Atluri 6bfbf17fb6 added doxygen comments for hipModuleLaunchKernel
Change-Id: I8a52d2e62f4b7eea8e05d779b9fda49f0ac45130
2016-08-31 10:18:46 -05:00
Rahul Garg e0c5ad6ff6 CUresult to hipError mapping updates
Change-Id: I602a70acda798a47ebbbef84b438b21c399821c3
2016-08-30 15:55:51 +05:30
Aditya Atluri 7fdebfb8e3 remove HIP_INIT_API from ihipSynchronize
Change-Id: Ibe0739efe55573c023212d9c28ba847c777e434c
2016-08-29 21:42:22 -05:00