You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SimpleMemory currently lets you address 8GB of memory with its int cellIndex (int.MaxValue * 32, since cells are 32b). This is sufficient for now, but we could support addressing more memory.
This can be done by making the size of the Hast_IP CellIndex port configurable in IDeviceManifest, so this can vary between FPGA devices. Though the user code would need to be adapted between platforms too so this is not ideal. Alternatively, we could use a 64b int for addressing in ˙SimpleMemory operations as well as in the Hast_IP ports.
However, the current limitation in .NET Framework is that even with gcAllowVeryLargeObjects enabled the maximum index of a single dimension can still be around int.MaxValue, so we wouldn't be able to use this when running as software. This can be overcome by making SimpleMemory be paged, i.e. use multiple arrays internally (if <2GB these can be even without gcAllowVeryLargeObjects) but have ulong indices in the interface.
After this device drivers for Alveo cards can be updated.
github-actionsbot
changed the title
Ability to address larger memory space with SimpleMemory
Ability to address larger memory space with SimpleMemory (HAST-259)
Sep 18, 2022
SimpleMemory
currently lets you address 8GB of memory with itsint cellIndex
(int.MaxValue * 32
, since cells are 32b). This is sufficient for now, but we could support addressing more memory.This can be done by making the size of the Hast_IP
CellIndex
port configurable inIDeviceManifest
, so this can vary between FPGA devices. Though the user code would need to be adapted between platforms too so this is not ideal. Alternatively, we could use a 64b int for addressing in˙SimpleMemory
operations as well as in theHast_IP
ports.However, the current limitation in .NET Framework is that even with
gcAllowVeryLargeObjects
enabled the maximum index of a single dimension can still be aroundint.MaxValue
, so we wouldn't be able to use this when running as software. This can be overcome by makingSimpleMemory
be paged, i.e. use multiple arrays internally (if <2GB these can be even withoutgcAllowVeryLargeObjects
) but haveulong
indices in the interface.After this device drivers for Alveo cards can be updated.
Jira issue
The text was updated successfully, but these errors were encountered: