Graphe des révisions

129 Révisions

Auteur SHA1 Message Date
Maneesh Gupta f34f5c8684 Remove libsupc++ dependency from HIP
Change-Id: Ib843f99dfb3057b7c28029250c2449732ea7f17f
2017-11-02 12:29:09 +05:30
Siu Chi Chan cd6996614f use libc++ on centos 7 and rhel 7.4 2017-10-31 18:14:07 +00:00
Aaron Enye Shi ffe21c9d75 hcc-config already sets -lc++ -lc++abi flags
Since hcc-config will set the flags for CentOS7 and RHEL 7.X, we don't need to set flags here.
2017-09-14 10:55:38 -04:00
Aaron Enye Shi a6028ade1e Added support for RHEL 7.4 2017-09-13 14:21:43 -04:00
Aaron Enye Shi b340f4a6ed Update hipcc 2017-09-12 17:50:44 -04:00
Aaron Enye Shi c7746b12ac Must explicitly add libc++ and libc++abi 2017-09-12 16:59:43 -04:00
Aaron Enye Shi edd0b360b2 [CentOS7] Fix HIP sample hipInfo and other tests
Cent OS 7 has conflicts between its libc++ and libstdc++. Seems that we cannot use libstdc++ on Cent OS. This is related to SWDEV-131972 [ROCm CQE][Cent OS 7][G] Building any HIP sample giving an fatal error: 'bits/c++config.h'.
2017-09-08 11:46:10 -04:00
Maneesh Gupta 85ff6e3ef4 [hipcc] Fix amdgpu target selection logic
- Refactoring introduced a bug when user does not specify any target via
--amdgpu-target, but has an invalid target specified in
HCC_AMDGPU_TARGET. In this case the selection logic was defaulting to
gf803.
- Removed defaulting to any specific target if rocm_agent_enumerator
  fails. hipcc will report this and die if linking was required.

Change-Id: I76131867049fef92331807dd19a926406dcc1d02
2017-07-31 10:11:19 +05:30
Maneesh Gupta 830e85060b [hipcc] Cleanup amdgpu target logic
Existing logic has a bug. If user specifies targetA via commandline
options, while enumerator returns targetB, hipcc will create a fatbin
containing targets targetA and targetB. enumerator should only be used
when no target is specified by user (commandline or env var).

Change-Id: I6da857f86860c0e671b5988cd858644a08f723b9
2017-07-28 16:18:15 +05:30
Aditya Atluri 961440b593 fixed device selection during compilation to use rocm_agent_enumerator
1. Changed hipcc to use rocm_agent_enumerator
2. Changed square sample test to use device variable
2017-07-21 15:50:12 -05:00
Sun, Peng 40d0a203f8 fix typo in hipcc
Change-Id: I5f5fb3d8f1e5e8104dca45dc213c13ae9d98a583
2017-07-01 09:43:31 -05:00
Maneesh Gupta 90cd2945f9 Force stdlib=libc++ on UB14.04
Change-Id: I7f24d663e57fbbee56afde12a0e61fc8bfc1e9b6
2017-04-03 15:09:31 +05:30
Aditya Atluri 7ac438ed02 disabled metadata apis
Change-Id: Ifb8839c581644cccc2afcd18c38a866f649a4144
2017-03-28 10:46:31 -05:00
Aditya Atluri 7d49dcc030 Re-enabled metadata parsing in HIP
Change-Id: If8caa844571cb8581450df9ffdb76e2445c75f13
2017-03-27 11:00:39 -05:00
Aditya Atluri d99d5f4bbe removed LLVM_HOME from hipcc
Change-Id: Ic3dfdde9d28f08bf54b12dfc38ab1f25884bcfab
2017-03-23 11:08:19 -05:00
Aditya Atluri 4f4a44c736 removed llvm dependency and metadata functionality
Change-Id: Ib9783b75d326559ed29c5aa2218aed40d20ad0fb
2017-03-23 10:16:37 -05:00
Aditya Atluri 9d7bfbc14b fixed paths to find llvm
Change-Id: I0a4af8cea2f44fea011d09fc300e382984746d17
2017-03-21 14:22:49 -05:00
Aditya Atluri 99432cc12c Added default module launch api functionality
1. As in hipModuleLaunchKernel(..., kernelParams, nullptr); works with this commit
    2. Added headers AMDGPUPTNote.h, AMDGPURuntimeMetadata.h to do code object meta data parsing
    3. Changed CMake to look at llvm link libraries
    4. HIP developer should set env variable LLVM_HOME to remove link errors
    5. HIP depends on installed LLVM (not source, not build)
    6. Added sample to test out the feature
    7. Right now HCC does not support embedding metadata in code object. Use clang opencl
    8. Changed HIPCC to read LLVM_HOME env var
    9. New argument to CMake should be given -DLLVM_HOME=<where llvm 5.0 is installed>

