Commit graph

96 Commits

Autor SHA1 Nachricht Datum
Aditya Atluri c286bf6f8a Started adding native half math library support
1. Removed HIP_EXPERIMENTAL env variable so that device code will be accessed from LLVM IR
2. Removed soft support from headers and moved to hip_fp16.cpp
3. Added LLVM IR + inline asm to hip_ir.ll
4. Added test for fp16
5. Added barriers for hcc 3.5 and hcc 4.0 for half support
a. Which means, hcc 4.0 can parse __fp16 but hcc 3.5 cant
b. HCC 4.0 code is implemented now, hcc 3.5 will be added later

Change-Id: Ic37859b2688ebb02e168bab643d1882bf4727952
2017-01-12 11:30:20 -06:00
Ben Sander 49d1477b9d tolerate spaces in hip args 2017-01-09 20:57:13 -06:00
Maneesh Gupta 9b02f0d7e5 hipcc: Link to shared HIP runtime by default
Change-Id: I5030e3245e4afb6863b401656ca5d1ad9ae84310
2017-01-04 12:39:09 +05:30
Maneesh Gupta 16b705d912 hipcc: link to hip runtime using absolute path
Change-Id: I714b3e9da0bc1d49665b079d9c4cec1c1a2efa80
2016-12-23 11:49:00 +05:30
Maneesh Gupta fd8b1c7d41 Improve shared and static library support
hipcc accepts new parameter -use-staticlib and -use-sharedlib to
control linking behavior. Default is still static library.

Change-Id: I28fb9a939f8177c75abefd8b77d8118a6666d1f4
2016-12-01 15:33:12 +05:30
Maneesh Gupta f14198956f hipcc: HCC workaround no longer needs env var
Change-Id: I81f4eafddbda5e9e2f1082932dd502ab451cfc24
2016-12-01 12:51:58 +05:30
Aditya Atluri c2f6ecf264 Added fast math flag
1. Use -DHIP_FAST_MATH to make precise math functions compiled to fast math
2. Added double fast math functions for sqrt
3. Changed hipcc to parse -use_fast_math (not working)
4. Added passed tag to hipFloatMath test

Change-Id: I72884b2436b4efe61e9a9297346c1358fee38a2d
2016-11-23 11:19:15 -06:00
Maneesh Gupta 2195e3c37d Refactor for building HIP as dynamic library
Change-Id: I65a3d9d589c4fdbbdcf1611e5427224253be8260
2016-11-18 14:33:20 +05:30
Maneesh Gupta f9d598d66c Revert "hipcc: Turn back linking hip_ir.ll by default"
This reverts commit 72a5deb91e.
2016-11-14 06:05:31 +05:30
Maneesh Gupta 462ffb8117 hipcc: Default to HIP_LIB_TYPE=1
Change-Id: I83b05accd76f7bc94bd724c66ae060fa0095bc8d
2016-11-10 11:34:00 +05:30
Maneesh Gupta e3b5eef7c9 Merge branch 'rocm-rel-1.3' into amd-develop
Conflicts:
	include/hip/nvcc_detail/hip_runtime_api.h

Change-Id: I990a7d008da9e8dcc68250cebbc8ee6e723c7e01
2016-11-10 08:56:38 +05:30
Ben Sander d1db786910 Pre-pend HIP_PATH/lib to linker, so we find developer object code
Previously might pick up libs from /opt/rocm/lib.

Change-Id: Ia7adb345defe433d5952aa61706fe03fd7cbcd35
2016-11-04 06:06:04 -05:00
Maneesh Gupta 0d8aa10473 hipcc: Update flags for Fedora support
Change-Id: I90be7768410e491b4f11c3b0f08470246d781d80
2016-10-28 14:12:13 +05:30
Ben Sander e57baf8d95 HIPCC adds paths to profiler include and libs by default.
Users who desire otherwise can set HIP_ATP_MARKER=0.
Also remove old unused hipcc_explicit_lib option.

