Skip to content

VRAM size and bandwidth constraints

Hüseyin Tuğrul BÜYÜKIŞIK edited this page Mar 5, 2021 · 1 revision

It is possible to alter ratio of data distribution between cards which also reflects the bandwidth distribution:

To give five times bandwidth possibility (and VRAM storage request) for the third card in a 3-card system:

GraphicsCardSupplyDepot depot;
...
std::vector<int> ratios={1,1,5}
VirtualMultiArray<ArrayData<int>> data(..,..,..,..,ratios);

To skip first card in storage tasks:

GraphicsCardSupplyDepot depot;
...
std::vector<int> ratios={0,5,5}
VirtualMultiArray<ArrayData<int>> data(..,..,..,..,ratios);

To use more bandwidth on the second card (if it has higher PCIE specs than others):

GraphicsCardSupplyDepot depot;
...
std::vector<int> ratios={2,10,2}
VirtualMultiArray<ArrayData<int>> data(..,..,..,..,ratios);

To use only the last card in system and without any multi-copying allowed (this lowers performance in multi-threaded access):

GraphicsCardSupplyDepot depot;
...
std::vector<int> ratios={0,0,1}
VirtualMultiArray<ArrayData<int>> data(..,..,..,..,ratios);

Default value of this parameter is {4,4,4...,4} that gives 4 virtual graphics cards for each physical card which enables 4 concurrent channels for data copy overlapping(for performance) and needs number-of-cards x 4 CPU threads to be fully efficient in sequential access.