A lot of people are mining Cryptonight and Cryptonight-lite coins using Radeon RX Vega cards under Windows because of two key stumbling blocks that make it impractical to mine with Vegas under Linux.
1) The first stumbling block is scalability: in order mine with a Vega under Linux, the drivers demand that each Vega card has to be connected to a PCI-e 3.0 (aka gen3) slot which is directly connected to the CPU. Most consumer motherboards only have one or two such slots, the rest are really PCI-e 2.0 and/or they are connected via a chipset that prevents proper gen3 operation. Many Threadripper boards have 4 proper slots, and Epyc boards can have 8+, but those solutions are very expensive compared to the alternative - just use Windows, where the driver works with Vega cards on inexpensive PCI-e 2.0 slots. For miners like me who have for years run numerous Linux rigs with 6+ GPUs the inability to use cheap low-end mobos and cpus with linux is painful.
I've been looking into PCIe "splitters" (aka multiplexers or expanders) and there are many listings on Amazon, Ebay, and AliExpress for PCIe 2.0 compliant cards (e.g. https://www.amazon.com/dp/B073W9KCFC and https://www.amazon.com/dp/B074N2DMLK ) but I've been unable to find a card that can multiplex a single PCIe gen3 slot into two or more gen3 slots. I have the card from the first link and have tested it in gen3 slots to confirm.
All of my research on PCIe gen3 switches has turned up either raw chips or very high-end server interconnects - no retail cards like those I linked to above, which leads me to my main question: is there such a thing and where can I buy it?
2) The second stumbling block is tunability: under Linux it is not possible to tune the card via the driver to the degree that is possible under Windows. Under Windows the gpu and mem clocks and associated voltages can be set directly using the right software and be made to "stick" using the soft pp_table value in the registry, whereas under the current linux drivers the clocks can only be changed using overdrive percentages, voltages can't be changed, and the pp_table is loaded exclusively from the card's vBIOS at boot. With older AMD GPUs the solution was to flash a mod'd vBIOS to the card under DOS/Windows then run the card in Linux, but the security model changed with Vega such that the vBIOS has to be signed by AMD for it to work.
The only workaround I've found is to hack the open source driver (ROCm) to load the soft pp_table value from disk at boot time. I've yet to undertake this step, but I've spent enough time looking at the code to see it's possible. I'm not going to spend the time (probably a day+ with my rusty skills) hacking the driver if I know I can't stick at least 6 Vegas in a rig... which brings me back to the original question:
TL;DR - Is there a PCIe multiplexer card on the market like this: https://www.amazon.com/dp/B073W9KCFC that can turn one gen3 slot into two or more gen3 slots?
1) The first stumbling block is scalability: in order mine with a Vega under Linux, the drivers demand that each Vega card has to be connected to a PCI-e 3.0 (aka gen3) slot which is directly connected to the CPU. Most consumer motherboards only have one or two such slots, the rest are really PCI-e 2.0 and/or they are connected via a chipset that prevents proper gen3 operation. Many Threadripper boards have 4 proper slots, and Epyc boards can have 8+, but those solutions are very expensive compared to the alternative - just use Windows, where the driver works with Vega cards on inexpensive PCI-e 2.0 slots. For miners like me who have for years run numerous Linux rigs with 6+ GPUs the inability to use cheap low-end mobos and cpus with linux is painful.
I've been looking into PCIe "splitters" (aka multiplexers or expanders) and there are many listings on Amazon, Ebay, and AliExpress for PCIe 2.0 compliant cards (e.g. https://www.amazon.com/dp/B073W9KCFC and https://www.amazon.com/dp/B074N2DMLK ) but I've been unable to find a card that can multiplex a single PCIe gen3 slot into two or more gen3 slots. I have the card from the first link and have tested it in gen3 slots to confirm.
All of my research on PCIe gen3 switches has turned up either raw chips or very high-end server interconnects - no retail cards like those I linked to above, which leads me to my main question: is there such a thing and where can I buy it?
2) The second stumbling block is tunability: under Linux it is not possible to tune the card via the driver to the degree that is possible under Windows. Under Windows the gpu and mem clocks and associated voltages can be set directly using the right software and be made to "stick" using the soft pp_table value in the registry, whereas under the current linux drivers the clocks can only be changed using overdrive percentages, voltages can't be changed, and the pp_table is loaded exclusively from the card's vBIOS at boot. With older AMD GPUs the solution was to flash a mod'd vBIOS to the card under DOS/Windows then run the card in Linux, but the security model changed with Vega such that the vBIOS has to be signed by AMD for it to work.
The only workaround I've found is to hack the open source driver (ROCm) to load the soft pp_table value from disk at boot time. I've yet to undertake this step, but I've spent enough time looking at the code to see it's possible. I'm not going to spend the time (probably a day+ with my rusty skills) hacking the driver if I know I can't stick at least 6 Vegas in a rig... which brings me back to the original question:
TL;DR - Is there a PCIe multiplexer card on the market like this: https://www.amazon.com/dp/B073W9KCFC that can turn one gen3 slot into two or more gen3 slots?