Граф коммитов

330 Коммитов

Автор SHA1 Сообщение Дата
Michael LIAO 5ab67017f5 [hipcc] Only add -x hip on HIP-Clang compilation.
Change-Id: I19704c713ad00f92196d7586498e62f80b8cd177
2020-07-06 15:16:51 -04:00
Tao Sang 63051ca2e1 Support numa policy set by user
Add hipHostMallocNumaUser flag to hipHostMalloc() in order to support
numa policy set by user.

Change-Id: I6d70ed539a5f97f27187f2242b68849c0e27e4d6
2020-06-19 21:23:58 -04:00
Jenkins be658f6f76 Merge 'amd-master-next' into 'amd-npi-next'
Change-Id: Id0bd0798c460b51653a73b6a9ce97ddaec92874a
2020-06-16 21:09:56 +00:00
Vlad Sytchenko 01372e2cd4 Revert "Let hipcc not pass -mllvm option to HIP-Clang on Windows"
This reverts commit 92af5e4375.

Change-Id: If29906b9c63f03d6e51144f510d3a956d90935e8
2020-06-11 16:36:48 -04:00
Siu Chi Chan 85e3b37052 fix uninitialized value in hipcc
Change-Id: I90b070c491f0efc328fcf97de0e111658ec772de
2020-06-10 16:07:51 -04:00
Yaxun (Sam) Liu 087c579625 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
2020-06-09 17:37:20 -04:00
kjayapra-amd 06013d5750 FEAT-30999 - Add gfx90a support in npi.
Change-Id: Iabd36196e25be441bb816d5bab7a829911507169
2020-06-08 13:49:03 -04:00
Aaron En Ye Shi 56392b4f8a 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
2020-06-03 18:53:14 +00:00
Siu Chi Chan f20748854e update device library path
fix device lib directory

add missing --hip-link switch for link phase

Change-Id: I4b2eeb32648ca3cec72ec1f4e3381ce1fc0a90a5
2020-06-03 14:44:23 -04:00
kjayapra-amd ca47b9d8a7 FEAT-30761 - Adding gfx1031 to known targets in hipcc on amd-npi-next branch
Change-Id: I0f7fb414d53bd83087681ddb4e6a86802ba3c3ba
2020-06-03 12:54:51 -04:00
Vlad Sytchenko e19c8e176f Merge branch 'amd-master-next' into amd-npi-next
Change-Id: I75be5fbe5ddd6552a6a316ec99ca8833ee02cb6c
2020-05-21 19:17:10 -04:00
Christophe Paquot 96704ddd00 [hip] Skip lang guess if -x <lang> is specified.
Change-Id: If5cbdd1e5d36d2d8b83f3eadd0598162691167aa
2020-05-15 17:07:40 -04:00
Vlad Sytchenko 38ce7d8ae7 Merge branch 'amd-master-next' into amd-npi-next
Change-Id: Ie692324c8cf6215bf6cf87de0d5e3aa1bdfd5ea1
2020-05-15 11:15:27 -04:00
Payam 0153027fd8 updating envar to HIP_ROCCLR_HOME
Change-Id: Ic0bbf40638538307377e6db1a7379fb23dec8306
2020-05-14 12:59:51 -04:00
Icarus Sparry 64f8ff5e70 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>
2020-05-11 17:30:47 -04:00
Icarus Sparry a4f01ffca6 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>
2020-05-10 18:16:48 -04:00
agodavar a9bc94129b SWDEV-234447:Fix error Use of uninitialized value in concatenation (.)
Change-Id: Ia6f8d23f100826438f152c175d10ac3096ee024e
2020-05-08 12:07:24 -04:00
Aaron Enye Shi 5fbae827c2 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
2020-05-08 13:27:36 +00:00
Vlad Sytchenko 88172bac72 Merge branch 'amd-master-next' into amd-npi-next
Change-Id: Id97c6b8c875731250049a5b9dc8062311ae291ad
2020-05-07 17:17:21 -04:00
Aaron Enye Shi 1c1be71b63 Fix missed VDI names in hip-on-rocclr
Change-Id: I830feb37a043656136648e92a0c6f1eaae8402d7
2020-05-07 08:37:28 -04:00
Rahul Garg 819677825f Remove HIP_MARKER left overs due to HIP PR 2032
Change-Id: Ieae68dd3b12c92b1d6830619ca4c6ae43c400225
2020-05-06 20:26:18 -04:00
Payam c5f76c3de3 name change vdi to rocclr
Change-Id: I06d198bbb4a499e153b290b73a92afed3553b252
2020-05-06 09:14:30 -04:00
Yaxun (Sam) Liu 09bcd2e378 Fix hipcc for -E
-E is for preprocessing only, which should be compile only.

This is required by enabling sccache.

Change-Id: Ia0a0acb6a04abd03a9cb5b3c13cf7446837f37b4
2020-05-05 14:30:25 -04:00
Aaron Enye Shi 2de1129510 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
2020-04-30 15:31:20 -04:00
Vlad Sytchenko d041d30e65 Merge branch 'amd-master-next' into amd-npi-next
Change-Id: Icd651e93f0c28eb2859f4997377379d0698ce84e
2020-04-29 18:54:58 -04:00
Aaron Enye Shi afc9b546fb 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
2020-04-27 11:44:53 -04:00
Yaxun (Sam) Liu 9c5a7226b2 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
2020-04-27 11:43:05 -04:00
root 2689246de6 Merge master into amd-master-next
Change-Id: I3fc1dc0c860d627053537581e75561e8a7efe327
2020-04-26 22:19:37 +00:00
Maneesh Gupta a0b5dfd625 Merge in the rocclr based hip runtime (#2032)
* Merge master-next changes in master (include vdi development in master branch)
2020-04-23 09:12:06 -07:00
Tao Sang da27fd2b09 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
2020-04-20 15:37:02 -04:00
Tao Sang f246761dee Revert "Solve issues with hip-vdi runtime static lib"
This reverts commit 4c2ab3f41e.

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
2020-04-17 10:13:08 -05:00
Tao Sang 4c2ab3f41e 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
2020-04-15 13:46:36 -04:00
kjayapra-amd 18296cf07f SWDEV-227890 - Adding support for gfx1030 in amd-npi.
Change-Id: I3cb2bdf7915e251fce9efeb8b156c8947704ca93
2020-04-15 09:59:59 -04:00
Maneesh Gupta 2af31479e2 Merge branch 'amd-master' into amd-master-next
Change-Id: I3094c15008093f2072bcd38aca4ea90aeae2d97b
2020-04-09 06:31:00 -04:00
Reshabh Sharma bb62f8553f 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
2020-03-31 16:13:43 -04:00
Michael LIAO f1566f6dc5 [hipcc] Remove the previous workaround.
Change-Id: Ie1c2aa21689bc343c10fd4b699546cf500ced5b2
2020-03-30 10:18:47 -04:00
Yaxun (Sam) Liu 3bef4e60ad 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
2020-03-25 14:41:27 -07:00
Yaxun (Sam) Liu 28db1e4383 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.
2020-03-19 16:16:31 +05:30
Yaxun (Sam) Liu 08d9759eba 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.
2020-03-18 11:20:21 +05:30
Reshabh Sharma 7bcfdf017d 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
2020-03-17 14:02:14 +05:30
Reshabh Sharma bbbb8bf1e6 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.
2020-03-17 14:01:33 +05:30
Yaxun (Sam) Liu 7aa9611689 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
2020-03-17 14:00:20 +05:30
Sameer Sahasrabuddhe 64cd527335 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
2020-03-16 04:00:39 -04:00
Yaxun (Sam) Liu 92af5e4375 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
2020-03-10 13:07:26 -04:00
Sameer Sahasrabuddhe 09130b3b92 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.
2020-03-09 09:40:05 +05:30
Lad, Aditya d80edf9541 Merge branch 'master' into amd-master-next
Conflicts:
	CMakeLists.txt
	tests/src/texture/simpleTexture2DLayered.cpp
	tests/src/texture/simpleTexture3D.cpp

Change-Id: I4aa4754d391b5f37ddf15fa0bcfc84d9da020119
2020-03-06 14:10:44 -05:00
agodavar 3479847d16 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
2020-03-04 10:07:09 -05:00
Rahul Garg 6c5fa32815 Remove deprecated HIP markers (#1876) 2020-02-28 16:47:15 +05:30
Yaxun (Sam) Liu 69404d8e78 Fix hipcc for extra -mllvm option (#1885) 2020-02-26 15:53:43 +05:30
Yaxun (Sam) Liu 92cc29ae2b 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.
2020-02-17 22:49:26 +05:30