Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add HBM support to mem_tg sample #3149

Merged
merged 3 commits into from
Jan 22, 2025
Merged

Add HBM support to mem_tg sample #3149

merged 3 commits into from
Jan 22, 2025

Conversation

pcolberg
Copy link
Contributor

@pcolberg pcolberg commented Jan 17, 2025

Add High Bandwidth Memory (HBM) support to the memory traffic generator (mem_tg) sample used to exercise and test available memory channels, which currently supports DDR memory only. For DDR, each memory channel accesses an independent memory bank, each starting from offset 0.

For HBM, each memory channel has access to the entire memory space and must therefore access memory from different locations when reading or writing on multiple channels simultaneously to avoid collisions.

For details on the HBM memory architecture, refer to the Intel Agilex® 7 M-Series FPGA Network-on-Chip (NoC) User Guide.

Link: https://cdrdv2-public.intel.com/780779/ug-768844-780779.pdf
Cc: @nanditha-intel @nahidhassan-intel @mdeckar1

@pcolberg pcolberg self-assigned this Jan 17, 2025
@pcolberg pcolberg linked an issue Jan 17, 2025 that may be closed by this pull request
@pcolberg pcolberg force-pushed the pcolberg/mem_tg_offset branch 2 times, most recently from faf0b15 to 029f6e5 Compare January 21, 2025 23:59
@coveralls
Copy link

coveralls commented Jan 22, 2025

Pull Request Test Coverage Report for Build 12918090684

Details

  • 0 of 56 (0.0%) changed or added relevant lines in 2 files are covered.
  • 1 unchanged line in 1 file lost coverage.
  • Overall coverage decreased (-0.1%) to 64.101%

Changes Missing Coverage Covered Lines Changed/Added Lines %
samples/mem_tg/mem_tg.h 0 7 0.0%
samples/mem_tg/tg_test.h 0 49 0.0%
Files with Coverage Reduction New Missed Lines %
samples/mem_tg/mem_tg.h 1 0.0%
Totals Coverage Status
Change from base Build 12893871766: -0.1%
Covered Lines: 15826
Relevant Lines: 24689

💛 - Coveralls

Initialize the read/write start address to zero by default.

Signed-off-by: Peter Colberg <peter.colberg@altera.com>
Add a function version_code() to combine major and minor version into a
single code for comparison to, e.g., guard version-dependent features.

Signed-off-by: Peter Colberg <peter.colberg@altera.com>
Add High Bandwidth Memory (HBM) support to the memory traffic generator
(mem_tg) sample used to exercise and test available memory channels,
which currently supports DDR memory only. For DDR, each memory channel
accesses an independent memory bank, each starting from offset 0.

For HBM, each memory channel has access to the entire memory space and
must therefore access memory from different locations when reading or
writing on multiple channels simultaneously to avoid collisions.

For details on the HBM memory architecture, refer to the
Intel Agilex® 7 M-Series FPGA Network-on-Chip (NoC) User Guide.

Link: https://cdrdv2-public.intel.com/780779/ug-768844-780779.pdf
Signed-off-by: Peter Colberg <peter.colberg@altera.com>
@pcolberg pcolberg force-pushed the pcolberg/mem_tg_offset branch from 8861ad8 to 3f19f8a Compare January 22, 2025 22:17
@pcolberg pcolberg marked this pull request as ready for review January 22, 2025 22:33
@pcolberg pcolberg requested a review from a team as a code owner January 22, 2025 22:33
@pcolberg
Copy link
Contributor Author

Relevant debug output on Agilex 7 M-Series FPGA:

mem_tg -l debug --loops 1 -r 0 -w 256 -b 0x2 --stride 0x1 -m all -f 357 tg_test
[2025-01-22 14:18:55.794] [tg_test] [debug] version: 1.1
Memory clock from command line: 357 MHz
[2025-01-22 14:18:55.794] [tg_test] [debug] number of channels: 32
[2025-01-22 14:18:55.794] [tg_test] [debug] number of NoC: 2
[2025-01-22 14:18:55.794] [tg_test] [debug] address width per NoC: 34
[2025-01-22 14:18:55.794] [tg_test] [debug] address offset per channel: 4194304
[2025-01-22 14:18:55.794] [tg_test] [debug] channels per NoC: 16

@pcolberg
Copy link
Contributor Author

Relevant debug output on N6001 FPGA with OFS 2024.2 FIM:

mem_tg -l debug --loops 1 -r 0 -w 256 -b 0x2 --stride 0x1 -m all -f 357 tg_test
[2025-01-22 17:49:27.594] [tg_test] [debug] version: 1.0
Memory clock from command line: 357 MHz

Relevant debug output on N6001 FPGA with OFS 2024.3 FIM:

mem_tg -l debug --loops 1 -r 0 -w 256 -b 0x2 --stride 0x1 -m all -f 357 tg_test
[2025-01-22 17:51:17.586] [tg_test] [debug] version: 1.1
Memory clock from command line: 357 MHz

@pcolberg pcolberg merged commit 92c2201 into master Jan 22, 2025
29 checks passed
@pcolberg pcolberg deleted the pcolberg/mem_tg_offset branch January 22, 2025 23:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Add HBM support to mem_tg
3 participants