[Tests] Add allocator stress tests for large graphs
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 62/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- cpp
- Domain
- testing-qa
Research direction
Start in tests/test-alloc.cpp and read the allocator interface in ggml/include/ggml-alloc.h, then review the existing 12 tests and their buffer sizes. Add the five requested stress-test cases for deep, wide, diamond, view-heavy, and memory-pressure graphs using MB-scale tensors. Done means all listed tests verify allocation and non-overlap, including the requested performance time bounds.
Written by the indexing model from the issue text.
Description
Summary
Extend tests/test-alloc.cpp with stress tests for large/complex computation graphs.
Current State
test-alloc.cpphas 12 tests covering basic scenarios- Tests use small buffer sizes (16-64 bytes)
- Limited coverage for complex graph topologies
Missing Stress Tests
- Deep graph chains: 100+ node sequential dependencies
- Wide graphs: Many parallel branches merging at end
- Diamond patterns: Common in residual connections (A -> B -> D, A -> C -> D)
- View-heavy graphs: Heavy use of reshape/permute/view operations
- Memory pressure: Near-full cache eviction scenarios
Test Requirements
- Use realistic tensor sizes (MB range)
- Verify no memory overlap violations
- Verify all tensors are allocated
- Check allocator performance (time bounds)
Acceptance Criteria
- Add
test_deep_chain()- 100+ sequential ops - Add
test_wide_merge()- many parallel branches - Add
test_diamond_pattern()- residual-like topology - Add
test_view_chains()- complex view operations - Add
test_memory_pressure()- near-full scenarios
Related Files
tests/test-alloc.cppggml/include/ggml-alloc.h
- Dominant language
- C++
- Stars
- 1
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from jose-compu/funes.cpp
-
stale
Difficulty 5/5 Over a week Newbie friendliness 25/100
jose-compu/funes.cpp#12 ·
-
stale
Difficulty 4/5 3-5 days Newbie friendliness 52/100
jose-compu/funes.cpp#11 ·
-
stale
Difficulty 4/5 3-5 days Newbie friendliness 48/100
jose-compu/funes.cpp#10 ·
-
stale
Difficulty 4/5 3-5 days Newbie friendliness 55/100
jose-compu/funes.cpp#9 ·
-
stale
Difficulty 4/5 3-5 days Newbie friendliness 45/100
jose-compu/funes.cpp#8 ·
All issues in jose-compu/funes.cpp
Similar issues
-
area/actorsystem bug tsan
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
ydb-platform/ydb#54282 ·
Maintainers usually reply within 1 day
-
bug needs triage
Difficulty 1/5 Under an hour Newbie friendliness 90/100
project-chip/connectedhomeip#74434 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
tenstorrent/tt-metal#58057 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
maplibre/maplibre-native#4690 ·
Maintainers usually reply within 1 day
-
comp-query-execution
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
ClickHouse/ClickHouse#122569 ·
Maintainers usually reply within 1 day