Commit Graph

457 Commits

Author SHA1 Message Date
tevador
48fa275d04 Avoid redundant CI runs 2023-10-09 20:04:12 +02:00
tevador
1c603a23fa
Merge pull request #265 from tevador/pr-randomx-v2
RandomX commitments with double-hashing
2023-09-08 23:22:15 +02:00
tevador
b89deae92e Merge branch 'master' into pr-randomx-v2 2023-09-08 22:57:28 +02:00
tevador
07a413b9f0 rename 'hash v2' to 'commitment' 2023-09-08 22:57:09 +02:00
tevador
e372827fae fix vcxproj files 2023-09-08 22:36:45 +02:00
SChernykh
67ea010aa5
Merge pull request #273 from SChernykh/ci-test
Added CI tests
2023-08-24 15:41:55 +02:00
SChernykh
3f69ad7b79 Added CI tests
- Compile RandomX on a wide variety of OS and architectures
- Fixed broken x86 (32-bit) builds
- Don't use broken `fesetenv` in msys2 builds: https://sourceforge.net/p/mingw-w64/bugs/541/
2023-08-23 12:15:21 +02:00
tevador
901f8ef765
Merge pull request #266 from tevador/pr-gpg1
Update GPG key expiration date
2023-06-30 20:11:05 +02:00
SChernykh
040f4500a6
Merge pull request #268 from SChernykh/fix_gcc13
Fixed GCC 13 compilation
2023-05-15 15:55:58 +02:00
SChernykh
43db7e290e Fixed GCC 13 compilation 2023-05-15 09:45:20 +02:00
tevador
ca86d352f8 update GPG key expiration date 2023-05-02 07:32:19 +02:00
tevador
db273f2671 introduce RandomX v2 with double-hashing 2023-04-22 19:14:46 +02:00
SChernykh
5bb4c7760d
Merge pull request #259 from SChernykh/fix_invalidate_order
Invalidate CPU I-cache on Apple Silicon
2022-12-17 13:00:27 +01:00
SChernykh
7245f13c7e Invalidate CPU I-cache on Apple Silicon
Call __builtin___clear_cache() after pthread_jit_write_protect_np() according to https://developer.apple.com/documentation/apple-silicon/porting-just-in-time-compilers-to-apple-silicon
2022-11-30 13:26:20 +01:00
hyc
261d58c77f
Fix missing failure check in allocMemoryPages() (#250) 2022-07-24 16:31:36 +01:00
SChernykh
cced5cab2f
Merge pull request #247 from SChernykh/fix_warning
Fixed compiler warning
2022-06-20 23:02:38 +02:00
SChernykh
00472c54ef Fixed compiler warning
```
virtual_memory.c:210:14: warning: type defaults to 'int' in declaration of 'pageMinimum' [-Wimplicit-int]
```
2022-06-04 19:47:17 +02:00
SChernykh
09aa65c3c7
Merge pull request #246 from SChernykh/fix_leak
Fixed cache->jit memory leak
2022-05-25 09:12:36 +02:00
SChernykh
166e0d80f5 Fixed cache->jit memory leak
1. `cache->jit = new randomx::JitCompiler();` - succeeds
2. `cache->memory = (uint8_t*)randomx::LargePageAllocator::allocMemory(randomx::CacheSize);` - fails
3. `if (cache && cache->memory == nullptr) randomx_release_cache(cache);` is executed
4. randomx_release_cache checks `if (cache->memory != nullptr)` and does nothing
5. cache->jit stays allocated
2022-05-24 14:22:16 +02:00
hyc
85c527a623
Fix missing defs on older platforms (#243) 2022-05-09 22:02:04 +01:00
hyc
8b1df47e42
Merge pull request #242 from hyc/vmem2
Fix previous commit...
2022-05-09 17:49:19 +01:00
Howard Chu
d8fb7363c1 Fix previous commit...
true/false leftover from C++
2022-05-09 17:48:14 +01:00
hyc
84bc0c9e42
Merge pull request #241 from hyc/vmem
Don't use exceptions in low-level mem allocator
2022-05-09 17:31:56 +01:00
Howard Chu
6f756473c0 Don't use exceptions in low-level mem allocator 2022-05-09 17:28:59 +01:00
SChernykh
ae8e98b681
Merge pull request #229 from tevador/pr-reserved
Do not use reserved identifiers in intrin_portable.h
2022-04-06 07:16:44 +02:00
tevador
905ee34f8b Do not use reserved identifiers in intrin_portable.h
Identifiers starting with an underscore followed by an uppercase
letter are reserved for the compiler.
2021-11-29 21:33:42 +01:00
tevador
df6e15e130 Merge branch 'master' of git@github.com:tevador/RandomX.git 2021-11-29 20:52:02 +01:00
tevador
2fa7c00bce update toolsets in vcxproj 2021-11-29 20:51:56 +01:00
hyc
9efc398c19
Merge pull request #227 from selsta/randomx-benchmark
RandomX benchmark 1.1.11
2021-11-19 06:08:59 +00:00
hyc
b0d4807420
Merge pull request #226 from jtgrassie/fix-non-arm-osx
Fix W^X policy for apple portability
2021-11-19 06:08:38 +00:00
selsta
85a4032f34
RandomX benchmark 1.1.11 2021-11-16 03:05:28 +01:00
Jethro Grassie
4d8ef87936
pageProtect when missing pthread_jit_write_protect_np 2021-11-13 08:53:57 -05:00
Jethro Grassie
31b9b0f8fc
Add runtime checks 2021-11-12 20:59:19 -05:00
Jethro Grassie
c7973839fa
Fix apple-non-arm jit guard 2021-11-12 14:50:41 -05:00
tevador
f9ae3f2351
Merge pull request #225 from SChernykh/msvc-debug-fix
Fixed a crash in MSVC Debug and RelWithDebInfo builds
2021-11-08 19:59:50 +01:00
SChernykh
bbc9ccc90b Fixed a crash in MSVC Debug and RelWithDebInfo builds
MSVC debug/relwithdebinfo builds use jmp trampolines for ASM functions, so these must be traversed to get the actual address of the code for each function.
2021-11-06 22:15:07 +01:00
tevador
d589aa29d3
Merge pull request #222 from hyc/relocs
Fix absolute address references
2021-11-06 22:02:21 +01:00
tevador
b27283a708
Merge pull request #217 from hyc/issue216
Fix #216 - MacOS JIT privs are not ARM-specific
2021-11-06 21:51:16 +01:00
hyc
59c981cc5d
Merge pull request #192 from xiphon/fix-mingw-5.3-cross-compilation
__cpuidex: explicit MSVC check, fix MinGW GCC 5.3 cross-compilation
2021-11-06 20:16:29 +00:00
hyc
1f7a09435b
Merge pull request #224 from tevador/pr-codegen1
Fix native code generator using the wrong hash function
2021-11-06 20:14:13 +00:00
hyc
6bc2c2a5f6
Merge pull request #220 from selsta/cmake-version
cmake: set nonancient minimum version
2021-11-06 20:12:42 +00:00
Howard Chu
ae2c241a96 Fix #216 - MacOS JIT privs are not ARM-specific 2021-11-06 20:07:11 +00:00
hyc
088c36fea0 Fix absolute address references
Use local symbols instead of global symbols, to prevent problems
with dynamic linker
2021-11-06 17:19:37 +00:00
tevador
8006ac7ec0 Fix native code generator using the wrong hash function 2021-11-06 16:16:26 +01:00
selsta
6923ef322e
cmake: set nonancient minimum version
2.8.7 constantly prints a warning
2021-10-18 07:30:31 +02:00
tevador
fe4324e8c0
Merge pull request #213 from hyc/m1typo
Fix typo for M1 Mac build
2021-05-22 13:55:05 +02:00
SChernykh
3c8c7ee097
Optimized dataset read (#211)
* Optimized dataset read

There was a false dependency on readReg2 and readReg3 (caused by `xor rbp, rax` instruction) when reading dataset item (see design.md - 4.6.2 Loop execution, steps 5 and 7). This change uses `ma` register to read dataset item before the whole `rbp` (`ma` and `mx`) is changed, so superscalar and out-of-order CPU can start executing it earlier.

Results: https://i.imgur.com/Bpeq9mx.png

~1% speedup on modern Intel/AMD CPUs.

* ARMv8: optimized dataset read

Break dependency from readReg2 and readReg3.

* Fixed light mode hashing
2021-05-22 13:54:50 +02:00
Howard Chu
1b3db29fb8 Fix typo for M1 Mac build 2021-05-22 12:44:55 +01:00
tevador
c12097400b
Merge pull request #212 from hyc/m1prot
Faster W^X policy for apple silicon macs
2021-05-22 12:39:04 +02:00
tevador
0db4c57823
Merge pull request #198 from tevador/pr-applem1
Apple silicon: force W^X, enable hardware AES
2021-05-22 12:30:42 +02:00