P4 to Git Change 1624807 by gandryey@gera-w8 on 2018/10/26 18:35:39

SWDEV-167970 - Ethereum mining (EthDcrMiner64.exe) App crashed while running Claymore Mining over VI,AI ,CI ASIC families
	- Fix a regression after CL#1608975. Use amdil complib instance to query the binary options. The logic in the abstraction layer attempts to validate the binary options and for some reason Ethereum binary isn't compatible with the HSAIL complib instance. It's a workaround for now, since the app doesn't allow debugger and printf debugging is quite time consuming.

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#322 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.hpp#169 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.cpp#97 edit
Этот коммит содержится в:
foreman committed 2018-10-26 18:44:00 -04:00
1 родитель a4c1b1b9d3
Коммит e8ca159b62
3 files changed
+3 -1

No files matched your search

+1
Просмотреть файл
@@ -1124,6 +1124,7 @@ class Device : public RuntimeObject {
};
virtual Compiler* compiler() const = 0;
virtual Compiler* binCompiler() const { return compiler(); }
Device();
virtual ~Device();
+1
Просмотреть файл
@@ -42,6 +42,7 @@ class NullDevice : public amd::Device {
aclCompiler* amdilCompiler() const { return compiler_; }
aclCompiler* hsaCompiler() const { return hsaCompiler_; }
aclCompiler* compiler() const { return hsaCompiler_; }
Compiler* binCompiler() const { return amdilCompiler(); }
static bool init(void);
+1 -1
Просмотреть файл
@@ -89,7 +89,7 @@ cl_int Program::addDeviceProgram(Device& device, const void* image, size_t lengt
assert(symbol && "symbol not found");
std::string symName = std::string(symbol->str[bif::PRE]) + std::string(symbol->str[bif::POST]);
size_t symSize = 0;
const void* opts = aclExtractSymbol(device.compiler(), binary, &symSize, aclCOMMENT,
const void* opts = aclExtractSymbol(device.binCompiler(), binary, &symSize, aclCOMMENT,
symName.c_str(), &errorCode);
// if we have options from binary and input options was not specified
if (opts != NULL && emptyOptions) {