Change-Id: Iba38194aa872d97cc2c90a8e5ff746c48055c868
2017-03-17 13:11:34 -05:00
Siu Chi Chan a96821871f replace code names with gfx names
Change-Id: I5e0b96a0b474b16cfa92077a30a5b80b7230254b
2017-03-15 12:26:13 -04:00
Maneesh Gupta 4ae1ea8143 hipcc: Fix warning when HCC_AMDGPU_TARGET is not defined
Change-Id: I5cc6b0e9fb23ec78152d8bcfe9e7511e2fe91055
2017-03-15 12:03:05 +05:30
Maneesh Gupta 63074e24d9 default to gfx803 instead of fatbin if no arch specified
Change-Id: I83d56c6ede11c356d383b09d7eb3a5f08c8d8c84
2017-03-14 14:34:25 +05:30
Maneesh Gupta 13ab31ba34 hipcc: Support targets specified via HCC_AMDGPU_TARGET
Change-Id: I69fda40d9f666325d377f4b4335e7ee693069214
2017-03-14 14:29:30 +05:30
Maneesh Gupta db1bd201cd Add gfx900 support
Change-Id: I3be2fbdcb6d3fa776c4fe668586c67245a1323f2
2017-03-14 13:51:38 +05:30
Siu Chi Chan 910df3d80f fix hcc version detection in hipcc
Change-Id: I880be03ad67e99280a259369bfe25488bf53f0bd
2017-03-06 15:34:30 +05:30
pensun fd610e497b Define __HIPCC__ flag at compile time when using HIPCC on HCC path
Change-Id: I5e967e0e2327264d5d3b0ca705c2504fcd33d75e
2017-02-28 16:20:48 -06:00
Siu Chi Chan 806deeb476 Squashed commit of the following:
commit 931d3de6c1c903cfd47842bc5026a9294ac492b4
Author: Siu Chi Chan <siuchi.chan@amd.com>
Date:   Mon Feb 13 10:54:06 2017 -0500

    only force to libstdc++ if the g++ is older than version 5 since hcc already defaults to libstdc++ with newer g++

commit 1ef8d71aa788de7b9eead4906fe56186f06d7d3f
Author: scchan <siuchi.chan@amd.com>
Date:   Sun Feb 12 14:44:11 2017 -0500

    remove hardcoded -lc++ in tests

commit 5d99ef338eb3a66523cc9ddd139e86c6fd707b9c
Author: scchan <siuchi.chan@amd.com>
Date:   Sun Feb 12 14:35:46 2017 -0500

    force include libstdc++ headers and stdc++ only if g++ version < 5 since hcc uses libstdc++ by default if g++ > 5 is present

commit a2bc21b24d100feefe91cd3cb2271238bda0738a
Author: scchan <siuchi.chan@amd.com>
Date:   Fri Feb 10 04:36:27 2017 -0500

    use hcc-config to generate compiler and linker flags

Change-Id: I13a79629c0adfd75439a47d0488ff4fd619c55ba
(cherry picked from commit 866e744e40cf1378af8a679b54959bf5226c340f)
2017-02-16 13:12:32 +05:30
Maneesh Gupta d14b239dd3 Fix arch specific hcc extra libs env var
Change-Id: I7429da2f1cb98750d6a9601e7e5bde844a098487
2017-02-09 14:38:39 +05:30
Aditya Atluri 9a1989193a added architecture specific macros
1. Added __HIP_ARCH_GFXNUM__
2. Usage, -D__HIP_ARCH_GFX803__=1

