Added GPU - CUDA support - #486
Open
nextep wants to merge 1 commit into
Open
Conversation
Collaborator
|
The pull request adds a lot of unneeded build files so it's impossible to review as is. But in any case, it sounds like this should be a fork rather than merged into WinAFL repo. |
Author
|
Hi @ifratric, OMG my bad and apologies for the noise in the initial push! A local CMake/MSBuild run generated build outputs directly in the root directory, which accidentally got staged by .gitignore. I've updated the .gitignore, purged all build artifacts, and force-pushed a clean single commit containing only the source code modifications, CUDA device kernels, documentation, and tooling scripts. 19 files total. Thanks for the feedback! Happy to create another PR. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hi,
I started this in 2025 to speed up my fuzzing and got it stable enough to share it with the community.
Summary
This introduces Hardware-Accelerated CUDA GPU Mutation Offloading (Tier 1 GPU Havoc Engine) to WinAFL, enabling massive parallel input generation on NVIDIA GPUs while leaving CPU cores free for target execution and instrumentation tracing (DynamoRIO, Intel PT, TinyInst).
Contributed by Elias Ibrahim (
elie.ibrahim@gmail.com), July 2026.Key Architectural Features
afl-fuzz-gpu.cu/afl-fuzz-gpu.h)gpu_init,gpu_mutate_batch_async,gpu_sync,gpu_get_mutation).cudaMallocHost) for zero-copy DMA transfers over PCIe.cudaStream_t) andcudaMemcpyAsyncso the CPU evaluates testcase batchcuRand& Memory CoalescingcurandStategenerators for high-quality, lock-free parallel entropy.experimental/gpu_harness_template.cu)atomicOr()shared-memory coverage tracking.winafl-target-finder.py: Automated scanning of Windows binaries, seed corpus builder, and harness launcher.winafl-harness-builder.py: Automated C/C++ fuzzer harness code generator.ghidra_bridge.py: Protocol-agnostic Ghidra MCP server bridge client.Command Line Flags & Configuration
-G(or/gpu) toafl-fuzz.exeto activate GPU mode.AFL_GPU_BATCH_SIZEoverrides the number of parallel GPU threads allocated per batch (default:10000).Example: