4 ms·
Is the fuzzing use case burying the lede here? The ability to translate an aarch64 binary so it can run on a GPU seems like it might be interesting in its own
by jcims 6y ago
Is the fuzzing use case burying the lede here? The ability to translate an aarch64 binary so it can run on a GPU seems like it might be interesting in its own right? Maybe the fact that I'm not coming up with obvious reasons is a clue that there aren't but it's just remarkable to me that it's possible.
Great job folks! Very cool.
- tyoma 6y agoIt would only be beneficial to do the translation if the underlying aarch64 (or x86 or other) could be run in parallel on multiple data elements to begin with. Fuzzing naturally has that property, but certainly there are other uses.
- moyix 6y agoThe main thing isthat it doesn't support system calls, so the vast majority of code won't run. The ability to translate from one architecture to another is super cool though, and if you're curious about it you should check out McSema/Remill: https://github.com/lifting-bits/mcsema https://github.com/lifting-bits/mcsema https://github.com/lifting-bits/remill https://github.com/lifting-bits/remill https://blog.trailofbits.com/2018/01/23/heavy-lifting-with-mcsema-2-0/ https://blog.trailofbits.com/2018/01/23/heavy-lifting-with-m...
- ksml 6y agoThanks so much for checking this out! Like tyoma said in the previous comment, if you had a use case where you needed to run lots of things in parallel, then this would be useful. Latency is much higher on GPUs (clock speeds are lower and memory access latencies are higher), and system call support will make this even worse, so this probably wouldn't fare well unless you had a use case that could utilize that high a degree of parallelism.
- jcims 6y agoSeems like it would be good for anything you would put in a stream e.g. encryption/decryption, encode/decode, compress/decompress, parsing, filtering, routing, etc.