Change-Id: I2bf07ba880329e7a3b1365dd33a3b2be6794370f
2016-10-27 23:09:31 -05:00
Ben Sander 03caa1de8a Update docs and improve hipcc error message.
Change-Id: I25636d06959d02cc46c8c476d3948e91ff83ea47
2016-10-27 23:09:31 -05:00
Maneesh Gupta 72a5deb91e hipcc: Turn back linking hip_ir.ll by default
Change-Id: I9cec5a1a5a4791eddf6ef3e3332143ffc3ceadb6
2016-10-25 12:27:24 +05:30
Maneesh Gupta 2d9ff6acd6 hipcc: Turn back linking hip_ir.ll by default
Change-Id: I9cec5a1a5a4791eddf6ef3e3332143ffc3ceadb6
2016-10-25 12:26:54 +05:30
Maneesh Gupta 5f2bf5219a bin/hipcc: Simplify HIP_HCC_SYS_INCLUDES_WA logic
Change-Id: I2d20d6edc1b5c0d065ba6ce6179441fa98712a87
2016-10-19 12:57:33 +05:30
Ben Sander 965e2e00a8 Make HIP_HCC_SYS_INCLUDES_WA disable unless explicitly set =1
Change-Id: Ibfd1e049d51e420bd514b71e3652bc7029dfd4ba
2016-10-18 22:45:45 -05:00
Evgeny Mankov 5c7146eb62 [hipcc] A workaround for [SWDEV-105366] HCC's omitting of system includes while compiling kernel code leads to 'file not found' error.
Missing includes are set explicitly.
Workaround is switched on by default, to disable it set HCC_SYS_INCLUDES_WA=0.

WA will be removed after fixing [SWDEV-105366].
2016-10-18 22:38:04 +03:00
Maneesh Gupta 3c0327451d Disable linking hip_ir.ll by default
Change-Id: I4917f0d75c66eee347de41bc16d999fc563a5be2
2016-10-16 11:14:42 +05:30
Aditya Atluri 1970ea07f1 added compiler flag for polaris
Change-Id: Ib14c14c0618982ac7b48f5bc704c04b54ff40ed9
2016-10-13 14:16:48 -05:00
Maneesh Gupta 7e277ef6e5 .buildInfo -> .hipInfo & .version -> .hipVersion
Change-Id: I8023f4349621fd81c58615737b7e897649e0f7ca
2016-10-11 11:13:41 +05:30
Aditya Atluri 09c9953649 added threadfence feature for hcc
1. Added feature for __threadfence and __threadfence_block
2. Added feature for using LLVM IR files directly while compilation
3. Added test for threadfence and threadfence_block

Change-Id: Ib7e5d89b4cca1a135952b317e5809cd05b56a3c9
2016-10-10 15:29:50 -05:00
Maneesh Gupta 747c63bee5 Set _binary_kernel_* symbol value to 1
Change-Id: I92255a8238a8084010662a3ccf5d624dd2d352c0
2016-10-06 09:50:35 +05:30
Maneesh Gupta 948d94def8 hipcc: Updated to use new include path
Change-Id: I4de6bb6978f2908dbb4d4cfd6e394d21fed90dd5
2016-10-05 10:54:42 +05:30
pensun fea7dc684a update hipcc to search for lib using CUDA_PATH on NV path
Change-Id: I7e19d1f82237a8a13f3d8284b313ac049be3f920
2016-09-29 15:11:57 -05:00
Ben Sander 061bcc6a5c Small tool, doc, sample enhancements.
- Expand message when HIP version mismatch detected.
- Doc touchup.
- change sorting of hipBusBandwidth so byte results shown at top.
-

Change-Id: Ifb4e44a5fdfb65d59c4994b11e5f13385705f7e0
2016-09-26 16:36:01 -05:00
pensun 5bdb9e349c fix of HIPCC on libc++ option on HCC path
Change-Id: Ie0d3213a165fa13f033b777b490eb60b980d02da
2016-09-26 14:39:57 -05:00
Maneesh Gupta b088ca2a53 hipcc: Don't try to linking unpinned_copy_engine
Change-Id: Iaa4d8b4f6dbb7940bba553f82c157a2ee9468c9e
2016-09-23 10:43:09 +05:30
Maneesh Gupta ba9d9708f7 Expose HIP_VERSION_* to HIP source and HIP applications
Change-Id: I6fb0d6711642c4fad2cd89b98707ee4b548b7243
2016-09-22 12:27:07 +05:30
Maneesh Gupta 3cfeb3cc88 Rename hipgenisa.sh -> hccgenco.sh
Change-Id: Icfdbb35acd7e84881bd1ab7ef3c85a3109902c6a
2016-09-07 10:23:02 +05:30
Maneesh Gupta 3b9ec7f606 hipcc: Pass ROCM_TARGET as env to hipgenisa.sh
Change-Id: Ib55b6366ae392ca10266ffae38722776ba91f274
2016-09-06 15:46:18 +05:30
Maneesh Gupta ff2de7892c hipcc: Pass ROCM_PATH via env to hipgenisa.sh
Change-Id: Ibc2dd8ce65645fd946f1a749effcd9ca0828c453
2016-09-06 15:11:17 +05:30
Maneesh Gupta de24b6d228 FindHIP: First version of re-implementation
Change-Id: I84332a0f7d89271bf9370dbcd19d893119e738f9
2016-09-02 15:07:33 +05:30
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 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
Maneesh Gupta 9eeb6c31ae Fix typo in hipcc
Change-Id: I35817c08b503f438f412d4bfe84afc11b671dc77
2016-09-01 12:11:11 +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 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 fb0c432095 Changed module api to work with nvcc and hipcc path
- Added cuda and cudart linking for nvcc path in hipcc
- Added hipMemcpyHtoD and hipMemcpyDtoH for nvcc path
- Changed hipDeviceptr to hipDeviceptr_t
- Fixed hipMemcpy*to* API signatues

Change-Id: I6ef076b507f92502efda475c83dcdcdd462afc37
2016-08-29 15:05:12 -05:00
Maneesh Gupta 0c051fede1 hipcc needs to link against supc++
Change-Id: Ica0949099a0bdfe2a493341dc1cd96ec93f34f11
2016-08-26 10:35:30 +05:30
Maneesh Gupta 8f19a51521 Make it easier to switch between HIP library formats
Change-Id: Id16406795a81f4bb64dbcb76b9b8763ffe59aac6
2016-08-19 13:07:22 +05:30
Aditya Atluri b8597512ca Added kernel compilation driver apis
1. Added 2 new driver apis, hipModuleLoad, hipModuleGetFunction

Change-Id: If464a7fad178121e3da791c7ac9e17ebc01a9cd0
Issues: When a sample written with them shows Aborted (core dumped) when exiting
2016-08-16 14:36:25 -05:00
Maneesh Gupta 85784149fa Several improvements to hipcc, hipconfig and CMakeLists.txt
- moved hip base version information back to hipconfig
 - fixed bug in hip patch version generation
 - renamed .hipconfig to .buildInfo
 - HCC_HOME is logged to .buildInfo only when HIP_DEVELOPER environment
 - variable is defined
 - hipcc and hipconfig require perl 5.10.1 or above
 - replaced unless defined with logic-defined or
 - added ROCM_TARGET for carrizo
 - moved config parsing to a subroutine
 - config parsing does not set VALID key anymore
 - hipcc honors HCC_HOME environment variable above buildInfo
 - hip_base package now bundles .version in bin directory

Change-Id: Iaeea6d7529671220b02e07337946aaee0af90310
2016-08-14 16:22:25 +05:30
Aditya Atluri 5a47758033 Added fix for using HCC_VERSION
1. The variable is brought outside the conditional so that its scope is increased

Change-Id: I2d2689553e67930050fe5b3648739f0f72c3bbc8
2016-08-11 16:13:44 -05:00
Aditya Atluri df1dd53453 Change hipcc to take HCC_HOME from hipconfig by default
1. Current implementation checks both env var and value in hipconfig and reports error
2. New implementation gives value in hipconfig with highest priority
3. If hipconfig is not present, fall back to env variables.

To Devs: No need to switch between environment variables for different HCC + different HIP.

Change-Id: I6cdf37e1429d7f07be3a68c7e5ba1533d832962b
2016-08-11 15:31:24 -05:00
Maneesh Gupta fcafb975a6 Fix build issues due to refactoring changes
Change-Id: I0a709ff4864244ba1b49e1a25327e3901ed6e17f
2016-08-09 22:49:32 +05:30