"Two graphics cards, twice the power" sounds natural, but in the GPU world that equation does not always hold. A dual-card server gives almost exactly double the speed on some jobs, makes no difference on others and only helps with specific settings on yet others. The most common misconception is believing that the memory of two cards is automatically pooled into one large memory. In reality each card's VRAM is separate, and to use the total the software has to split the work deliberately. In this guide we explain with concrete examples in which scenarios a dual-card GPU server really pays off, in which it is unnecessary and when you should compare it with a single big card.
There are four main ways to use two cards, and knowing which one you need is half of choosing the right package.
Owning two cards does not turn two 16 GB cards into one 32 GB card. Each card's memory is tied only to its own compute unit; if an application wants to reach the memory of both cards at once, it has to do so by moving data between the cards and splitting the work. On newer generation GeForce class cards there is no special bridge between cards, so this movement happens over the PCIe bus. PCIe is much slower than a card's own memory; therefore, scaling is not linear for jobs where a lot of data travels between the cards.
The total memory is not fully added either: each card sets aside some memory for its own CUDA context, intermediate buffers and workspace. In a two-card setup, the total usable memory is slightly smaller than the nominal sum of the two cards. That is why it is realistic to think "a bit under the total" instead of "16 plus 16 makes 32". To see how the cards are connected, the nvidia-smi topo -m command shows the connection topology.
Large language models often do not fit on one card, which is the most common reason for splitting across two. There are tools that support this: Ollama usually distributes the layers across the available cards by itself if a model does not fit on one; llama.cpp based servers and engines such as vLLM let you configure the splitting layout. For example:
llama-server -m model.gguf -ngl 99 --tensor-split 1,1
vllm serve MODEL-NAME --tensor-parallel-size 2
The first command shares the layers equally between the two cards; the second distributes the same model's computation across the two cards in parallel. How each tool splits changes by version, so check the current documentation of the tool you use. As a practical guide to model size: a model of about 32 billion parameters, quantized to 4 bits, takes roughly 20 GB; a model of about 70 billion parameters reaches roughly 40 GB. You must add room for context (the KV cache) to these numbers. For details of the VRAM calculation, see our guide on how much VRAM a local LLM needs.
| Configuration | Total VRAM | Typical suitable model class |
|---|---|---|
| Single RTX 5060 Ti | 16 GB | Up to about 14 billion parameters, 4-bit |
| Dual RTX 5060 Ti | 2 x 16 GB | About 30 billion parameters with longer context; or two separate jobs |
| Single RTX 5090 | 32 GB | About 32 billion parameters with comfortable context room |
| Dual RTX 5090 | 2 x 32 GB | About 70 billion parameters, 4-bit, with context room |
The classes in this table are a rough guide; real memory use changes with the model, the quantization type and the context length. The point to watch is this: even if a Dual RTX 5060 Ti and a single RTX 5090 look similar in total memory, a single big card has no splitting overhead and no communication between cards. If the same model fits on one card, a single big card is usually simpler and often faster.
The way two cards help with the least friction is to keep the jobs separate. The CUDA_VISIBLE_DEVICES environment variable decides which card a process sees. For example, you can bind two separate Ollama instances to two different cards and two different ports:
CUDA_VISIBLE_DEVICES=0 OLLAMA_HOST=127.0.0.1:11434 ollama serve
CUDA_VISIBLE_DEVICES=1 OLLAMA_HOST=127.0.0.1:11435 ollama serve
That way one can serve a chat model and the other a code model; or you can run two copies of the same model and share requests with a load balancer. The second method lowers response time in a multi-user environment. Because you bind the two services to separate cards, when one gets busy the other's memory and compute are not affected. This "isolation" benefit may be the most valuable side of two cards over one big card: if one job crashes or fills its memory, the other card keeps working.
Explore the dual-card GPU servers
The Dual RTX 5060 Ti and Dual RTX 5090 packages have two physical cards and full root access. In our Istanbul data center, with fast NVMe storage.
Browse GPU server packagesRendering is the kind of job where two cards win most cleanly. The frames of an animation are independent of each other; if you give half to one card and half to the other, the time drops by roughly half and no communication between cards is needed at all. In Blender you do this with two commands: you give each process one card with CUDA_VISIBLE_DEVICES and split the frame range in two. We also described CPU-heavy rendering options in our Ryzen render server guide. Rendering a single frame with both cards together depends on the scene and settings and does not always give the same gain. For long, high-resolution animations, or for anyone who wants to build a small render farm, a dual-card package is a natural choice.
The most common way to use two cards in model training is data parallelism: each card holds a full copy of the model, processes different data batches and gradients are synchronized between the cards at every step. In PyTorch this is started with torchrun:
torchrun --nproc_per_node=2 train.py
Here each card must fit the model in its own memory; data parallelism does not pool memory, it only raises throughput. Because gradient synchronization goes over PCIe, scaling may be lower than on systems with a bridge between cards. In practice, two cards often speed up training noticeably, but you should not expect double; the gain is higher with small models and large batch sizes. The most reliable way is to measure the gain on your own workload with a short trial.
The decision depends on the structure of your work. If you will run a single large model and that model fits on one card, a single big card is simpler: there is no splitting configuration, no data movement between cards and less tuning effort. If your model does not fit on one card and the only way to fit it is to split it, dual cards exist for that. If you have naturally parallel work such as two separate jobs, two copies of a service or rendering, dual cards give a clear advantage over one card. Take the budget into account too, but first decide which group your workload falls into, because hardware bought for the wrong group will not meet expectations even with two cards.
If you are unsure, it makes sense to start with a ready single-card package and measure the real behaviour of your workload. Look at memory and utilization values with nvidia-smi: if memory is at its limit and the model will not run without splitting, moving to dual cards is justified. If memory is comfortable and utilization is high, look at a single, more powerful card. Our RTX 5090 server article and RTX 5060 Ti article cover each card's strengths separately.
When you load two copies of the same model on two cards, you may want users to connect to a single address. For that, a reverse proxy such as Nginx or HAProxy distributes incoming requests between the two backends, in turn or to the least busy one. That way users see one address while you get full use of both cards. When one card is stopped for maintenance, the other keeps serving, which gives an uninterrupted experience. To keep the system configuration simple, bind the backends to local addresses only and expose only the reverse proxy to the outside; do not forget to add authentication on top.
First, can your workload be split? Jobs that can be divided into independent parts (frames, requests, batches) benefit most from dual cards. Second, does the model fit on a single card? If it does, the real benefit of dual cards is not memory but parallelism and isolation. Third, does the software you use support multiple GPUs? If it does not, the second card sits idle. The answers to these three questions will often settle whether a dual-card package is a real investment for you or unnecessary capacity.
nvidia-smi -q -d PERFORMANCE. To sort out general performance problems, see our guide on finding performance problems in 10 minutes.nvidia-smi shows the two cards in separate rows; if you see one sitting idle, you may have configured the job wrongly.Looking for a custom multi-GPU configuration?
For several servers, a different card combination or a long-term contract, fill in the quote form.
Go to the GPU server quote formIs the VRAM of two graphics cards added together?
It is not combined automatically into one memory. Each card's memory is separate; if the software splits the model across two cards you can use the total capacity, but the splitting overhead and communication between the cards affect performance.
Can a model with 70 billion parameters run on a Dual RTX 5090?
A model of about 70 billion parameters quantized to 4 bits takes roughly 40 GB. With 64 GB of VRAM in total across two cards, it is expected to run with room for context; however, real memory use changes with the model and settings.
Does a Dual RTX 5060 Ti replace a single RTX 5090?
Total memory may be similar, but they are two separate cards. A single large card works more simply and has no splitting overhead. Two cards give flexibility for two independent jobs or two copies of a service.
Is there NVLink between the cards?
Newer generation GeForce class cards have no NVLink bridge between cards; communication goes over PCIe. That is why scaling may not be linear for workloads that move a lot of data between the cards.
Which workloads benefit most from two cards?
Jobs that run independently of each other benefit most: two separate services, splitting render frames, or raising throughput with two copies of the same model. Splitting one large model is also possible but needs more tuning.
Does the operating system see both cards automatically?
Yes. nvidia-smi lists both cards in separate rows. You can decide which job runs on which card with the CUDA_VISIBLE_DEVICES environment variable.
How do I order a dual card package?
You can order the ready-made Dual RTX packages from the GPU server page. For a different configuration or for several servers, you can use the quote form on the page.