Commit Graph

129 Commits

Author SHA1 Message Date
Maneesh Gupta 7013f87885 Merge pull request #1140 from scchan/program_state_stage_2-rebase-20190524
migrate more program_state logic from header into shared library (phase II)
2019-06-05 16:09:01 +05:30
Aryan Salmanpour f34654f8aa Header change for new hip API hipExtLaunchMultiKernelMultiDevice 2019-05-30 18:04:05 -04:00
Maneesh Gupta 21a9e05867 Header changes for cooperative groups
Change-Id: I5f3acca94275d74adc97adcb168aed9f74951189
2019-05-28 16:58:55 +05:30
Siu Chi Chan 54f94ed02f remove code_object_bundle.hpp, clean up the old Agent_global 2019-05-24 18:13:05 -04:00
Siu Chi Chan 4239cfcf02 moving agent_globals_impl into hip_module 2019-05-24 16:43:38 -04:00
Evgeny Mankov 8f059b0ee9 [HIP][HIPIFY] Make hipMemcpyParam2D coherent with cuMemcpy2D
+ Makes hip_Memcpy2D struct compatible with CUDA_MEMCPY2D struct
+ Add hipMemcpyParam2D support in nvcc fallback path
+ Update hipify-clang, tests and docs accordingly
2019-05-22 18:31:39 +03:00
Wen-Heng (Jack) Chung 9b9257f9b0 Revert "HACK for SWDEV-173477" (#1004)
* Revert "HACK for SWDEV-173477"

This reverts commit d941f19399.
2019-05-13 14:42:05 +05:30
Rahul Garg aeeab1b23f Add fine grained host memory lock support (#1095)
* Add fine grained host memory lock support

* Fix default flag check
2019-05-13 11:48:26 +05:30
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
Maneesh Gupta 035ef04e1f Implement hipExtGetLinkTypeAndHopCount for ROCm devices
Change-Id: Ie5bb4f640ac6d189c7fceeab22627a7494fd10bd
2019-05-06 15:54:31 +05:30
Maneesh Gupta e489f7579a Merge pull request #1040 from eshcherb/roctracer-hip-frontend-190422
hip_prof_api.h include under __cplusplus
2019-04-24 16:50:27 +05:30
Rahul Garg 2bc2c46d4d Add hipMallocManaged default functional support (#1036)
* Add hipMallocManaged default functional support

* Fix build error

* Add dtest
2019-04-24 16:50:03 +05:30
Evgeny af3f3ccb2b hip_prof_api.h include under __cplusplus 2019-04-22 21:14:18 -05:00
Mr-LiuSw dc07b1b06c add little changes in hip_runtime_api.h to work with c language (#1017)
* Update hip_runtime_api.h

when i try to use mpicc or gcc to compile a c language code which call some hip runtime api , error occured as
> /path/to/hcc_detail/hip_runtime_api.h:2268:33: error: unknown type name ‘hipFuncAttributes’; 
> hipFuncGetAttributes(hipFuncAttributes* attr, const void* func);
 
add ' struct ' for the first parameter of hipFuncGetAttributes will get ride of this problem.
2019-04-16 08:35:36 +05:30
Wen-Heng (Jack) Chung 4b7177ac42 Make hipModuleGetGlobal be in HIP runtime so it can be discovered at runtime (#981)
* Make hipModuleGetGlobal be in HIP runtime so it can be discovered at runtime

In HIP PR #929, quite a few HIP public APIs were made as inline functions with
hidden visibility. It was necessary to support applications with shared
libraries with GPU kernels launched via hipLaunchKernelGGL(), after HIP runtime
is initialized.

In empirical tests, the implementation has been proved to be a bit too
excessive, especially for hipModuleGetGlobal(). The function is used by another
type of client applications which relies on the existence of this function
within HIP runtime so global symbols from HSA code objects loaded dynamically
at runtime can be retrieved programmtically.

This commit moves hipModuleGetGlobal() back to src/hip_module.cpp, and makes it
visible and not inline, to fulfill requirements for applications
aforementioned. It does not change the behavior of applications depending on
hipLaunchKernelGGL().

* Add HIP_INIT_API into the implementation of hipModuleGetGlobal

Address review comments.

* Fix failing HIP unit tests
2019-03-29 03:45:04 +00:00
Jeff Daily 7aada87cbd improve program state commentary
Disambiguate calling many varibles "agent".
More detail in exception message.
Create and discard map placeholders; no need to call std::vector::clear() on map value.
2019-03-27 21:40:27 +00:00
Jeff Daily c9117de8eb load program state once per agent 2019-03-27 18:19:10 +00:00
Maneesh Gupta 30b5c02ec4 Merge pull request #970 from mangupta/swdev-172995
hipExtMallocWithFlags implementation
2019-03-25 07:46:53 +00:00
Wen-Heng (Jack) Chung d941f19399 HACK for SWDEV-173477
For code objects with global symbols of length 0, ROCR runtime would
ignore them even though they exist in the symbol table. Therefore the
result from read_agent_globals() can't be trusted entirely.

As a workaround to tame applications which depend on the existence of
global symbols with length 0, always return hipSuccess here.

This behavior shall be reverted once ROCR runtime has been fixed to
address SWDEV-173477
2019-03-21 17:18:16 +00:00
Maneesh Gupta 6ade928535 Merge pull request #972 from yxsamliu/global
Add declaration of symbol related API for VDI
2019-03-20 05:12:21 +00:00
Siu Chi Chan 24d08beef8 reimplement HIP_INIT as hip_impl::hip_init(), add hip_init() to some of the inlined API (#966)
* reimplement HIP_INIT as a function, expose it as hip_impl::hip_init()
so that it could be called from hipLaunchKernelGGL and other inlined
HIP functions

* Don't call hip_init from ihipPreLaunchKernel
2019-03-20 05:11:15 +00:00
Yaxun Sam Liu e9bc4034d8 Add declaration of symbol related API for VDI 2019-03-19 11:11:49 -04:00
Maneesh Gupta 73ec5d54b5 hipExtMallocWithFlags implementation
Change-Id: Iee9e119796472200b2933d5e23be60813f33bc75
2019-03-19 11:59:22 +05:30
Evgeny 31475c5ac8 tracing callback layer update 2019-03-14 22:43:52 -05:00
Siu Chi Chan cb9ea5cefc minor cleanup 2019-03-11 19:51:57 +00:00
Siu Chi Chan bf1d48bf78 Fix memory leak introduced by previous change to Agent_global.
Make Agent_global manage the lifetime of the name string
2019-03-11 19:51:32 +00:00
Aaron Enye Shi 00d24d254d Fix Agent_global variables failing hipTestDeviceSymbol
Issue: Header uses std::vector<Agent_global> agent_globals which is created by hip_module.cpp
  - Move iterator fails to copy Agent_global from library source into header version
  - Due to different versions of std::string name in struct Agent_global
Fix: Change Agent_global to use char* name instead of std::string name
2019-03-11 19:51:25 +00:00
Aaron Enye Shi 23e9968752 Fix hash_for undefined reference in hipTestConstant test
Issue: mismatch undefined symbols in different user env
  - Binary expects modified return value std::string&
  - Fails to match libhip_hcc.so: return value is std::string& but doesn't match modified C++ env
Fix: Change return value to char*, create new key std::string in header from char*
2019-03-11 19:51:18 +00:00
Yaxun Sam Liu 6e9e90addd Fix HIP/VDI build failure due to dlopen change 2019-03-07 14:45:45 -05:00
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
Wen-Heng (Jack) Chung 5cbd28f29b Address code review comments to use hipDeviceptr_t 2019-03-05 05:51:05 +00:00
Wen-Heng (Jack) Chung 7ebbbd3525 Add hipMemsetD32 and hipMemsetD32Async
Add 2 extra memset functions which fills memory with integer-typed data

Also change the parameters of ihipMemset to better explain the semantic
2019-03-04 17:00:33 +00:00
Laurent Morichetti c9f552968d Fix compilation issues with MSVC 2019-01-09 09:32:50 -08:00
Yaxun Sam Liu 548f4dd4e5 Use __dparm for default parameter 2018-12-31 13:07:19 -05:00
Yaxun Sam Liu ec03a8b352 Add default arguments for hipConfigureCall 2018-12-18 15:48:21 -05:00
Maneesh Gupta 160c509e23 Merge pull request #760 from eshcherb/roctracer-hip-frontend-181113
Roctracer hip frontend 181113
2018-11-23 11:08:25 +05:30
Evgeny 47f1d059d1 hip_prof_(api/str).h moving under hcc_detail dir 2018-11-13 15:33:26 +00:00
Evgeny b8b1637ef7 adding activity prof layer 2018-11-13 15:33:26 +00:00
Michael Kuron 31acf1c268 Introduce ihipModuleGetGlobal 2018-11-06 09:54:34 +01:00
Michael Kuron 4390c82121 Document return values of hipMemcpyToSymbol, hipGetSymbolAddress 2018-11-04 11:47:17 +01:00
Michael Kuron 73616582d6 Implement hipGetSymbolAddress and hipGetSymbolSize 2018-11-04 10:39:34 +01:00
Jeff Daily bb447dd76e typedef struct hipFuncAttributes now C compatible.
Fixes #591.
Fixes #694.
2018-10-31 14:12:45 +05:30
Maneesh Gupta da64156fb2 Implementation for stream priority
- Requires ROCm 1.9.x or higher
- Requires HCC with PR#886 merged

Change-Id: Id7c95ea091ee610e80c9ad815f1cb989cba570ca
2018-10-05 16:27:46 +05:30
Rahul Garg bd4816fc85 Added another variant of bindtextoarray for direct porting 2018-07-05 23:41:31 +05:30
Maneesh Gupta df3bb9fc32 Merge pull request #445 from ROCm-Developer-Tools/feature_func_attributes
Add support for the hipFuncGetAttributes interface.
2018-05-22 09:37:41 +05:30
Alex Voicu 13274ce559 Add support for the hipFuncGetAttributes interface. 2018-05-11 03:35:10 +01:00
Rahul Garg da302c3e93 Added hipMemset3D 2018-05-07 10:24:30 +05:30
Rahul Garg 9de5f23d54 Fix texture 3D for HIP/NVCC 2018-05-02 11:56:37 +05:30
Maneesh Gupta adcd8553c3 Merge pull request #419 from gargrahul/fix_hip_gcc_host_build
Fix gcc build issues for host code
2018-05-01 12:42:50 +05:30
Rahul Garg 639001933c Fix gcc build issues for host code 2018-04-25 12:30:11 +05:30