Gráfico de commits

272 Commits

Autor SHA1 Mensaje Fecha
Michael LIAO 8ad59be46d [hipcc] Only add -x hip on HIP-Clang compilation.
Change-Id: I19704c713ad00f92196d7586498e62f80b8cd177


[ROCm/clr commit: b39195b639]
2020-07-06 15:16:51 -04:00
Tao Sang b702f41277 Support numa policy set by user
Add hipHostMallocNumaUser flag to hipHostMalloc() in order to support
numa policy set by user.

Change-Id: I6d70ed539a5f97f27187f2242b68849c0e27e4d6


[ROCm/clr commit: 71c64e98a0]
2020-06-19 21:23:58 -04:00
Vlad Sytchenko b9efee6df8 Revert "Let hipcc not pass -mllvm option to HIP-Clang on Windows"
This reverts commit 23a8dfc8f3.

Change-Id: If29906b9c63f03d6e51144f510d3a956d90935e8


[ROCm/clr commit: e82e9355f2]
2020-06-11 16:36:48 -04:00
Siu Chi Chan 3d7612af8d fix uninitialized value in hipcc
Change-Id: I90b070c491f0efc328fcf97de0e111658ec772de


[ROCm/clr commit: 32f3374af9]
2020-06-10 16:07:51 -04:00
Yaxun (Sam) Liu 0d8425ee5a Fix include path and wrapper header
Currently std::complex and some other std functions require uses to
include hip_runtime.h before any other headers to work, which is not
reliable.

changes are made in clang to fix this issue:
https://reviews.llvm.org/D81176

which requires hipcc and HIP headers to make corresponding changes.

This patch will make sure the clang change will not break
HIP/ROCclr during this transition.

After the transition is done, we can remove explicitly setting
include path for HIP-Clang and HIP header in hipcc and hip config
cmake files and rely on clang driver to set it automatically.

Change-Id: I5d226861c2560ffa6c5ab17343a43cc378048061


[ROCm/clr commit: 0a513d8a02]
2020-06-09 17:37:20 -04:00
Aaron En Ye Shi b2f9e1c299 Add compiler-rt library for __fp16 and _Float16
Similar to HCC, link with compiler-rt to support __fp16 and _Float16 type conversions in ONNX models. This should resolve SWDEV-238491.

Change-Id: Iad8dcff568831719f501f562a04023326ae8036c


[ROCm/clr commit: d93134e727]
2020-06-03 18:53:14 +00:00
Siu Chi Chan 85d781ba65 update device library path
fix device lib directory

add missing --hip-link switch for link phase

Change-Id: I4b2eeb32648ca3cec72ec1f4e3381ce1fc0a90a5


[ROCm/clr commit: c414c70e8f]
2020-06-03 14:44:23 -04:00
Christophe Paquot dcf54124a1 [hip] Skip lang guess if -x <lang> is specified.
Change-Id: If5cbdd1e5d36d2d8b83f3eadd0598162691167aa


[ROCm/clr commit: 4932115d6d]
2020-05-15 17:07:40 -04:00
Payam f08d09ddba updating envar to HIP_ROCCLR_HOME
Change-Id: Ic0bbf40638538307377e6db1a7379fb23dec8306


[ROCm/clr commit: 4638f0f11c]
2020-05-14 12:59:51 -04:00
Icarus Sparry 5be7627c16 Fix runtime failure on windows
Signed-off-by: Icarus Sparry <icarus.sparry@amd.com>
Change-Id: I6c991a943e04ef29eff2905becbed0038c3b8ab9
Signed-off-by: Icarus Sparry <icarus.sparry@amd.com>


[ROCm/clr commit: 3c855b543a]
2020-05-11 17:30:47 -04:00
Icarus Sparry 2afdba7819 Correct quoting of arguments
The hipcc script takes arguments and uses this to build up a new
command. Characters which are special to the shell need to be quoted
to prevent them being interpreted.

In particular adding
     --Wl,--enable-new-dtags -Wl,--rpath,'$ORIGIN:$ORIGIN/../lib'
to the command should pass quoted dollar signs into the resulting
string so the shell passes them on, rather than substituting the
values.

The arguments are processed in a conventional loop, but can be altered
during the course of the loop, and also by linker response files.

Tested by running
  HIPCC_VERBOSE=7 HIP_COMPILER=clang hipcc --cxxflags \
      fred.c -Wl,,--rpath,'$ORIGIN:$ORIGIN:/../lib'
