Using an eGPU with a mini PC

using r43sg egpu with mini PC

Mini PCs have grown in popularity in part due to their small form-factor offering low-powered basic computing with sufficient ports for connectivity. As such they are useful both in commercial settings such as digital signage as well as with consumers needing a small-footprint or VESA-mounted low-cost computer. However, one drawback is their limited graphical performance due to using CPUs with integrated graphics which results in the options for playing games being somewhat restricted and ‘AAA’ titles typically being unplayable.

Lower-priced laptops often share the same drawback and one of the ways that users have addressed their graphical need is by utilizing an external GPU (eGPU) however the commercially available ones are both expensive and require connecting via a Thunderbolt 3 port.

Unfortunately, not many Chinese-made mini PCs currently include a Thunderbolt 3 port however now that they have started to include M.2 NVMe ports this has created the possibility of adding a GPU using a ‘PCIe x16 to M.2 NVMe adapter’.

Examples of the various options available for using a GPU with a mini PC including the choices of configuration and performance impacts especially on gaming are discussed below. Reading the full article is recommended, but if you are short on time, check out the conclusion.

Configuration Options

The primary requirement is to use a standard graphics card that has a PCIe x16 interface. A commercial eGPU is basically a glorified ‘PCIe x16 to Thunderbolt 3 adapter’. This can effectively be replicated through using a ‘PCIe x16 to M.2 NVMe adapter’ combined with a ‘Thunderbolt 3 to M.2 NVMe adapter’ and is suitable for any PC with a Thunderbolt 3 port.

However, if the mini PC doesn’t have the required Thunderbolt 3 port but does have an M.2 NVMe slot then the PCIe adapter can be used in place of the NVMe SSD that occupies the M.2 NVMe slot. Then if there is no further internal storage available it becomes necessary to use external storage for example a ‘USB to M.2 NVMe adapter’ to reuse the NVMe SSD that was replaced by the PCIe adapter.

So as long as the mini PC has an M.2 NVMe slot there are a number of options to connect a GPU:

  1. If the mini PC also has a Thunderbolt 3 port
    • Use a GPU in an ‘eGPU’ connected via a Thunderbolt 3 port or
    • Use a GPU in a ‘PCIe x16 to M.2 NVMe adapter’ installed in a ‘Thunderbolt 3 to M.2 NVMe adapter’ connected via a Thunderbolt 3 port or
    • Use a GPU in a ‘PCIe x16 to M.2 NVMe adapter’ installed in an M.2 NVMe slot and either reuse the NVMe SSD by installing it in a ‘Thunderbolt 3 to M.2 NVMe adapter’ connected via a Thunderbolt 3 port or reuse the NVMe SSD by installing it in a ‘USB to M.2 NVMe adapter’ connected via a USB port or use external storage connected via a USB port
  2. If no Thunderbolt 3 port:
    • Use a GPU in a ‘PCIe x16 to M.2 NVMe adapter’ installed in an M.2 NVMe slot and either reuse the NVMe SSD by installing it in a ‘USB to M.2 NVMe adapter’ connected via a USB port or use external storage connected via a USB port

Technical Understanding

Without going into too much detail a brief explanation of the underlying technology is useful in understanding why performance is impacted.

In a desktop PC, the discrete graphics card typically uses the PCIe x16 Gen 3 slot on the motherboard, and although Gen 4 slots are becoming available they are not necessarily required at this stage for gaming. A PCIe Gen 3 interface has a per-lane data transfer rate of 8 gigatransfers per second (GT/s) but the bandwidth is reduced by 2/130 percent because it uses an encoding scheme. Therefore a PCIe x16 interface is capable of (8 GT/s * 16) – 2/130% or 15.7538 GB/s whereas a PCIe x4 interface is only capable of 3.938 GB/s. Depending on how the PCIe slot is connected to the CPU there may also be a slight further performance loss when connecting a graphics card in a x4 slot compared to using a x16 slot due to whether the slot is directly connected to the CPU or through the chipset. TechPowerUp biannually tests the effect of PCIe scaling on contemporary high-end graphics cards and some examples of the loss at 1920×1080 resolution include for a GTX 1080 going from an x16 to x4 PCIe via the CPU results in a 4% loss or for PCIe via the chipset the loss is 8%, for an RTX 2080 Ti going from an x16 to an x4 the loss is 9% and for a RTX 3080 going from x16 to x4 (represented by x16 Gen 1.1) the loss is 13%. So unfortunately for mini PC users, a graphics card connected via PCIe x4 is going to lose some performance compared with the performance it is capable of when connected via PCIe x16.