Change-Id: I68b3a85d62cfab3a45d2b7a70cb3518ab2565236
2017-02-08 19:45:32 -06:00
Aditya Atluri 55d92833fb fixed hipcc for new compiler flags
Change-Id: I49ec059be20ff26b7482c84d91ab7a43826c6a8d
2017-02-08 14:06:01 -06:00
Aditya Atluri 27d2fc99ca include arch specific ir on fallback path
Change-Id: Ib04996aae2c21eb73ef2a9f6305915e0caccd704
2017-02-08 12:19:06 -06:00
Aditya Atluri 01b66dd998 Fixed Hawaii link issues
1. Split hip_ir.ll to hip_hc.ll and hip_hc_gfx803.ll
 a. hip_hc.ll contains arch generic ir implementations
 b. hip_hc_gfx803.ll contains gfx803 (fiji, polaris) specific ir
2. HIPCC can now parse --amdgpu-target=*.
 a. Usage: hipcc --amdgpu-target=gfx803 --amdgpu-target=gfx701
 b. TODO: Convert to --amdgpu-target=gfx803,gfx701
3. With LLC in HCC able to generate native f16 isa, removed inline half asm math ops
4. Fixed threadfence and threadfence_block to use functions in rocdl

Change-Id: Ic9a9e3e04139b0d75d2c2a263c030ca77adc1019
2017-02-08 12:04:05 -06:00
Aditya Atluri b37422d30b fixed arch compiler flag
Change-Id: I19f7a0ea513d6b8059f0c10cd0e7a5ead510e246
2017-01-27 08:51:48 -06:00
Ben Sander 138cf36547 Add HIP_IGNORE_HCC_VERSION.
Ignores strict checking of HCC and HIP version.
Can be useful when developing new HCC code.
2017-01-23 22:34:41 -06:00
Aditya Atluri d180fdaae0 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 3a42a7642a tolerate spaces in hip args 2017-01-09 20:57:13 -06:00
Maneesh Gupta a42da10c44 hipcc: Link to shared HIP runtime by default
Change-Id: I5030e3245e4afb6863b401656ca5d1ad9ae84310
2017-01-04 12:39:09 +05:30
Maneesh Gupta f6e9f6f0bf hipcc: link to hip runtime using absolute path
Change-Id: I714b3e9da0bc1d49665b079d9c4cec1c1a2efa80
2016-12-23 11:49:00 +05:30
Maneesh Gupta ef046c7098 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 df9faffe93 hipcc: HCC workaround no longer needs env var
Change-Id: I81f4eafddbda5e9e2f1082932dd502ab451cfc24
2016-12-01 12:51:58 +05:30
Aditya Atluri 043da795f6 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 c0419cc749 Refactor for building HIP as dynamic library
Change-Id: I65a3d9d589c4fdbbdcf1611e5427224253be8260
2016-11-18 14:33:20 +05:30
Maneesh Gupta fd1483ce35 Revert "hipcc: Turn back linking hip_ir.ll by default"
This reverts commit 528b257004.
2016-11-14 06:05:31 +05:30
Maneesh Gupta 669d734624 hipcc: Default to HIP_LIB_TYPE=1
Change-Id: I83b05accd76f7bc94bd724c66ae060fa0095bc8d
2016-11-10 11:34:00 +05:30
Maneesh Gupta 72c722c3d6 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 f0bb817c11 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 6fa9bc3b61 hipcc: Update flags for Fedora support
Change-Id: I90be7768410e491b4f11c3b0f08470246d781d80
2016-10-28 14:12:13 +05:30
Ben Sander e5ef8a2fd7 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 bff88d0f63 Update docs and improve hipcc error message.
Change-Id: I25636d06959d02cc46c8c476d3948e91ff83ea47
2016-10-27 23:09:31 -05:00
Maneesh Gupta 528b257004 hipcc: Turn back linking hip_ir.ll by default
Change-Id: I9cec5a1a5a4791eddf6ef3e3332143ffc3ceadb6
2016-10-25 12:27:24 +05:30
Maneesh Gupta f1a4303b04 hipcc: Turn back linking hip_ir.ll by default
Change-Id: I9cec5a1a5a4791eddf6ef3e3332143ffc3ceadb6
2016-10-25 12:26:54 +05:30