Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VITIS-12792 HIP Binding: Memory pool APIs #8268

Merged
merged 83 commits into from
Oct 6, 2024
Merged
Show file tree
Hide file tree
Changes from 72 commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
49abcee
add hipMemsetD32Async().
zhangchiming May 15, 2024
b3091df
fix typo.
zhangchiming May 15, 2024
0f98a8f
Replace hard coded name with __func__.
zhangchiming May 16, 2024
47fe9cb
fix staled pointer error.
zhangchiming May 16, 2024
ba1e8db
fix double allocation issue.
zhangchiming May 16, 2024
ae76085
fix incorrect share_ptr use.
zhangchiming May 17, 2024
98e114c
add hipMemsetD32Async().
zhangchiming May 15, 2024
1f2880c
fix typo.
zhangchiming May 15, 2024
a31bebb
Replace hard coded name with __func__.
zhangchiming May 16, 2024
fdc6516
fix staled pointer error.
zhangchiming May 16, 2024
b8909e5
fix double allocation issue.
zhangchiming May 16, 2024
6808339
1) add lock in memory_database::get_hip_mem_from_addr()
zhangchiming May 3, 2024
5e277dd
fix incorrect share_ptr use.
zhangchiming May 17, 2024
40a508d
Fix rebase error.
zhangchiming May 20, 2024
fc287ea
move to_hex() into core/common/utils.h
zhangchiming May 22, 2024
fd8fda3
remove extra member in class copy_buffer.
zhangchiming May 23, 2024
147df5c
fix a typo.
zhangchiming May 23, 2024
0ad2df6
fix a typo.
zhangchiming Jun 6, 2024
3b4df2d
fix some typo and remove template use from copy_buffer class implemen…
zhangchiming Jun 6, 2024
e5972cb
Merge branch 'master' of github.com:zhangchiming/XRT
zhangchiming Jun 6, 2024
dc2f04b
Merge branch 'Xilinx:master' into master
zhangchiming Jun 10, 2024
52c8f28
change type of err_msg argument of helper function throw_if() to cons…
Jun 10, 2024
e815e7a
Merge branch 'Xilinx:master' into master
zhangchiming Jun 10, 2024
776ebde
Merge branch 'Xilinx:master' into master
zhangchiming Jun 11, 2024
b8efc97
Merge branch 'Xilinx:master' into master
zhangchiming Jun 16, 2024
d529aea
fix incorrect usage of shared_ptr in copy_buffer constructor.
zhangchiming Jun 18, 2024
4b43440
change the place where host_vec is moved.
zhangchiming Jun 18, 2024
213e42a
add back missing std::move in copy_from_host_buffer_commad constructor.
zhangchiming Jun 18, 2024
dcec0d0
Merge branch 'Xilinx:master' into master
zhangchiming Jun 22, 2024
aa739f0
Merge branch 'Xilinx:master' into master
zhangchiming Jun 30, 2024
a91ee48
Merge branch 'Xilinx:master' into master
zhangchiming Jul 2, 2024
c887b87
Merge branch 'Xilinx:master' into master
zhangchiming Jul 3, 2024
1e275a5
Add initial implementation of hip stream ordered memory allocator.
zhangchiming Jul 3, 2024
6ccf053
Fix the size alignment in memory pool allocator.
zhangchiming Jul 3, 2024
dbfded0
fix rebase error.
zhangchiming Jul 3, 2024
e8c463a
fix rebase error.
zhangchiming Jul 3, 2024
0b0f3de
fix rebase error.
zhangchiming Jul 3, 2024
08336d2
Merge branch 'Xilinx:master' into master
zhangchiming Jul 3, 2024
622ae0e
Add comment for the choice of shared_ptr vs unique_ptr in in enqueing…
zhangchiming Jul 3, 2024
179ea49
Add comment for using shared_ptr for storage of pointer to memory_poo…
zhangchiming Jul 3, 2024
ab941d4
use unique_ptr for device_cache.
Jul 5, 2024
177a7f1
Merge branch 'Xilinx:master' into master
zhangchiming Jul 9, 2024
89eca2b
Fix issues raised in code review.
Jul 9, 2024
95eac6c
fix the error in memory::write().
Jul 9, 2024
7e9103b
remove curly braces.
Jul 9, 2024
4a2d401
Merge branch 'Xilinx:master' into master
zhangchiming Jul 9, 2024
94742f5
Fix issues in hipMallocAsync() and hipFreeAsync().
Jul 10, 2024
98ad99d
fix error found in unit testing.
Jul 10, 2024
f613080
use sub class of hip::memory for async allocation from hip memory pool.
Jul 10, 2024
06b3a5b
Merge branch 'Xilinx:master' into master
zhangchiming Jul 10, 2024
421670f
fix the error in sub mem lookup from memory_database.
Jul 10, 2024
975e1e3
Merge branch 'master' of github.com:zhangchiming/XRT
Jul 10, 2024
e288da7
Merge branch 'Xilinx:master' into master
zhangchiming Jul 29, 2024
21b6834
remove sub_mem address map.
Jul 31, 2024
20547d2
code clean up.
Aug 2, 2024
5897820
Merge branch 'Xilinx:master' into master
zhangchiming Aug 2, 2024
2920570
Merge branch 'master' of github.com:zhangchiming/XRT
Aug 2, 2024
3ee2a94
Merge branch 'Xilinx:master' into master
zhangchiming Aug 5, 2024
51cf99b
Merge branch 'Xilinx:master' into master
zhangchiming Aug 7, 2024
8e00bea
add code for hipDeviceGetDefaultMemPool(), hipDeviceGetMemPool() and …
Aug 7, 2024
949944b
Merge branch 'Xilinx:master' into master
zhangchiming Aug 8, 2024
d836e5e
fix nullptr error.
Aug 8, 2024
3ee0e40
Merge branch 'master' of github.com:zhangchiming/XRT
Aug 8, 2024
d78756a
Merge branch 'Xilinx:master' into master
zhangchiming Aug 9, 2024
4a1c8fb
Fix compile error on Linux.
zhangchiming Aug 9, 2024
3af0ef0
Merge branch 'Xilinx:master' into master
zhangchiming Aug 14, 2024
f33cd91
Merge branch 'Xilinx:master' into master
zhangchiming Aug 15, 2024
bd3bfe1
Merge branch 'Xilinx:master' into master
zhangchiming Aug 19, 2024
9351087
Merge branch 'Xilinx:master' into master
zhangchiming Aug 21, 2024
f4c270a
Merge branch 'Xilinx:master' into master
zhangchiming Aug 26, 2024
6035ddd
Merge branch 'Xilinx:master' into master
zhangchiming Aug 26, 2024
865f551
Merge branch 'Xilinx:master' into master
zhangchiming Aug 26, 2024
90f7a7b
Fix compile warning caused by using "int" type.
zhangchiming Aug 26, 2024
832ea3a
Merge branch 'master' of github.com:zhangchiming/XRT
zhangchiming Aug 26, 2024
65b6c67
Merge branch 'Xilinx:master' into master
zhangchiming Aug 29, 2024
65626f8
Merge branch 'Xilinx:master' into master
zhangchiming Sep 3, 2024
010daa8
Merge branch 'Xilinx:master' into master
zhangchiming Sep 19, 2024
f671397
Merge branch 'Xilinx:master' into master
zhangchiming Sep 20, 2024
2aafbe4
fix compile error in release builds.
zhangchiming Sep 20, 2024
a4afd8d
Fix compile error.
zhangchiming Sep 20, 2024
a26b03a
Merge branch 'Xilinx:master' into master
zhangchiming Sep 20, 2024
eebedac
Merge branch 'Xilinx:master' into master
zhangchiming Sep 30, 2024
e74cdeb
Merge branch 'Xilinx:master' into master
zhangchiming Oct 1, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions src/runtime_src/core/common/api/handle.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,12 @@ class handle_map<HandleType, std::shared_ptr<ImplType>>
}