It would also appear that Thunderbolt 3 which is marketed as providing 40 Gbps of external I/O bandwidth would offer enough bandwidth for connecting a GPU. However, this is the maximum bandwidth and is calculated by including display output. Intel states that the maximum one direction data speed for Thunderbolt 3 is 22 Gbps(PDF) and this is achieved through using four lanes of PCIe Gen 3 operating at 4 * 8 Gbps or 32 Gbps from which it reserves 10 Gbps to guarantee the Type-C USB 3.2 Gen 2×1 delivery.  Therefore data transfer over Thunderbolt 3 is only capable of ((8 GT/s * 4) – 10 Gbps) – 2/130% or 2.708 GB/s. The resultant lower throughput (3.938 GB/s for PCIe x4 vs 2.708 GB/s for Thunderbolt 3) means there is going to be a further loss of graphics performance when connecting a GPU via Thunderbolt 3.

Furthermore not all manufacturers implement the full x4 PCIe speed on their Thunderbolt 3 ports but instead only use the minimum of x2. Additionally, there is no guarantee that the device’s BIOS can recognize an eGPU connected via Thunderbolt 3 which is the case with the Minisforum X35G, and so as with laptops, it is a case of ‘caveat emptor’ with mini PCs.

Additionally, Thunderbolt 3 operates through the chipset rather than directly connected to the CPU and there is a Thunderbolt 3 controller at both ends of the cable resulting in latency caused by the chipset, the Thunderbolt 3 controllers, and the length of the cable. There are two types of Thunderbolt 3 cable: passive and active. Cable lengths of up to around 0.5 to 0.8 meter support the maximum data transfer of 40 Gbps and are typically ‘passive’. Greater lengths of up to 2 meters only support a maximum data transfer of 20 Gbps unless they are ‘active’ cables meaning they contain additional circuitry in their connectors required to achieve the maximum of 40 Gbps.

It is also worth noting that USB ports can have different data rates and transfer speeds so for example, a USB 3.2 Gen 2×1 port has a data rate of 10 Gbit/s and transfer speed of 1.21 GB/s.

Finally, the GPU performance depends on many variables such as the GPU and CPU architecture and power, the amount of graphics memory and memory bus width, the clock frequencies, and the application/game design being run. Simplistically the CPU has to process the data before it can be passed to the GPU which will then do the work of rendering frames. If the CPU cannot process the data quickly enough, the GPU regardless of power is always going to be waiting for the CPU creating a situation known as a ‘CPU bottleneck’ or being ‘CPU bound’. Performance degradation for gaming may also proportionately get worse when using a more powerful graphics card as to achieve the higher FPS more bandwidth is required because more data needs to be transferred making it more likely to be affected by the bandwidth limitations identified.

For this article, the testing undertaken concentrates on the performance loss between an eGPU connected via M.2 NVMe slot vs being connected via a Thunderbolt 3 port and does not include testing any loss when comparing an eGPU to a dGPU.

Hardware Overview

The mini PC used for the majority of the testing was an i3 Intel NUC 8 Bean Canyon or NUC8i3BEK:

Intel nuc8i3bekPrimarily this was chosen as it had a low-powered Intel Core i3-8109U processor with an iGPU, a Thunderbolt 3 port, an M.2 NVMe slot, and some USB 3.2 Gen 2×1 ports. Also, it is currently available at the incredibly low-price of AUD 299 (or around USD 210 plus tax). The device was configured with 16GB (2 x 8GB) of G.SKILL Ripjaws DDR4 2400MHz memory and a Kingston A2000 1TB NVMe SSD.

As an example ‘eGPU’ I’ve used an ASUS XG Station Pro which is a Thunderbolt 3 eGPU dock with an included 1.5m active Thunderbolt 3 cable:

xg station pro

For the ‘PCIe x16 to M.2 NVMe adapter’ I used an ADT-Link’s R43SG:

r43sg eGPU TB3 Extension Cable

This is better value than just a basic ‘PCIe x16 to M.2 NVMe adapter’ as it includes a stand for the GPU together with all the required power connections. It also needs an additional power supply which can either be a standard PSU power supply or a DELL DA-2 8PIN 12V/18A/220W PSU (aka Dell D220P-01) which can be bought cheaply second-hand:

d220p-01 power supplyTo connect the R43SG via Thunderbolt 3 I used a JEYI Thunderbolt 3 M.2 NVMe Enclosure (the ‘Thunderbolt 3 to M.2 NVMe adapter’) as this supports double-sided SSDs unlike some competitor adapters:

jeyi NVME SSD enclosureI also used an ORICO M2PAC3-G20 M.2 NVMe SSD Enclosure (as the ‘USB to M.2 NVMe adapter’):

Orico M.2 NVMe SSD enclosure

This supports up to USB 3.2 Gen 2×2 i.e. 20 Gbps and includes both a USB Type-C to Type-C cable and a USB Type-A to Type-C cable. Technically I could have used the 10 Gbps M2PV-C3 model or similar as not many mini PCs support USB 3.2 Gen 2×2 yet.

Finally during testing, I also used a couple of ‘M.2 NVMe to PCIe x4 adapters’: an EZDIY-FAB NVMe PCIe adapter with heatsink:

ezdiy fab M.2 NVME SSD to PCI Express Adapterand a RIITOP PCIe 3.0 x4/x8/x16 to M.2 PCIe NVMe adapter with heatsink riitop

 

Software Overview

For testing the performance of the NVMe SSD I used CrystalDiskMark:

CrystalDiskMark

To benchmark the GPU performance I used both 3DMark’s Fire Strike:

eGPU mini PC 3dmark firestrike

and Unigine’s Heaven:

eGPU mini PC unigine heaven

For reviewing gaming performance I used Shadow of the Tomb Raider (SOTTR) as while it is a fairly demanding CPU intensive game it includes a repeatable benchmark with graphics presets:

sottr gaming benchmark with eGPU connected to a mini PC

To confirm the Thunderbolt 3 cables were running at full speed (i.e. 40 Gbps) I used CUDA-Z:

cuda-z

I also used MSI Afterburner/Rivatuner to capture data for CPU, GPU usage and frame rates which were then processed in a spreadsheet.

Testing Undertaken

First of all the NUC8i3BEK mini PC was tested without an eGPU to get a set of baseline results:

ConfigurationCDM Seq ReadCDM Seq WriteFirestrike ScoreFirestrike Graphics HeavenSOTTR LowSOTTR MediumSOTTR High
Baseline NUC and iGPU
with NVMe via M.2
1846.11




2095.821767193219.61088

Then a GTX 1650 Super was installed in the XG Station Pro and connected by a Thunderbolt 3 cable to the NUC8i3BEK mini PC with the tests being repeated to get a baseline with the 1650 Super:

egpu 1650 super connected to Intel NUC mini PC

ConfigurationCDM Seq ReadCDM Seq WriteFirestrike ScoreFirestrike Graphics HeavenSOTTR LowSOTTR MediumSOTTR High
1650 Super in eGPU via TB with NVMe via M.21818.91


2091.7477421014898.9655847

The first investigation was to see whether a ‘DIY eGPU’ consisting of the R43SG adapter combined with the JEYI adapter could replicate the commercial eGPU without any performance loss:

r43sg jeyi

ConfigurationCDM Seq ReadCDM Seq WriteFirestrike ScoreFirestrike Graphics HeavenSOTTR LowSOTTR MediumSOTTR High
1650 Super in R43SG via TB (JEYI) with NVMe via M.21846.82


2085.3476931009298.1655847

The results are very similar and are within the margin of testing variance indicating this is a feasible eGPU alternative.

Next prior to investigating what the amount of loss is when using Thunderbolt 3 to connect the eGPU some further verification tests were performed. First, the NVMe SSD was moved to the R43SG by installing it in the EZDIY-FAB adapter and the R43SG installed in the M.2 NVMe slot. This shows that the R43SG doesn’t create any performance loss when compared with the initial baseline:

ConfigurationCDM Seq ReadCDM Seq WriteFirestrike ScoreFirestrike Graphics HeavenSOTTR LowSOTTR MediumSOTTR High
iGPU with R43SG+EZDIY-FAB+NVMe via M.21826.782091.471764193419.71088

However, once the R43SG with the EZDIY-FAB and NVMe SSD is installed in the JEYI and connected via Thunderbolt 3 then the results show that whilst the iGPU graphics performance remains the same the immediate impact can be seen on the SSD performance with a 29% drop in ‘Sequential Read’ and a 41% drop in ‘Sequential Write’:

ConfigurationCDM Seq ReadCDM Seq WriteFirestrike ScoreFirestrike Graphics HeavenSOTTR LowSOTTR MediumSOTTR High
iGPU with R43SG+EZDIY-FAB+NVMe via TB (JEYI)1289.05
1230.791769194219.71088

which can then be confirmed by simply installing the NVMe SSD in the JEYI:

ConfigurationCDM Seq ReadCDM Seq WriteFirestrike ScoreFirestrike Graphics HeavenSOTTR LowSOTTR MediumSOTTR High
iGPU with NVMe via TB (JEYI)1293.921229.931763193219.41088

A drop in read/write speeds was predicted from the technical explanation above, however, the magnitude seen does not actually represent the loss from using Thunderbolt 3 alone as will be discussed later below.

Finally, keeping the NVMe SSD in the JEYI and installing the R43SG in the M.2 NVMe slot with the GTX 1650 Super shows around a 10% graphical improvement (based on the Firestrike Graphics and Heaven results) when directly connecting the GPU in the R32SG via PCIe or alternatively around a 9% graphical loss when connected via Thunderbolt 3:

ConfigurationCDM Seq ReadCDM Seq WriteFirestrike ScoreFirestrike Graphics HeavenSOTTR LowSOTTR MediumSOTTR High
1650 Super in R43SG via M.2 with NVMe via TB (JEYI)1297.921230.51828711306107.4736557

This graphical performance gain/loss can also be confirmed by removing Thunderbolt 3 completely through installing the NVMe SSD in the ORICO connected via USB which is also a typical configuration that can be used for a mini PC without a Thunderbolt 3 port:

r43sg orico

ConfigurationCDM Seq ReadCDM Seq WriteFirestrike ScoreFirestrike Graphics HeavenSOTTR LowSOTTR MediumSOTTR High
1650 Super in R43SG via M.2 with NVMe via USB (ORICO)1042.74902.10826311326108.4736558

Obviously, the read/write performance is degraded further because of the bandwidth limitations from using the USB interface.

Looking at the GPU performance when running the SOTTR benchmarks in more detail shows both a CPU and GPU bottleneck:

sottr-bek-1650-super external GPU mini PC benchmark

So by upgrading the GPU to an RTX 2060 and therefore potentially increasing the amount of data being transferred to the GPU what is the impact when using Thunderbolt 3?

First, a new baseline can be derived for the R43SG and RTX 2060 installed in the M.2 NVMe slot and with the NVMe SSD installed in the JEYI connected via Thunderbolt 3:

ConfigurationCDM Seq ReadCDM Seq WriteFirestrike ScoreFirestrike Graphics HeavenSOTTR LowSOTTR MediumSOTTR High
2060 in R43SG via M.2 with NVMe via TB (JEYI)1301.641231.801067718407197747170

Now comparing with the RTX 2060 installed in the XG Station Pro and connected via Thunderbolt 3:

minis with egpu RTX 2060

ConfigurationCDM Seq ReadCDM Seq WriteFirestrike ScoreFirestrike Graphics HeavenSOTTR LowSOTTR MediumSOTTR High
2060 in eGPU via TB with NVMe via M.21806.222096.69992115856174.0666362

or with the R43SG and RTX 2060 installed in the JEYI adapter and connected via Thunderbolt 3:

ConfigurationCDM Seq ReadCDM Seq WriteFirestrike ScoreFirestrike Graphics HeavenSOTTR LowSOTTR MediumSOTTR High
2060 in R43SG via TB (JEYI) with NVMe via M.21861.912089.03989015708173.8666463

shows the predicted slight increase in graphical loss due to the additional data of around 12% when connecting the eGPU or R32SG via Thunderbolt 3 or alternatively around a 14% graphical improvement when directly connecting the GPU in the R32SG via PCIe.

Now the CPU bottleneck can be seen clearly during the SOTTR benchmark:

sottr bek 2060

so when the R43SG and RTX 2060 is installed in the M.2 NVMe slot of a far more powerful NUC7i7DNHE mini PC whose NVMe SSD is relocated to the ORICO because of a lack of Thunderbolt 3 port:

ConfigurationCDM Seq ReadCDM Seq WriteFirestrike ScoreFirestrike Graphics HeavenSOTTR LowSOTTR MediumSOTTR High
Faster NUC and 2060 in R43SG via M.2 with NVMe via USB (ORICO)462.47449.891428418566204.7979190

it shows that the GPU has become the bottleneck again:

sottr dnhe 2060

As mentioned earlier, the read/write speed degradation seen when using the JEYI adapter is not just due to Thunderbolt 3. There are various reports of variation in performance of ‘Thunderbolt 3 to M.2 NVMe adapters’ due to the type of controller used by the NVMe SSD resulting in some brands of SSDs performing better than others.

To examine this I tested a new addlink 2TB NVMe SSD which has an advertised ‘Sequential Read’ of 3,500 MB/s and ‘Sequential Write’ of 3,000 MB/s. First some baseline tests:

r43sg ezdiy-fab

ConfigurationCDM Seq ReadCDM Seq Write
addlink via M.2 with NVMe via TB (JEYI)
3280.132993.68
R43SG+EZDIY-FAB+addlink via M.2 with NVMe via TB (JEYI)3266.573004.37
addlink via M.2 with NVMe via USB (ORICO)
3271.443000.39

shows an average ‘Sequential Read’ of 3,276 MB/s and ‘Sequential Write’ of 2,997 MB/s.

Testing again but connected with various combinations using Thunderbolt 3:

egpu riitop

ConfigurationCDM Seq ReadCDM Seq Write
RIITOP+addlink in eGPU via TB with NVMe via M.2
2661.171914.25
R43SG+EZDIY-FAB+addlink via TB (JEYI) with NVMe via M.22663.301932.78
addlink via TB (JEYI) with NVMe via M.22663.171965.04
addlink via TB (JEYI) with NVMe via USB (ORICO)
2663.881981.75

shows a performance drop of only 19% with an average ‘Sequential Read’ of 2,663 MB/s and a 35% drop for ‘Sequential Write’ to 1,948 MB/s indicating that reading saturated the Thunderbolt 3 link to its theoretical maximum.

In comparison, the performance drop for the Kingston 1TB NVMe SSD mentioned earlier was measured after the SSD had been used for multiple benchmarking tests and wear-leveling had reduced the speeds from the advertised ‘Sequential Read’ of 2,200 MB/s and ‘Sequential Write’ of 2,000 MB/s. A better comparison is to look at the results for when the tests were conducted when the SSD was new:

ConfigurationCDM Seq ReadCDM Seq Write
NVMe via M.22205.012166.21
NVMe via TB (JEYI)1299.971250.21

and this shows a much larger 41% drop in ‘Sequential Read’ and a 42% drop in ‘Sequential Write’ and indicates that the addlink SSD has proportionally less of a performance drop with the JEYI adapter than the Kingston SSD.

Throughout the testing to exclude any variance attributable to the Thunderbolt 3 cable I used the JEYI cable which is a ‘passive’ cable. However separately I also ran some comparison tests using an ‘active’ Thunderbolt 3 cable but found there were no significant differences.

Additional Analysis

A summary of the results is provided in the following table:

mini PC with eGPU benchmark results

Specifically looking just at the graphical performance (based on the Firestrike Graphics and Heaven results) clearly shows the impact of connecting via Thunderbolt 3:

M.2 vs Thunderbolt - graphics performance

When looking at just the SOTTR benchmarks the impact of the CPU can be seen on the graphics performance. With a ‘low’ graphics preset upgrading the GPU has no effect on the average FPS because as previously shown this low-powered CPU is the bottleneck. Of interest is that when the 1650 Super is connected via PCIe it is almost better than the 2060 connected via Thunderbolt 3:

sottr performance

The SSD read/write speeds are greatly impacted by how the SSD is connected although as noted above this does not necessarily affect the graphics performance however it will affect the gaming experience as load times will vary depending on the interface:

crystaldiskmark performance

Conclusion

One advantage of any eGPU solution given the rarity of graphics cards at the present time is it allows the sharing of a GPU between systems (and/or users).

Most likely the ports on the mini PC will dictate exactly how an eGPU can be configured however cosmetically using an eGPU connected via a Thunderbolt 3 port is tidier than when connected via PCIe but comes at a cost of around 10% loss of graphical performance. Additionally, the enclosure of an eGPU may be seen as desirable as the GPU’s fan blades are not exposed. However commercial eGPUs are expensive and can be rather large whereas ‘DIY eGPUs’ offer the same performance at a much lower cost.

If using an adapter like the R43SG in the M.2 NVMe slot for best graphical performance then consider the impact that a ‘Thunderbolt 3 to M.2 NVMe adapter’ has on SSD speeds vs the cheaper option of using a ‘USB to M.2 NVMe adapter’.

With a low-powered CPU typical of a mini PC it is important not to over-spec the GPU to be used as its full potential will likely not totally be utilized due to being ‘CPU bound’.

Finally, be aware when booting directly from an eGPU you may encounter a blank screen as initially, the iGPU may only be active with the eGPU not becoming active until after the desktop starts when it is used by the primary display. You may need to press the spacebar and then enter your Windows password invisibly to get the desktop to start or simply ‘hot-swap’ the HDMI cable from the mini PC to the eGPU once booted if preferred. Disabling the iGPU is not a preferred solution as it could lead to being without a display if the eGPU fails or is removed completely.

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK Pi 4C Plus

16 Replies to “Using an eGPU with a mini PC”

  1. > One advantage of any eGPU solution

    There are two others:

    • reduction of fan noise with laptops when attaching at least one external large display
    • ability to attach more external displays than the internal iGPU/dGPU allows

    Great review though most probably wrong target audience 🙂

  2. Very thorough and helpful review !
    JIT given the GPU $ crypto crisis.

    Any thoughts on the lower end GPU ( RX 460/70, GTX 1050 Ti) price cool off?

    ( Had the pleasure of recent email exchange ☺️.)

    1. Is it too naive to hope that the NVIDIA CMP cards will be both priced appropriately and sufficiently available so they then alleviate the demand for higher end GPUs which in turn will improve the supply throughout the GPU range?

  3. Thanks to the author, good review/hands-on.

    I have been doing that for almost 2 years now. Repurposing a NVMe slot to PCIe Gen 2 or 3 x4 offers expansion opportunities with not only graphics cards but also NICs, ML accelerators, storage cards, etc, as long as the SBC BIOS/UEFI recognizes the card(s).

    Yes, you end-up with a “Frankenstein” SBC where the card ends up burning more power than the SBC itself 🙂 but for always on systems you still save power compared to a mainstream PC board. If you build from scratch your own cases, you can achieve great density.

    I can understand that professionals coming from the small boards industry it sounds like anathema, however it is a duty for any user to use a board what for it was not designed to do 🙂

  4. Thanks very much for your thorough and excellent write up!!

    I am using a mATX motherboard it has one PCIe x16 slot and two M.2 NMVE 2280 slots (no Thunderbolt). I want to install both a 10 GBE nic and a MSI GTX 1650 GPU (low profile). Both want the pcie slot. This article is very interesting because it allows me to potentially have both. I have a couple of quick questions if you don’t mind:

    1) I understood that M.2 NMVE 2280 slots were pcie x4, but your article indicates it is x16. Is is x16? If so, possibly my motherboard splits the lanes because it offers two m.2 slots although I did not think there was any speed reduction but may be wrong.

    2) I read your article but some of it was beyond me and I did not see the conclusion about going direct M.2 into the PCIe. expander. did you find that solution was as good as installing it directly on the motherboard into the PCIe slot?

    3) based on your knowledge if I’m choosing between putting the GPU or the 10 GBE nic into the M.2 expander, which do you imagine would be less compromised by that configuration? In other words which should I put into the motherboard PCI slot versus the M.2 expander (I know you may not have enough info to answer the question but what’s your guess)?

    4) when searching for the ADT-Link’s R43SG: your link takes to a manufacturer’s site which doesn’t appear to sell to the consumer. I could only find that unit on eBay for about $150. What should it cost? Do you know where it can be purchased?

    Thanks again for your excellent write up and hard work in putting this together. It’s greatly appreciated.

    All the best

    1. > I understood that M.2 NMVE 2280 slots were pcie x4, but your article indicates it is x16

      It doesn’t and you need to differentiate between ‘physical’ and electrical capabilities. An x16 PCIe slot might only carry four or even one lane so you need to look into specs of the product in question. Same is true for an M.2 slot which can carry 4 lanes maximum but you find setups where only one or two lanes are routed to the M.2 connector.

    2. Just to add to @tkaiser replies and to address your specific points:

      1. The spec for your board indicates your two M.2 slots are both x4.
      2. I’m not sure I understand your question. A GPU in x16 is better than via an adapter in x4 which is better than in adapter via Thunderbolt 3.
      3. Your GPU can go into your x16 so the 10 GbE NIC can go in the adapter via an M.2 slot. However it may be possible to use a R43SR rather than a R43SG as this can be powered directly from a SATA power cable from your PSU (see http://www.adt.link/product/R43SR.html). Alternatively look at a 5 GbE NIC that can use your x1 slot like the QNAP QXG-5G1T-111C as an example which will be much cheaper.
      4. Look under ‘WEBSHOP’ on the link (http://www.adt.link/product/R43SG-Shop.html) to get a MSRP indication and then shop on Aliexpress (but with care as there are a lot of sellers).
      1. > Alternatively look at a 5 GbE NIC

        For typical home setups 5GbE might also be overkill. We did a lot of testing with client setups in the graphics industry and found the sweet spot wrt link saturation somewhere between 2.5GbE and 5GbE. I wouldn’t even mind using cheap RTL8156B dongles attached to USB3 ports.

        BTW: With M.2 slots and the demand for more storage flexibility or 10GbE OCuLink is also an option.

    3. @caleb

      1) If you have a fully electrical x16 you can bifurcate it into x8 + x8 or x4 + x4 + x4 + x4 BUT ONLY if the motherboard has the option in the BIOS/UEFI.
      Then you’ll need to buy a riser cable to physically split the x16 into 2 x8 or 4 x4. Not all motherboards provide PCIe bifurcation, check your motherboard manual. Usually PCIe bifurcation is only offered on high-mid-range or high-end motherboards. You have to distinguish “physical” vs. “electrical/signal”, an x16 slot may only provide x8 or x4 lanes (common on small boards). Usually main stream motherboards provide a physical x16 with electrical x16. Just check the manual of your motherboard.

      2) No difference as long as the PCIe lanes go directly to the CPU (meaning not through the chip set). For most of the consumer motherboards the 1st PICe x16 and the 1st M.2 x4 are connected to the CPU. The other M.2’s probably go through the chip set. If there is a 2nd x16, then the x16 lanes are often internally split into x8 for each slot by the motherboard. This assumes that the CPU has 24 lanes: 4 for the chipset, 16 for the PCIe x16 slot and 4 for the M.2 x4. This may vary depending on the CPU, usually your motherboard manual tells you which CPU can do what. An M.2 PCIe adapter has no electronics it just adapts the “plug”.

      3) Use the graphics card on the PCIe x16 slot and the 10GbE or 5GbE with the M.2 PCIe adapter. For 2.5GbE use a USB 3 Ethernet adapter (just make sure it is based on an RTL8156B, not the RTL8156 (most of them uses Realtek). Check how many lanes are actually electrical on the M.2 slots, for the 1st one (M key) it is usually x4, but it could x2 depending on how the motherboard manufacturer decided to distribute the available lanes among the onboard peripherals. A 2nd M key will probably be x2. The other M.2 (B, E key) will usually be x1. For 10GbE, PCIe Gen 2 or Gen 3 x4 are OK.

      4) Look for “R43SG” on ebay (as low as $50) and on AliExpress (as low as $20)
      I bought several at AliExpress and they work OK, they are just unbranded adapters, quality is enough for PCIe Gen 2, never had a problem with the cheap ones. Just make sure to adequately chose the orientation and length.

      Suggested reading
      a) https://en.wikipedia.org/wiki/PCI_Express to find out the theoritical speeds you get with PCIe Gen 2 or 3 with x16, x8, x4, x2, x1 lanes.
      b) https://shuttletitan.com/miscellaneous/pcie-bifurcation-what-is-it-how-to-enable-optimal-configurations-and-use-cases-for-nvme-sdds-gpus.

  5. …adding:

    Sorry in my post just above, I should have mentioned:

    The Motherboard is a Asus Pro Q470M (Q470 Chipset) and the CPU is 10600k (LGA1200).

    Thanks

    1. > Asus Pro Q470M (Q470 Chipset) and the CPU is 10600k

      On ark.intel.com you find specs for Q470 and i5-10600K and the mainboard’s specs on asus.com.

      CPU provides 16 Gen3 lanes, chipset 24 Gen3 lanes, the board provides an x16 PCIe slot electrically and two M.2 slots with 4 lanes each electrically. So most probably the x16 PCIe slot is directly attached to the CPU and the M.2 slots behind the chipset. 10GbE cards require x4 Gen2 so obviously they go into one of the M.2 slots.

  6. Hello everybody. Thanks a lot for this excellent information. I have tried to connect an egpu to a intel Nuc (NUC8i5BEH) using the m2 NVME port (I know this nuc has thunderbolt 3 port, but I only have the M.2 NVMe adapter). The egpu is not recognized, doe anybody knows why? is there any special configuration in the BIOS? thanks in advance.

    1. It is not clear from your comment when your eGPU is not recognized as this can ‘apparently’ happen at several stages during the set up process. Typically you

      1. Install eGPU into NVME slot.
      2. Boot NUC.
      3. Install driver.
      4. Reboot.
      5. Sometimes encounter a blank screen

      So what OS are you using, what GPU is it, what driver are you installing and at what stage is the eGPU not recognized?

    2. @Edu,

      I have the same issue, do you find any solution?

      My nuc8i5’s will not recognise the adt-link R43SG m.2 riser and GPU at all.

      The setup works fine on an ASUS PN50, and the GPU works fine with the NUCs in a tb3 enclosure so expect it is some kind of compatibility/ bios/ sw issue. Grateful if you found anything.

Leave a Reply

Your email address will not be published. Required fields are marked *

Khadas VIM4 SBC
Khadas VIM4 SBC