2
0

P4 to Git Change 1917655 by vsytchen@vsytchen-remote-ocl-win10 on 2019/06/28 10:05:26

SWDEV-193973 - [OpenCL][NV21] Add support for Navi21

	1. Recognize gfx10.3 in OpenCL.
	2. Don't report nv12/nv12_lite/nv21 for mainline OpenCL.
	3. Disable nv10_lite/nv21_lite for OpenCL (gfx1000/1020 are not supported by LC).

	ReviewBoardURL = http://ocltc.amd.com/reviews/r/17603/diff/

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbedefs#42 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palcounters.cpp#23 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldefs.hpp#56 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#147 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palsettings.cpp#87 edit
... //depot/stg/opencl/drivers/opencl/runtime/utils/macros.hpp#13 edit
Este cometimento está contido em:
foreman
2019-06-28 10:14:56 -04:00
ascendente c99c79f578
cometimento 2bc8836012
5 ficheiros modificados com 42 adições e 46 eliminações
+1 -2
Ver ficheiro
@@ -670,8 +670,7 @@ void PerfCounter::convertInfo() {
info_.counterIndex_ = std::get<1>(p);
}
break;
case Pal::GfxIpLevel::GfxIp10:
case Pal::GfxIpLevel::GfxIp10_1:
case Pal::GfxIpLevel::GfxIp10_1::
if (info_.blockIndex_ < gfx10BlockIdPal.size()) {
auto p = gfx10BlockIdPal[info_.blockIndex_];
info_.blockIndex_ = std::get<0>(p);
+31 -29
Ver ficheiro
@@ -126,8 +126,10 @@ struct AMDDeviceInfo {
bool xnackEnabled_; //!< Enable XNACK feature
};
static const AMDDeviceInfo DeviceInfo[] = {
/* Unknown */ {"", "", 16, 256, 32, 0, 0, false},
static constexpr AMDDeviceInfo UnknownDevice = {"", "", 16, 256, 32, 0, 0, false};
static constexpr AMDDeviceInfo DeviceInfo[] = {
/* Unknown */ UnknownDevice,
/* Tahiti */ {"", "", 16, 256, 32, 600, 600, false},
/* Pitcairn */ {"", "", 16, 256, 32, 600, 600, false},
/* Capeverde */ {"", "", 16, 256, 32, 700, 700, false},
@@ -158,35 +160,35 @@ static const AMDDeviceInfo DeviceInfo[] = {
// Ordering as per AsicRevision# in //depot/stg/pal/inc/core/palDevice.h and
// http://confluence.amd.com/pages/viewpage.action?spaceKey=ASLC&title=AMDGPU+Target+Names
static const AMDDeviceInfo Gfx9PlusSubDeviceInfo[] = {
/* Vega10 */ {"gfx900", "gfx900", 16, 256, 32, 900, 900, false},
/* Vega10 XNACK */ {"gfx901", "gfx900", 16, 256, 32, 900, 901, true},
/* Vega12 */ {"gfx904", "gfx904", 16, 256, 32, 904, 904, false},
/* Vega12 XNACK */ {"gfx905", "gfx904", 16, 256, 32, 904, 905, true},
/* Vega20 */ {"gfx906", "gfx906", 16, 256, 32, 906, 906, false},
/* Vega20 XNACK */ {"gfx907", "gfx906", 16, 256, 32, 906, 907, true},
/* Raven */ {"gfx902", "gfx902", 16, 256, 32, 902, 902, false},
/* Raven XNACK */ {"gfx903", "gfx902", 16, 256, 32, 902, 903, true},
/* Raven2 */ {"gfx902", "gfx902", 16, 256, 32, 902, 902, false},
/* Raven2 XNACK */ {"gfx903", "gfx902", 16, 256, 32, 902, 903, true},
/* Renoir */ {"gfx902", "gfx902", 16, 256, 32, 902, 902, false},
/* Renoir XNACK */ {"gfx903", "gfx902", 16, 256, 32, 902, 903, true},
static constexpr AMDDeviceInfo Gfx9PlusSubDeviceInfo[] = {
/* Vega10 */ {"gfx900", "gfx900", 16, 256, 32, 900, 900, false},
/* Vega10 XNACK */ {"gfx901", "gfx900", 16, 256, 32, 900, 901, true},
/* Vega12 */ {"gfx904", "gfx904", 16, 256, 32, 904, 904, false},
/* Vega12 XNACK */ {"gfx905", "gfx904", 16, 256, 32, 904, 905, true},
/* Vega20 */ {"gfx906", "gfx906", 16, 256, 32, 906, 906, false},
/* Vega20 XNACK */ {"gfx907", "gfx906", 16, 256, 32, 906, 907, true},
/* Raven */ {"gfx902", "gfx902", 16, 256, 32, 902, 902, false},
/* Raven XNACK */ {"gfx903", "gfx902", 16, 256, 32, 902, 903, true},
/* Raven2 */ {"gfx902", "gfx902", 16, 256, 32, 902, 902, false},
/* Raven2 XNACK */ {"gfx903", "gfx902", 16, 256, 32, 902, 903, true},
/* Renoir */ {"gfx902", "gfx902", 16, 256, 32, 902, 902, false},
/* Renoir XNACK */ {"gfx903", "gfx902", 16, 256, 32, 902, 903, true},
/* Navi10_A0 */ {"gfx1010", "gfx1010", 32, 256, 32, 1010, 1010, false},
/* Navi10_A0 XNACK */ {"gfx1010", "gfx1010", 32, 256, 32, 1010, 1010, true},
/* Navi10 */ {"gfx1010", "gfx1010", 32, 256, 32, 1010, 1010, false},
/* Navi10 XNACK */ {"gfx1010", "gfx1010", 32, 256, 32, 1010, 1010, true},
/* Navi10Lite */ {"gfx1000", "gfx1000", 32, 256, 32, 1000, 1000, false},
/* Navi10LiteXNACK */ {"gfx1000", "gfx1000", 32, 256, 32, 1000, 1000, true},
/* Navi12 */ {"gfx1011", "gfx1011", 32, 256, 32, 1011, 1011, false},
/* Navi12 XNACK */ {"gfx1011", "gfx1011", 32, 256, 32, 1011, 1011, true},
/* Navi12Lite */ {"gfx1011", "gfx1011", 32, 256, 32, 1011, 1011, false},
/* Navi12LiteXNACK */ {"gfx1011", "gfx1011", 32, 256, 32, 1011, 1011, true},
/* Navi14 */ {"gfx1012", "gfx1012", 32, 256, 32, 1012, 1012, false},
/* Navi14 XNACK */ {"gfx1012", "gfx1012", 32, 256, 32, 1012, 1012, true},
/* UnknownDevice3 */ UnknownDevice,
/* UnknownDevice3 XNACK */ {"gfx1030", "gfx1030", 32, 256, 32, 1030, 1030, true},
/* UnknownDevice2 */ UnknownDevice,
/* UnknownDevice2XNACK */ {"gfx1030", "gfx1030", 32, 256, 32, 1030, 1030, true},
/* Navi10 */ {"gfx1010", "gfx1010", 32, 256, 32, 1010, 1010, false},
/* Navi10 XNACK */ {"gfx1010", "gfx1010", 32, 256, 32, 1010, 1010, true},
/* Navi10Lite */ UnknownDevice,
/* Navi10LiteXNACK */ UnknownDevice,
/* Navi12 */ UnknownDevice,
/* Navi12 XNACK */ UnknownDevice,
/* Navi12Lite */ UnknownDevice,
/* Navi12LiteXNACK */ UnknownDevice,
/* Navi14 */ {"gfx1012", "gfx1012", 32, 256, 32, 1012, 1012, false},
/* Navi14 XNACK */ {"gfx1012", "gfx1012", 32, 256, 32, 1012, 1012, true},
/* UnknownDevice3 */ UnknownDevice,
/* UnknownDevice3 XNACK */ UnknownDevice,
/* UnknownDevice2 */ UnknownDevice,
/* UnknownDevice2XNACK */ UnknownDevice,
};
// Supported OpenCL versions
+7 -4
Ver ficheiro
@@ -172,13 +172,13 @@ bool NullDevice::init() {
case 10:
switch (ipLevelMinor) {
case 0:
ipLevel = Pal::GfxIpLevel::GfxIp10;
ShouldNotReachHere();
break;
case 1:
ipLevel = Pal::GfxIpLevel::GfxIp10_1;
break;
case 2:
ipLevel = Pal::GfxIpLevel::GfxIp10_2;
ShouldNotReachHere();
break;
case 3:
ipLevel = Pal::GfxIpLevel::GfxIp10_3;
@@ -207,17 +207,20 @@ bool NullDevice::init() {
revision = Pal::AsicRevision::Vega20;
break;
case 1000:
revision = Pal::AsicRevision::Navi10Lite;
ShouldNotReachHere();
break;
case 1010:
revision = Pal::AsicRevision::Navi10;
break;
case 1011:
revision = Pal::AsicRevision::Navi12;
ShouldNotReachHere();
break;
case 1012:
revision = Pal::AsicRevision::Navi14;
break;
case 1020:
ShouldNotReachHere();
break;
case 1030:
ShouldNotReachHere();
break;
+1 -9
Ver ficheiro
@@ -180,7 +180,6 @@ bool Settings::create(const Pal::DeviceProperties& palProp,
case Pal::AsicRevision::Unknown:
switch (palProp.gfxLevel) {
case Pal::GfxIpLevel::GfxIp10_1:
case Pal::GfxIpLevel::GfxIp10:
gfx10Plus_ = true;
case Pal::GfxIpLevel::GfxIp9:
aiPlus_ = true;
@@ -189,12 +188,9 @@ bool Settings::create(const Pal::DeviceProperties& palProp,
assert(0 && "Unknown GfxIP type!");
return false;
}
case Pal::AsicRevision::Navi12Lite:
case Pal::AsicRevision::Navi12:
case Pal::AsicRevision::Navi14:
case Pal::AsicRevision::Navi10:
case Pal::AsicRevision::Navi10_A0:
case Pal::AsicRevision::Navi10Lite:
gfx10Plus_ = true;
useLightning_ = GPU_ENABLE_LC;
hsailExplicitXnack_ =
@@ -204,9 +200,6 @@ bool Settings::create(const Pal::DeviceProperties& palProp,
if (useLightning_) {
enableWave32Mode_ = true;
}
if (palProp.revision == Pal::AsicRevision::Navi10Lite && useLightning_) {
enableWave32Mode_ = false;
}
if (!flagIsDefault(GPU_ENABLE_WAVE32_MODE)) {
enableWave32Mode_ = GPU_ENABLE_WAVE32_MODE;
}
@@ -478,9 +471,8 @@ bool Settings::create(const Pal::DeviceProperties& palProp,
}
if (useLightning_) {
switch (palProp.gfxLevel) {
switch (palProp.gfxLevel) {:
case Pal::GfxIpLevel::GfxIp10_1:
case Pal::GfxIpLevel::GfxIp10:
case Pal::GfxIpLevel::GfxIp9:
singleFpDenorm_ = true;
break;
+2 -2
Ver ficheiro
@@ -98,6 +98,8 @@
#define NOT_WIN64(x) x
#endif /*!_WIN64*/
#define IS_MAINLINE true
#ifndef IS_LINUX
#define IS_LINUX false
#endif
@@ -121,8 +123,6 @@
#define MACOS_SWITCH(x, other) MACOS_ONLY(x) NOT_MACOS(other)
#define WINDOWS_SWITCH(x, other) WINDOWS_ONLY(x) NOT_WINDOWS(other)
#define IS_MAINLINE true
#ifdef OPTIMIZED
#define OPTIMIZED_ONLY(x) x
#define NOT_OPTIMIZED(x)