public:
const std::map<HandleType, std::shared_ptr<ImplType>>&
get_map() const
{
return handles;
}

const std::shared_ptr<ImplType>&
get_or_error(HandleType handle) const
{
Expand Down Expand Up @@ -105,6 +111,12 @@ class handle_map<HandleType, std::unique_ptr<ImplType>>
std::map<HandleType, std::unique_ptr<ImplType>> handles;

public:
const std::map<HandleType, std::unique_ptr<ImplType>>&
get_map() const
{
return handles;
}

ImplType*
get_or_error(HandleType handle) const
{
Expand Down Expand Up @@ -153,6 +165,13 @@ class handle_map<HandleType, std::unique_ptr<ImplType>>
std::lock_guard<std::mutex> lk(mutex);
return handles.count(handle);
}

size_t
size() const
{
std::lock_guard<std::mutex> lk(mutex);
return handles.size();
}
};

} // xrt_core
7 changes: 6 additions & 1 deletion src/runtime_src/hip/api/hip_device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

#include "hip/core/common.h"
#include "hip/core/device.h"
#include "hip/core/memory_pool.h"

#include <cstring>
#include <mutex>
Expand Down Expand Up @@ -46,8 +47,12 @@ device_init()
for (uint32_t i = 0; i < dev_count; i++) {
if (device_cache.count(static_cast<device_handle>(i)) > 0)
continue;
auto dev = std::make_shared<xrt::core::hip::device>(i);
auto dev = std::make_unique<xrt::core::hip::device>(i);
device_cache.add(i, std::move(dev));
auto default_mem_pool = std::make_shared<xrt::core::hip::memory_pool>(device_cache.get_or_error(i), MAX_MEMORY_POOL_SIZE_NPU, MEMORY_POOL_BLOCK_SIZE_NPU);
memory_pool_db[i].push_front(default_mem_pool);
current_memory_pool_db[i] = default_mem_pool;
insert_in_map(mem_pool_cache, default_mem_pool);
}
// make first device as default device
if (dev_count > 0)
Expand Down
Loading
Loading