Commit Graph

51 Commits

Author SHA1 Message Date
tevador 07293a9378
Regression tests (#73)
* instruction decode/execute separated into class BytecodeMachine
* added randomx-tests project
* removed the use of non-portable __COUNTER__ macro
* removed the use of unsupported FENV_ACCESS pragma
2019-06-22 15:54:43 +02:00
tevador e31a621d6f
Fix possible overflow in static_assert (#67) 2019-06-14 23:16:27 +02:00
tevador 0c5b666df4
Configuration guidelines (#59)
* added detailed guidelines for the selection of configuration values
* added additional compile-time checks to prevent bad configurations
* removed RANDOMX_SUPERSCALAR_MAX_SIZE parameter
2019-06-10 15:57:36 +02:00
tevador 8a5ead5ce3 Use 'dst' as the CBRANCH condition register
See issue #43
2019-05-21 08:37:36 +02:00
tevador 2706a8b753 Relicensed under the 3-clause BSD license 2019-05-18 14:21:47 +02:00
tevador 3dd21ea93d Prepare for JIT compiler support for other platforms 2019-05-12 22:31:48 +02:00
tevador b1f1e1d6ad Fixed IMUL_RCP if divisor is a power of 2 2019-05-04 18:00:17 +02:00
tevador 9e5eac8645 Fixed a chance of CBRANCH looping
Fixed CBRANCH jump probability being lower than expected
2019-05-03 14:02:40 +02:00
tevador 1a4bde36be Fixed a missing header dependency 2019-04-30 21:33:02 +02:00
tevador ca96270509 Group E exponent changed from a static value (-240) to dynamic 2019-04-30 21:14:50 +02:00
tevador 3cf6a30076 Fixed biased condition register selection 2019-04-30 10:20:28 +02:00
tevador ffebc37381 COND_R instruction reworked as CBRANCH
instruction mod field bits reallocated
2019-04-29 23:38:23 +02:00
tevador cf72ed79c7 Function typedefs without pointer 2019-04-28 18:17:29 +02:00
tevador 7f6bdd9a52 Code cleanup & refactoring 2019-04-28 16:42:45 +02:00
tevador 22a3aa8d79 randomx_cache and randomx_dataset changed to standard-layout structs 2019-04-28 12:44:28 +02:00
tevador 270a4f97fe Dataset size increased to 2080 MiB
Implemented dataset base offset
Tweaked SuperscalarHash constants to prevent register collisions
2019-04-26 16:05:30 +02:00
tevador f66da3911e Fixed some compilation issues
Code cleanup
2019-04-26 11:07:47 +02:00
tevador b4dca14f0c Added a function to access the dataset memory buffer
Number of dataset items changed from a macro to a getter function.
2019-04-23 22:15:55 +02:00
tevador 87b8253374 API documentation
'dataset block' -> 'dataset item'
customizable benchmark seed
2019-04-22 15:13:41 +02:00
tevador 41b51a4858 Cleaned up legacy code 2019-04-21 14:07:32 +02:00
tevador 296e77eebc C API - first working version 2019-04-20 11:08:01 +02:00
tevador 33a2fd021d Unique scratchpad addresses 2019-04-14 17:21:26 +02:00
tevador 9404516dd8 Refactoring 2019-04-12 14:56:20 +02:00
tevador 77dbe14658 SuperscalarHash JIT compiler
(unfinished)
2019-04-06 12:00:56 +02:00
tevador 2edf05cedc Implemented Dataset size increase per epoch 2019-03-10 23:14:03 +01:00
tevador e65d9da66c Configurable parameters separated into configuration.h 2019-03-08 15:34:34 +01:00
tevador f0d52fcf4d Fixed dependent constants 2019-02-15 11:38:20 +01:00
tevador 0b1761a846 Refactoring: mining/verification mode 2019-02-11 18:57:42 +01:00
tevador b8ce504be6 Added comments to hashAes1Rx4 and fillAes1Rx4
Fixed gcc compilation
Added performance numbers
2019-02-09 19:32:53 +01:00
tevador 32d827d0a6 Interpreter with bytecode
Fixed some undefined behavior with signed types
Fixed different results on big endian systems
Removed unused code files
Restored FNEG_R instructions
Updated documentation
2019-02-09 15:45:26 +01:00
tevador b417fd08ea 16 -> 8 chained programs
constant address loads are always from L3
2019-02-05 23:06:44 +01:00
tevador 1ee94bef2a Added ISWAP instruction
Scratchpad -> 2 MiB
New scratchpad initialization
New dataset initialization
2019-02-04 17:07:00 +01:00
tevador 8f2abd6c05 NOP instruction
register load/store from L3
2019-01-27 18:19:49 +01:00
tevador 005c67f64c Added explicit STORE instructions
JIT compiler
2019-01-27 10:52:30 +01:00
tevador d2cb086221 ASM code generator for "small" programs that fit into the uOP cache 2019-01-24 19:29:59 +01:00
tevador 16db607025 Scratchpad size increased to 1 MiB
New AES-based scratchpad hashing function
2019-01-18 23:51:18 +01:00
tevador 89bc68d093 Memory-bound dataset initialization 2019-01-18 18:44:06 +01:00
tevador 4fb168e249 Large page support for cache
Bug fixes
2019-01-18 17:57:47 +01:00
tevador 8b1102ee05 Interpreter + async mode 2019-01-15 00:01:11 +01:00
tevador 48d85643de Dataset intialization algorithm (AES) 2019-01-13 13:47:25 +01:00
tevador d1a808643d Random accesses - JIT compiler 2019-01-10 22:04:55 +01:00
tevador 2f6a599ff6 Inlined calls for memory read 2019-01-07 17:44:43 +01:00
tevador 3caecc7646 Vector FPU instructions
JitCompilerX86 - static code written in asm
Updated ALU/FPU tests
Updated instruction weights
2018-12-31 19:06:45 +01:00
tevador 39c569ae44 Fixed a potential crash in JitCompilerX86 2018-12-27 21:42:38 +01:00
tevador 55afe9646f Debuggable assembly generator 2018-12-21 21:09:55 +01:00
tevador b9d2d853aa Support for multiple threads 2018-12-19 21:54:44 +01:00
tevador cb12feaf91 t1ha2 hash for scratchpad digest 2018-12-19 12:38:10 +01:00
tevador ed0bc906d6 JIT compiler for x86 2018-12-18 22:00:58 +01:00
tevador 6332831ec1 Implemented cache shift
Fixed assembly code generator
Fixed an error in the interpreter
Updated specification: sign-extended immediates
2018-12-15 23:13:17 +01:00
tevador cb0721056a Assembly code generator for Windows 64-bit 2018-12-13 23:11:55 +01:00