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

163 Коммитов

Автор SHA1 Сообщение Дата
Siu Chi Chan f5eb91d53d migrate program_state logic from header into shared library (phase I) (#1077)
* Revert "Revert "Use COMgr to read Kernel Args Metadata (#1006)""

This reverts commit a3d118eaa8.

* Revert "Use COMgr to read Kernel Args Metadata (#1006)"

This reverts commit 8a548bf40b.

* Revert "improve program state commentary"

This reverts commit 7aada87cbd.

* Revert "load program state once per agent"

This reverts commit c9117de8eb.

* start moving function_names() into the hip shared lib

* start moving code_object_blobs to a new "state" object

* Consolidate various program state related static objects into a
single program_state object

* minor clean up

* move more stuffs from functional_grid_launch into program_state

* debug make_kernarg

* moving lookup for kernargs size_align into program_state

* clean up old code for kernarg size and alignment

* update hip_module to use newer api in program_state

* Create public member functions for program_state

* move most program state functions into shared library

* Pass the data buffer size to load_executable
Otherwise, it can't figure what the data size is
just from the char* (since the data is not really a string)

* turning free functions in program state into members of program_state_impl

* change the free function globals() into a member of program_state_impl

* replace the static mutex used for populating globals

* moving associate_code_object_symbols_with_host_allocation into
program_state_impl

* move load_code_object_and_freeze_executable into program_state_impl

* moving executables and functions_names into program_state_impl

* moving kernels() into program_state_impl

* moving functions() into program_state_impl

* move get_kernargs into program_state_impl

* moving kernel_descriptor into program_state_impl

* moving kernargs_size_align calculation into program_state_impl

* Changing the handle to program_state_impl to a pointer

* moving program_state_impl into a separate inline source file

* fixing/cleaning up some header file includes

* moving member function for kernargs_size_align into program_state.cpp

* moving Kernel_descriptor into program_state.inl

* add a new class to manage agent globals

* moving all agent globals processing functions into agent_globals_impl

* load program state once per agent

re-merging PR991 against other program state changes

* fix per-agent program state member initialization

* cache executables based on elf name, isa, and agent.

This avoids program state reloading executables after a shared library is dlopened.

re-merging PR1057 against other program state changes

* protect executables cache by a global mutex

* return ref to executables cache

* adapt PR#981 Make hipModuleGetGlobal be in HIP runtime
2019-05-12 19:24:03 +05:30
Aaron Enye Shi a3d118eaa8 Revert "Use COMgr to read Kernel Args Metadata (#1006)"
This reverts commit 8a548bf40b.
2019-04-26 16:04:56 -04:00
Aaron Enye Shi 48701ad4ba Revert "Add COMGR relative path for build machines"
This reverts commit 920fe246d7.
2019-04-26 16:04:56 -04:00
Aaron Enye Shi 920fe246d7 Add COMGR relative path for build machines 2019-04-23 17:16:26 -04:00
Aaron Enye Shi 8a548bf40b Use COMgr to read Kernel Args Metadata (#1006)
* Add CMAKE dep to amd_comgr

* Use COMGR for read_kernarg_metadata in COV2

* Do not assume kernargs exist

* Add proper metadata destroy cleanup

* Use a process function for easier destroy

* Remove old read_kernarg_metadata

* Clean up HCC, prints, names

* Use COMGR in CMAKE by default

* Move metadata lookup for keyword values into helper

* Remove C string usage for lookup_keyword_value

* Guard COMGR for non-NVCC path

* Add hip_hcc dependency on comgr package

* Add lifetime to metadata nodes

* Find COMGR config file for amd_comgr target

* Move set_active data earlier
2019-04-16 08:34:39 +05:30
eshcherb f167e4daf6 adding hip_prof_gen verbose log (#977)
* adding hip_prof_gen verbose log

* adding stderr fatal error

* adding no error exit by default

* adding hip_prof_str regeneration dependencies

* adding more informative messages

* fixing error mesage
2019-03-21 05:28:18 +00:00
eshcherb 673cdeea55 adding prof primitives generator (#967)
* adding prof primitives generator

* minor change, renaming

* minor cosmetic changes, comments correcting and dead code removing

* minor changes and renaming

* minor chane, fixing comments
2019-03-20 05:11:40 +00:00
eshcherb 88b4621dbd roctracer-proto header find_path (#884) 2019-03-06 17:36:34 +05:30
Alex Voicu ea0fcf3e61 dlopen() fixes (#929)
* Initial attempt to switch over to internally linked state.

* Add missing CMake update.

* hipLaunchKernelGGLImpl must be inline as well. Ensure internal linkage.

* Ensure global retrieval uses internally linked state.

* Hide HC in the implementation. Minimise ADL woes.

* Strange software exists, and must be catered to.

* Use a less spammy mechanism for ensuring internal linkage / non-export.

* Remove leftover internal detail.
2019-03-06 17:31:44 +05:30
Yaxun Sam Liu c5e813f64c Add __gnu_h2f_ieee and __gnu_f2h_ieee
The implementation is copied from HCC runtime.

For hcc it has no effect since apps can find them in either hcc runtime or HIP
runtime.

hip-clang needs it in HIP/HCC runtime so that HIP/HCC and HIP/VDI runtime are
swappable.
2019-02-21 12:48:28 -05:00
Maneesh Gupta 4ff12f958c Merge pull request #891 from aaronenyeshi/hip-clang-default
hipcc defaults to HIP-Clang if built with HIP-Clang
2019-02-07 05:58:38 +05:30
Aaron Enye Shi 479d2d093f Add HIP_RUNTIME for HCC or VDI 2019-02-01 22:30:30 +00:00
Aaron Enye Shi 489cef167f hipcc defaults to HIP-Clang if built with HIP-Clang
Add HIP_COMPILER to hipConfig, so that HIP packages built with HIP_COMPILER for HIP-Clang will be known during runtime by hipcc. Also add default locations to check for llvm and device-libs.
2019-02-01 16:52:55 +00:00
Evgeny 88628c757f roctracer-proto pkg-config fix to includedir 2019-01-29 13:15:26 -06:00
Evgeny 81da838722 PROF_API pkgconfig roctracer-proto module lookup 2019-01-23 23:40:35 -06:00
Evgeny 21f2ef94ee enabling PROF_API pkgconfig 2019-01-23 22:05:50 -06:00
Maneesh Gupta 49f1f70c93 Don't break cmake configure if roctracer headers not found
Change-Id: I35e49b52353ab24680836e397ab50136922f8641
2019-01-18 13:23:57 +05:30
Yaxun Sam Liu 450f093231 Let hip-clang support --genco 2018-11-27 15:55:50 -05:00
Evgeny 8a4354bdc0 FATAL_ERRROR if Profiling API header not found 2018-11-22 21:51:20 -06:00
Evgeny 3bcf2fcd18 fixing the adding of USE_PROF_API define only if the tracer header was found 2018-11-22 21:12:08 -06:00
Evgeny b8b1637ef7 adding activity prof layer 2018-11-13 15:33:26 +00:00
Aaron Enye Shi 817b27d530 Remove libhip_device.a static library
Move remaining function definitions from device_util.cpp to hip_runtime.h header. We can now remove the static library completely as device_util.cpp was the last file part of target hip::hip_device .
2018-10-25 19:52:35 +00:00
Aaron Enye Shi e01c53b185 Create separate config files for hcc and clang
The state of HIP_COMPILER is not passing into config files, therefore config files cannot use if statements to determine dependency. For HIP-Clang, we should remove find_dependency(hcc), so we create separate config files depending on compiler path. This fixes issue in apps that uses hip-config.cmake.
2018-09-19 18:29:56 +00:00
Aaron Enye Shi dbcede2ab8 Remove few hcc specific cmake for hip-clang 2018-08-15 21:53:20 +00:00
Aaron Enye Shi 704f236c9a Enable HIP_COMPILER to choose HIP-Clang lib links 2018-08-01 20:37:46 +00:00
Aaron Enye Shi 76f86ef097 Implement hip_ldg Functions into HIP header
Move all the function definitions for hip_ldg.cpp into hip_ldg.h header and enable for HIP clang path.
2018-07-05 20:38:46 +00:00
Aaron Enye Shi 2142eb4d12 Implement hip_hc.ll into HIP headers
Move all __hip_hc_ir_* functions from hip_hc.ll into HIP header as inline asm. Remove hip_hc.ll and build dependencies from HIP.
2018-06-20 17:39:31 +00:00
Aaron Enye Shi e02fc7e680 Implement device_functions.cpp into HIP headers
Move all Integer Intrinsics, device_functions.cpp definitions and HIP specific device functions into HIP headers. Implement the device functions using llvm_intrinsics and device-libs functions instead of calling hc::__* functions. Remove device_functions.cpp since everything is now defined in header.
2018-06-20 17:39:23 +00:00
Alex Voicu 417869821d Re-sync with upstream. 2018-06-01 15:49:05 +01:00
Alex Voicu ab4b2a650b Re-sync with upstream. Add integer abs. 2018-05-31 16:38:00 +01:00
Alex Voicu 59db16fd36 Switch to using ROCDL directly, as opposed to via HC. Add missing bits. 2018-05-31 03:17:26 +01:00
Alex Voicu 9c7fbdb597 Remove vestigial inline LLVMIR. 2018-05-24 12:46:14 +01:00
Alex Voicu 6f819f226b Missing commit. 2018-05-23 17:57:47 +01:00
Maneesh Gupta 2cb59db654 Merge pull request #418 from pfultz2/host-device-targets
Add host and device targets
2018-05-22 06:33:56 +05:30
Siu Chi Chan b898049412 initial gfx906 support 2018-05-10 19:28:00 +00:00
Paul 516d92f4d7 Add host and device targets 2018-04-24 14:04:24 -05:00
Aaron Enye Shi 433866eb60 Remove unsupported targets gfx801 and gfx802
These architectures are no longer supported. Should not compile for them.
2018-04-23 15:25:35 -04:00
Maneesh Gupta b1be325745 [cmake] Update target build dependencies
Change-Id: Ib1c34135c0d04f88daa695e7a90272225d7e64b0
2018-04-11 15:30:13 +05:30
Laurent Morichetti 0c1893ea62 Add support for clang offload bundles and <<<>>> kernel launch. 2018-04-04 13:32:33 -07:00
Maneesh Gupta 18e70b1e6b Merge pull request #363 from gargrahul/surface_object_api
Added surface object support
2018-03-09 11:50:30 +05:30
Alex Voicu 75840b4b00 Update CMakeLists.txt 2018-03-01 16:06:09 +00:00
Rahul Garg 5c3b91a0a1 Added surface object support 2018-02-26 11:59:03 +05:30
Alex Voicu dc7560ef22 Change directory name to match HIP lowercase style. 2018-02-22 13:15:10 +00:00
Alex Voicu 49ef24c042 Merge branch 'master' of https://github.com/ROCm-Developer-Tools/HIP into feature_purge_genco 2018-02-22 12:08:52 +00:00
Maneesh Gupta 1e559d19c3 [build] Add clangformat target to cmake
- Added a new target "clangformat" which formats the code using the
  clang-format tool found in HCC package.
- Renamed target "static_check" to "cppcheck".
- Use find_program() macro to make the build system more robust.

Change-Id: Ifefbf36f23ff7ef27a870120d5b9170d0cc8aa52
2018-02-12 10:21:27 +05:30
Alex Voicu ed75522ba5 Merge branch 'master' of https://github.com/ROCm-Developer-Tools/HIP into feature_purge_genco 2018-01-17 14:02:19 +00:00
Alex Voicu 5a4955617e Add Catecholamine (CA), a tool for breaking code objects out of fat binaries created via LPL. As with LPL, --help provides usage details. Fixed LPL's implementation of path_to_self which was a nasty infinite loop iff for whatever reason readlink would always fail, orthogonally to the string's size. Link against pthread for LPL, which uses call_once and once_flag (this could, under certain circumstances, yield an arcane "Unknown error=-1" exception. 2017-12-14 13:32:27 +00:00
Maneesh Gupta 7930c03e42 [cmake] Added target static_check for static code analysis
- Added static code analysis using cppcheck
- Fixed couple of warnings reported by cppcheck

Change-Id: Ie3b9b06e95ada322e7dc2ce3d6b91831e870198d
2017-12-14 12:16:44 +05:30
Alex Voicu 819e72fba6 Add omitted changes in CMakeLists.txt. 2017-11-10 01:20:50 +00:00
Chris Kitching 8fefc6a2b7 Use cmake's builtin mechanism for handling library locations
See [the documentation](https://cmake.org/cmake/help/v3.0/command/find_package.html)
for exactly how the search procedure works. If you want to use an
LLVM from a specific location, use CMAKE_PREFIX_PATH as normal.

No longer do we have a nonstandard HIPIFY_CLANG_LLVM_DIR variable
for people to learn about.
2017-10-27 19:39:40 +01:00