and observing "-Wl,--rpath,\$ORIGIN\:\$ORIGIN\:..\/lib" in the
displayed hipcc-cmd output (and ignoring the errors due to rocm not
being installed)

Change-Id: I26b62f09ff3518cceeb85fa8823bb12a95c1c78e
Signed-off-by: Icarus Sparry <icarus.sparry@amd.com>


[ROCm/clr commit: 9f31801831]
2020-05-10 18:16:48 -04:00
agodavar 786203246c SWDEV-234447:Fix error Use of uninitialized value in concatenation (.)
Change-Id: Ia6f8d23f100826438f152c175d10ac3096ee024e


[ROCm/clr commit: e069cf6511]
2020-05-08 12:07:24 -04:00
Aaron Enye Shi 1c669b3028 SWDEV-234954 - Fix hipconfig on Windows
Before setting the HIP_RUNTIME and HIP_COMPILER variables, first check the environment if these are set. We should prioritize the environment settings. For windows, it will be set, and also explicitly call perl when invoking hipconfig.

Change-Id: I89ad267285239e6d8a897dc681c4af5906e7b9d8


[ROCm/clr commit: c70a32c5a7]
2020-05-08 13:27:36 +00:00
Aaron Enye Shi 6f14391a04 Fix missed VDI names in hip-on-rocclr
Change-Id: I830feb37a043656136648e92a0c6f1eaae8402d7


[ROCm/clr commit: 88ce9d5a10]
2020-05-07 08:37:28 -04:00
Rahul Garg b6c8a14323 Remove HIP_MARKER left overs due to HIP PR 2032
Change-Id: Ieae68dd3b12c92b1d6830619ca4c6ae43c400225


[ROCm/clr commit: 4c05fd9d4c]
2020-05-06 20:26:18 -04:00
Payam 082b9e51ab name change vdi to rocclr
Change-Id: I06d198bbb4a499e153b290b73a92afed3553b252


[ROCm/clr commit: dba0e72de2]
2020-05-06 09:14:30 -04:00
Yaxun (Sam) Liu 094472b32d Fix hipcc for -E
-E is for preprocessing only, which should be compile only.

This is required by enabling sccache.

Change-Id: Ia0a0acb6a04abd03a9cb5b3c13cf7446837f37b4


[ROCm/clr commit: 48d89d670e]
2020-05-05 14:30:25 -04:00
Aaron Enye Shi a5441b7c97 Update hipcc to use HIP_COMPILER variable
This will update the hipcc script so that it will use HIP_PLATFORM, HIP_COMPILER, and HIP_RUNTIME variables correctly based on updated hipconfig file.

Removing HIP_PLATFORM=clang, only use hcc and nvcc for now. HIP_PLATFORM should eventually switch to amd or nvcc.

Change-Id: Ie527d07a1add974cc3aab8e9f61b0518147d7602


[ROCm/clr commit: c729d52681]
2020-04-30 15:31:20 -04:00
Aaron Enye Shi b1904716e1 Update hipconfig to support HIP-Clang
Add support for hipconfig to display details on HIP-Clang compiler and update HIP_COMPILER and HIP_RUNTIME to include clang and rocclr. Also, add hipcc flags --cxxflags and --ldflags to support HCC users who used hccconfig flags.

Change-Id: Ib12d81a4ff59d34fb000626836b1adb10be3ac61


[ROCm/clr commit: 2df5d92240]
2020-04-27 11:44:53 -04:00
Yaxun (Sam) Liu 6b0c1024c2 Let hipcc treats .cpp files as C++ files for HIP-Clang
This change is required by rocBLAS and rocFFT for OpenMP issue
since cmake needs to treat .cpp file as C++ program to detect
OpenMP support.

This is to match nvcc behavior, speed up compilation of C++
programs, and fix some compilation issue where C++ programs
are compiled as HIP programs.

Currently it is controlled by an environment variable
HIP_COMPILE_CXX_AS_HIP. By default it is 1, where
hipcc treats .cpp files as HIP programs. If it is
set to 0, hipcc will treat .cpp files as C++ programs.
This is because some math libraries are still not
ready for the change, however rocBLAS and rocFFT
require this feature for OpenMP, therefore put it
under an environment variable so that rocBLAS
and rocFFT can use it.

Change-Id: I56a51e27079df850ee39d4217fb647c22d79f612


