# Hardware Virtualization Extension

This document describes the steps to validate that your server hardware that you plan to use with <code class="expression">space.vars.product\_name</code> has hardware and optionally I/O virtualization extensions enabled.

## Hardware Virtualization

<code class="expression">space.vars.product\_name</code> uses KVM hypervisor underneath which relies on hardware virtualization extensions (Intel VT-x or AMD-V) for full virtualization.

Specifically, <code class="expression">space.vars.product\_name</code> requires that your physical servers run with:

* an Intel processor with Intel VT-x and Intel 64 virtualization extensions enabled, or
* an AMD processor with AMD-V and AMD64 virtualization extensions enabled

Follow the steps below to check if your server hardware comes with hardware virtualization extensions and if they are enabled.

Run the following command to validate that CPU virtualization extensions are available on your server:

{% tabs %}
{% tab title="Bash" %}

```bash
$ grep -E 'svm|vmx' /proc/cpuinfo
```

{% endtab %}
{% endtabs %}

If the above command returns any output, that means your server hardware contains the hardware virtualization extensions.

In the output, look for a `vmx` entry, indicating an Intel processor with the Intel VT-x extension enabled, or an `svm` entry, indicating an AMD processor with the AMD-V extensions enabled.

In some cases, manufacturers may have disabled the virtualization extensions in the server BIOS settings. If the output of the above command is empty, or if full virtualization does not work, find your server and processor specific instructions on enabling the extensions in your server BIOS configuration.

## I/O Virtualization

Both Intel and AMD have hardware virtualization extensions available to allow virtual machines to have direct access to hardware devices. This is specifically important to enable passthrough access to GPU devices, when using GPUs with <code class="expression">space.vars.product\_name</code>.

If you plan to consume GPUs via GPU passthrough technology, then the following virtualization extension must be enabled:

* VT-d extensions enabled for an Intel processor, or
* AMD IOMMMU extensions enabled for an AMD processor

To check if the I/O virtualization extensions are enabled for your physical server, run the following command:

{% tabs %}
{% tab title="Bash" %}

```bash
$ ls /sys/class/iommu/
```

{% endtab %}
{% endtabs %}

Examine the output.

* If the directory contains entries like `dmar0`, `dmar1` (for Intel systems), it indicates that IOMMU (and thus VT-d) is enabled
* If the directory contains entries like `amd-iommu-0` or similar, it suggests that the AMD IOMMU is recognized and potentially enabled by the kernel.

If the directory is empty, IOMMU might be disabled or not recognized.
