-
lkclfolks we're adding some very weird (innovative) instructions to draft svp64 which i believe may be of interest, and could use some help evaluating
-
lkcl
-
lkcland binlut / crternlogi
-
lkclAVX-512 first added ternlogd, but you'll notice that it has a fixed immediate
-
lkclthat makes it only possible to use via JIT-compilation
-
lkclwhereas binlut+crternlogi can be used to perform binary and ternary lookups *interpreted* - because the decision about what to do (the LUT2/LUT3) comes from a register, not an immediate
-
sech1"a means to set hundreds of regular 64 bit patterns with one single 32 bit instruction."
-
sech1hmm, thinking how it could be used in RandomX
-
lkclappreciated. Tim Forsyth's video on AVX-512/Larabee he said it was inspired by FPGA LUTs
-
lkclbut the trick he missed was in making only an immediate variant
-
lkclits advantage is that if you have say a parallel batch of any type of or/and/nor/nand/xor/xnor/literally-anything logic table, you can do up to 64 in one single instruction
-
sech1RandomX has only NEG, XOR and ROR/ROL instructions. So if several of them can be combined together if they operate on the same dest register?
-
lkclsech1, i'm looking at this now, and am surprised that only XOR was added (not NAND or AND or OR etc.) github.com/tevador/RandomX/blob/master/doc/specs.md
-
lkclNEG could be done as "bit-invert followed by add 1" so binlut could be used there
-
lkcli think it highly likely it could be used for ISWAP_R as well
-
sech1AND/OR reduce entropy too much (too many 0 or 1 bits in the result)
-
sech1some for NAND
-
lkclISWAP_R could be done using the triple-XOR trick
-
lkclbut hmm honestly my feeling is, you could just use standard XOR instructions!
-
lkclgood point
-
lkclhmmm :)
-
lkclsech1, appreciate the thoughts and guidance. thank you
-
mightysnowman[m]Does anyone else get "Invalid token" when registering for xmrvsbeast raffle?
-
xmrvsbeast[m]are you leaving token field blank when you register?