Skip to content

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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
@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

4 participants