Skip to content

feat(fuzzer): add multi-kernel fuzzing framework#13

Open
wangqin1723-max wants to merge 1 commit intoluohuan19:mainfrom
wangqin1723-max:fuzz
Open

feat(fuzzer): add multi-kernel fuzzing framework#13
wangqin1723-max wants to merge 1 commit intoluohuan19:mainfrom
wangqin1723-max:fuzz

Conversation

@wangqin1723-max
Copy link

Add a standalone fuzzing framework for automatically generating and testing multi-kernel PyPTO programs. The framework generates random InCore kernel functions and combines them through Orchestration functions using different composition modes.

Components:

  • Core fuzzer engine (fuzzer.py) for random test case generation
  • Kernel generator for InCore functions with operator chaining
  • Multi-kernel test generator with 3 composition modes:
    • Direct: Single kernel execution
    • Sequential: Kernel result chaining
    • Merge: Result aggregation
  • Orchestrator generator for kernel coordination

Features:

  • Support for 20+ operators (binary, unary, scalar, advanced)
  • Configurable tensor shapes and operator weights
  • Memory hierarchy support (L1/L0A/L0B/L0C)
  • Automatic correctness verification with numpy reference
  • Shape alignment validation for block operations

Documentation:

  • README.md: Usage guide and examples
  • OP_RULES.md: Operator rules and constraints
  • CHANGELOG.md: Development history

Testing:

  • Generated test cases (test_fuzz_multi_kernel.py)
  • Example script (example_multi_kernel.py)
  • Test case for expand operations (test_expand.py)

Add a standalone fuzzing framework for automatically generating and
testing multi-kernel PyPTO programs. The framework generates random
InCore kernel functions and combines them through Orchestration
functions using different composition modes.

Components:
- Core fuzzer engine (fuzzer.py) for random test case generation
- Kernel generator for InCore functions with operator chaining
- Multi-kernel test generator with 3 composition modes:
  * Direct: Single kernel execution
  * Sequential: Kernel result chaining
  * Merge: Result aggregation
- Orchestrator generator for kernel coordination

Features:
- Support for 20+ operators (binary, unary, scalar, advanced)
- Configurable tensor shapes and operator weights
- Memory hierarchy support (L1/L0A/L0B/L0C)
- Automatic correctness verification with numpy reference
- Shape alignment validation for block operations

Documentation:
- README.md: Usage guide and examples
- OP_RULES.md: Operator rules and constraints
- CHANGELOG.md: Development history

Testing:
- Generated test cases (test_fuzz_multi_kernel.py)
- Example script (example_multi_kernel.py)
- Test case for expand operations (test_expand.py)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant