SWDEV-232894 Port hipMemcpy optimizations from HCC to VDI

Change-Id: I6bebe9ac503a9f80d067aeea8a848409ad210338
Цей коміт міститься в:
Alex Xie authored and AlexBin Xie committed 2020-04-27 14:53:58 -04:00
1 джерело 082cbfa1f5
коміт 009d0b5f55
7 files changed
+64 -2

No files matched your search

+6 -1
Переглянути файл
@@ -50,7 +50,8 @@ Context::Context(const std::vector<Device*>& devices, const Info& info)
info_(info),
properties_(NULL),
glenv_(NULL),
customHostAllocDevice_(NULL) {
customHostAllocDevice_(NULL),
largeBar_(true) {
for (const auto& device : devices) {
device->retain();
if (customHostAllocDevice_ == NULL && device->customHostAllocator()) {
@@ -59,7 +60,11 @@ Context::Context(const std::vector<Device*>& devices, const Info& info)
if (device->svmSupport()) {
svmAllocDevice_.push_back(device);
}
if (!device->isLargeBar()) {
largeBar_ = false;
}
}
if (svmAllocDevice_.size() > 1) {
uint isFirstDeviceFGSEnabled = svmAllocDevice_.front()->isFineGrainedSystem(true);
for (auto& dev : svmAllocDevice_) {
+3
Переглянути файл
@@ -205,12 +205,15 @@ class Context : public RuntimeObject {
void setDefDeviceQueue(const Device& dev, DeviceQueue* queue)
{ deviceQueues_[&dev].defDeviceQueue_ = queue; };
bool isLargeBar() { return largeBar_; }
private:
const Info info_; //!< Context info structure
cl_context_properties* properties_; //!< Original properties
GLFunctions* glenv_; //!< OpenGL context
Device* customHostAllocDevice_; //!< Device responsible for host allocations
std::vector<Device*> svmAllocDevice_; //!< Devices can support SVM allocations
bool largeBar_; //!< Devices supports large bar
std::unordered_map<const Device*, DeviceQueueInfo> deviceQueues_; //!< Device queues mapping
mutable Monitor ctxLock_; //!< Lock for the context access
};