More helpful error messages in the benchmark

Move reciprocal tests before Dataset initialization
Fix randomx.dll project
This commit is contained in:
tevador
2019-06-28 10:37:41 +02:00
parent 6ea6cceb63
commit 4a4b06e44b
5 changed files with 52 additions and 23 deletions

View File

@@ -204,7 +204,10 @@ int main(int argc, char** argv) {
try {
if (jit && !RANDOMX_HAVE_COMPILER) {
throw std::runtime_error("JIT compilation is not supported on this platform");
throw std::runtime_error("JIT compilation is not supported on this platform. Try without --jit");
}
if (!jit && RANDOMX_HAVE_COMPILER) {
std::cout << "WARNING: You are using the interpreter mode. Use --jit for optimal performance." << std::endl;
}
Stopwatch sw(true);
@@ -243,7 +246,13 @@ int main(int argc, char** argv) {
for (int i = 0; i < threadCount; ++i) {
randomx_vm *vm = randomx_create_vm(flags, cache, dataset);
if (vm == nullptr) {
throw std::runtime_error("Unsupported virtual machine options");
if (!softAes) {
throw std::runtime_error("Cannot create VM with the selected options. Try using --softAes");
}
if (largePages) {
throw std::runtime_error("Cannot create VM with the selected options. Try without --largePages");
}
throw std::runtime_error("Cannot create VM");
}
vms.push_back(vm);
}

View File

@@ -118,6 +118,26 @@ int main() {
}
});
runTest("randomx_reciprocal", true, []() {
assert(randomx_reciprocal(3) == 12297829382473034410U);
assert(randomx_reciprocal(13) == 11351842506898185609U);
assert(randomx_reciprocal(33) == 17887751829051686415U);
assert(randomx_reciprocal(65537) == 18446462603027742720U);
assert(randomx_reciprocal(15000001) == 10316166306300415204U);
assert(randomx_reciprocal(3845182035) == 10302264209224146340U);
assert(randomx_reciprocal(0xffffffff) == 9223372039002259456U);
});
runTest("randomx_reciprocal_fast", RANDOMX_HAVE_FAST_RECIPROCAL, []() {
assert(randomx_reciprocal_fast(3) == 12297829382473034410U);
assert(randomx_reciprocal_fast(13) == 11351842506898185609U);
assert(randomx_reciprocal_fast(33) == 17887751829051686415U);
assert(randomx_reciprocal_fast(65537) == 18446462603027742720U);
assert(randomx_reciprocal_fast(15000001) == 10316166306300415204U);
assert(randomx_reciprocal_fast(3845182035) == 10302264209224146340U);
assert(randomx_reciprocal_fast(0xffffffff) == 9223372039002259456U);
});
runTest("Dataset initialization (interpreter)", stringsEqual(RANDOMX_ARGON_SALT, "RandomX\x03"), []() {
initCache("test key 000");
uint64_t datasetItem[8];
@@ -154,26 +174,6 @@ int main() {
assert(equalsHex(state, "fa89397dd6ca422513aeadba3f124b5540324c4ad4b6db434394307a17c833ab"));
});
runTest("randomx_reciprocal", true, []() {
assert(randomx_reciprocal(3) == 12297829382473034410U);
assert(randomx_reciprocal(13) == 11351842506898185609U);
assert(randomx_reciprocal(33) == 17887751829051686415U);
assert(randomx_reciprocal(65537) == 18446462603027742720U);
assert(randomx_reciprocal(15000001) == 10316166306300415204U);
assert(randomx_reciprocal(3845182035) == 10302264209224146340U);
assert(randomx_reciprocal(0xffffffff) == 9223372039002259456U);
});
runTest("randomx_reciprocal_fast", RANDOMX_HAVE_FAST_RECIPROCAL, []() {
assert(randomx_reciprocal_fast(3) == 12297829382473034410U);
assert(randomx_reciprocal_fast(13) == 11351842506898185609U);
assert(randomx_reciprocal_fast(33) == 17887751829051686415U);
assert(randomx_reciprocal_fast(65537) == 18446462603027742720U);
assert(randomx_reciprocal_fast(15000001) == 10316166306300415204U);
assert(randomx_reciprocal_fast(3845182035) == 10302264209224146340U);
assert(randomx_reciprocal_fast(0xffffffff) == 9223372039002259456U);
});
randomx::NativeRegisterFile reg;
randomx::BytecodeMachine decoder;
randomx::InstructionByteCode ibc;