[ROCm/clr commit: 4e7b1cdbd2]
2020-04-27 11:43:05 -04:00
root 6a7aa0c1c6 Merge master into amd-master-next
Change-Id: I3fc1dc0c860d627053537581e75561e8a7efe327


[ROCm/clr commit: b5031f39b1]
2020-04-26 22:19:37 +00:00
Maneesh Gupta 11fe5b06de Merge in the rocclr based hip runtime (#2032)
* Merge master-next changes in master (include vdi development in master branch)



[ROCm/clr commit: f2e1118d7a]
2020-04-23 09:12:06 -07:00
Tao Sang eb50c7ef38 Solve issues with hip-vdi runtime static lib
1.Combine libamdhip64_static_base.a and libamdvdi_static.a into libamdhip64_static.a.
2.Let hipcc use -use-staticlib to link libamdhip64_static.a.
3.Add some samples for static lib.
4.Fix compiling failure of code object.

Change-Id: Ic8c95228eb139058da8b5d66ba8439486154ca6f


[ROCm/clr commit: 32130f8ec3]
2020-04-20 15:37:02 -04:00
Tao Sang efe517e4c0 Revert "Solve issues with hip-vdi runtime static lib"
This reverts commit 08d1b39d50.

Reason for revert: It is causing dkms-no-npi-hipclang broken.
It is top priority to maintain dkms-no-npi-hipclang build, otherwise we lose track of regression analysis.
So revert the change for now and recommit it after fixing it.

 

Change-Id: Ia5136e888baecb6148c6c18eedbf37066fcb1eaa


[ROCm/clr commit: a6c6f51926]
2020-04-17 10:13:08 -05:00
Tao Sang 08d1b39d50 Solve issues with hip-vdi runtime static lib
1.Combine libamdhip64_static_base.a and libamdvdi_static.a into libamdhip64_static.a.
2.Let hipcc use -use-staticlib to link libamdhip64_static.a.
3.Add some samples for static lib.
4.Fix compiling failure of code object.
Change-Id: Ia2333622a8d05639b90974c4c5d3d85654ba0138


[ROCm/clr commit: 5210ee6ca5]
2020-04-15 13:46:36 -04:00
Maneesh Gupta e5ee180568 Merge branch 'amd-master' into amd-master-next
Change-Id: I3094c15008093f2072bcd38aca4ea90aeae2d97b


[ROCm/clr commit: 0ea6697192]
2020-04-09 06:31:00 -04:00
Reshabh Sharma 69bd482d26 Output file name should not change flags picked for compiler (#1938)
Fixes SWDEV-207362,

The output file name should not contribute to picking up the right flags for the compiler. This fix solves issues when the output has conflicting extensions which confuses hipcc to treat them as the source files and add the required flags for them.

PS: Output file refers to the file followed by -o

Change-Id: I1095966c11143ad73e81fabc35b4e9de5d3afada
Example: hipcc test.o -o test.hip will add the flags for .hip compilation ignoring the fact that it is an output file


[ROCm/clr commit: 36f24a40e5]
2020-03-31 16:13:43 -04:00
Michael LIAO ee25f80e54 [hipcc] Remove the previous workaround.
Change-Id: Ie1c2aa21689bc343c10fd4b699546cf500ced5b2


[ROCm/clr commit: 64bbce8e73]
2020-03-30 10:18:47 -04:00
Yaxun (Sam) Liu 62d088b2c7 Add option --hipcc-func-supp for function support (#1957)
By default hipcc passes -mllvm options to let HIP-Clang inline all device functions.

--hipcc-func-supp enables function support and disables inline all.

--hipcc-no-func-supp disable function support and enables inline all.

This is a temporary solution to match HCC behavior for performance.

This option is mainly for debugging purpose.

Change-Id: I0c44ac1812bb3cea5c3e5b6e14ebaa45919236f6

[ROCm/clr commit: 2198aead38]
2020-03-25 14:41:27 -07:00
Yaxun (Sam) Liu 95dc897815 Let hipcc treat .c program as C program (#1945)
nvcc treats .c program as C program and .cpp program as C++ program.

Currently hipcc treats .c and .cpp programs as HIP programs.

It is desirable to let hipcc behave like nvcc.

Currently it is not feasible to let hipcc treat .cpp programs as C++ program
since there are too many HIP applications use .cpp as extension for HIP programs.
However we should be able let hipcc treat .c program C program since there
are few applications use .c as extensioin for HIP programs.

[ROCm/clr commit: 31d9ea89f1]
2020-03-19 16:16:31 +05:30
Yaxun (Sam) Liu 5fffd89ae8 Workaround for libc++ include path for HIP-Clang (#1917)
HIP-Clang cuda_wrapper headers require clang include path before standard C++ include path.
However libc++ include path requires to be before clang include path.
To workaround this, we pass -isystem with the parent directory of clang include
path instead of the clang include path itself.

[ROCm/clr commit: 0307ae4c9a]
2020-03-18 11:20:21 +05:30
Reshabh Sharma 278168800f Output file name should not change flags picked for compiler (#1938)
Fixes SWDEV-207362,

The output file name should not contribute to picking up the right flags for the compiler. This fix solves issues when the output has conflicting extensions which confuses hipcc to treat them as the source files and add the required flags for them.

PS: Output file refers to the file followed by -o

Example: hipcc test.o -o test.hip will add the flags for .hip compilation ignoring the fact that it is an output file

[ROCm/clr commit: 59b8dabbd0]
2020-03-17 14:02:14 +05:30
Reshabh Sharma 10b1f2badf Don't force compiler to treat libhip_hcc.so as a text file (#1931)
Fixes SWDEV-226025,

Right now -x c++ can come before libhip_hcc.so which forces the compiler to treat libhip_hcc.so as a text file and generates a lot of gibberish unicode. This PR changes the order of flags ensuring that -x c++ and similar flags come after libhip_hcc.so
Hopefully, this will not have any negative side effect.

[ROCm/clr commit: 4a9793e2e2]
2020-03-17 14:01:33 +05:30
Yaxun (Sam) Liu 586dc598b6 Let hipcc not pass -mllvm option to HIP-Clang on Windows (#1924)
Currently there is a clang bug on Windows causing duplicate -mllvm options in clang -cc1.

Tempoarily disable -mllvm options for HIP-Clang on Windows until the bug is fixed.

Change-Id: I3a4393ba7745989398dc6c6001722837dad18704

[ROCm/clr commit: 6b1956d139]
2020-03-17 14:00:20 +05:30
Sameer Sahasrabuddhe f12c0f1dbb SWDEV-204784: separate printf declaration for vdi/clang
There are now two implementations of printf in HIP:

1. The implemenation for HCC is controlled by the HC_FEATURE_PRINTF
   macro, and it works only with the HCC compiler used in combination
   with the HCC runtime.

2. The implementation for hip-clang requires the VDI runtime, and is
   always enabled with that combination.

Change-Id: Ibaeda7900ffe2ce602ca0094aafed0f1147ac2b6


[ROCm/clr commit: d48738856c]
2020-03-16 04:00:39 -04:00
Yaxun (Sam) Liu 23a8dfc8f3 Let hipcc not pass -mllvm option to HIP-Clang on Windows
Currently there is a clang bug on Windows causing duplicate -mllvm options in clang -cc1.

Tempoarily disable -mllvm options for HIP-Clang on Windows until the bug is fixed.

Change-Id: I3a4393ba7745989398dc6c6001722837dad18704


[ROCm/clr commit: e796a1ed78]
2020-03-10 13:07:26 -04:00
Sameer Sahasrabuddhe 988b489efd separate printf declaration for vdi/clang
There are now two implementations of printf in HIP:

1. The implemenation for HCC is controlled by the HC_FEATURE_PRINTF
   macro, and it works only with the HCC compiler used in combination
   with the HCC runtime.

2. The implementation for hip-clang requires the VDI runtime, and is
   always enabled with that combination.


[ROCm/clr commit: 2c3dfdda41]
2020-03-09 09:40:05 +05:30
Lad, Aditya eca6c4f001 Merge branch 'master' into amd-master-next
Conflicts:
	CMakeLists.txt
	tests/src/texture/simpleTexture2DLayered.cpp
	tests/src/texture/simpleTexture3D.cpp

Change-Id: I4aa4754d391b5f37ddf15fa0bcfc84d9da020119


[ROCm/clr commit: e7fdb3d796]
2020-03-06 14:10:44 -05:00
agodavar ac317d0029 Enable tests hipTestDeviceSymbol,hipTestConstant and p2p_copy_coherency on hip-vdi
SWDEV-225266: [HIP-VDI] HIP-VDI disabled tests (p2p_copy_coherency.cpp)
SWDEV-225388: hipTestDeviceSymbol.cpp & hipTestConstant.cpp failed to build on hip-vdi

For hipTestDeviceSymbol.cpp & hipTestConstant.cpp tests:
Currently "__HIP_VDI__" flag is enabled in CMakeLists.txt, but when application is compiled with hipcc,  
__HIP_VDI__ is not defined to differentiate if compiled for VDI/HCC for headers.

For ./src/runtimeApi/memory/p2p_copy_coherency.cpp:
Fixed compilation issue to include only when compile for HCC runtime "<hc_am.hpp> not found"
Currently test is disabled to run on all platforms. When validated on multi-GPU machine,
memcpy between multiple GPUs via GPU synchronization is not working on hcc and vdi path.
Need to validate on nvidia machine to know if test is valid. Disabled GPU synchronization test for now.

For ./src/runtimeApi/module/hipModuleTexture2dDrv.cpp:
updated test to generate tex2d_kernel.code object in build directory. Currently ctest looks for it in build directory.

Change-Id: I629d395a919c2440d921422716944c7940ed6010


[ROCm/clr commit: ae465bc338]
2020-03-04 10:07:09 -05:00
Rahul Garg 7395bf9ba9 Remove deprecated HIP markers (#1876)
[ROCm/clr commit: 6be7537cf9]
2020-02-28 16:47:15 +05:30
Yaxun (Sam) Liu d79e247a70 Fix hipcc for extra -mllvm option (#1885)
[ROCm/clr commit: ff4479fcc7]
2020-02-26 15:53:43 +05:30
Yaxun (Sam) Liu 5748b7550b Let HIP-Clang inline all functions by default (#1875)
This is a quick workaround to match HCC behavior for performance since inlining usually
results in more optimization opportunities therefore better performance.

We will fine tuning inline threashold later.

[ROCm/clr commit: f4120043ed]
2020-02-17 22:49:26 +05:30
Siu Chi Chan c74c8d7a1c Disabling HCC code object v3 generation by default.
Some PyTorch unit tests have regression.  Disabling cov3 to allow more
time to debug and unblock PyTorch

Change-Id: Iba7f425ef3499c20c42ec45d9152b5d27ce97d03


[ROCm/clr commit: 13052f27c2]
2020-02-14 19:39:27 -05:00
Payam b6f311794e updated hipcc to include HSA path for clang builds as well
Change-Id: Icaaa68fdbe79fb16e4e9fedd420460f1479d7fe0


[ROCm/clr commit: 87cd9451f2]
2020-02-13 16:48:24 -05:00
mhbliao 87056623e9 [hip] Cleanup compiler wrapper for HIP-Clang. (#1847)
[ROCm/clr commit: 8343d7c9aa]
2020-02-07 13:28:26 -08:00
Michael LIAO 0a97bed2bd [hipcc] Skip warning on gfx000.
- The known target checking should skip `gfx000` as well as it won't be
  used in real compilation command formation. The avoid generating
  annoying warning on `gfx000`.


[ROCm/clr commit: 59bd608bfe]
2020-02-06 17:09:14 -05:00
Siu Chi Chan 63b6eb1345 Enable code object v3 codgen when compiling with HCC (#1836)
Change-Id: I590c05a418cc37ec247b89124cef17a7fe8b27e2

[ROCm/clr commit: 713702eebc]
2020-02-05 20:56:33 +05:30
kpyzhov 02536516bc hipcc script: Refined device selection; added gfx1011 target. (#1821)
[ROCm/clr commit: 951d7d4ba6]
2020-02-04 08:56:16 +05:30
paulfreddy c9c4645328 Changes for multiple ROCm installation (#1771)
* FBA-29, FBA-69, multiple rocm support, shared library conflicts
Changes to resolve:
1) Multiple rocm release installation support
2) Multiple rocm shared lib conflicts
3) Add the so versioning also

[ROCm/clr commit: c5ed5c71a3]
2020-01-21 14:17:35 +05:30
Rahul Garg 32139b7465 Fix hipcc warning related to hipVersion (#1767)
* Fix hipcc warning related to hipVersion
* Rename hipVersion.h to hip_version.h
* Remove HIP_VERSION splitting
* Update .gitignore
- Ignore generated include/hip/hip_version.h
- Removed some stale entries
- Added executables from samples/1_Utils/*/ for consistency with bin/ entries.

[ROCm/clr commit: 3fe1695c3a]
2020-01-06 12:33:23 +05:30