Intel® ISA-L provides the tools to help accelerate and optimize storage on Intel® architecture (IA) for everything from small office NAS appliances to enterprise storage systems. Intel® ISA-L can run on various Intel® server processors and provides operation acceleration through the following instruction sets:
In today’s private or public cloud infrastructure, software defined storage (SDS) uses some form of storage virtualization. To answer questions from various storage developers who wanted to know how Intel® ISA-L performs under a virtual machine (VM), Intel ran ISA-L on a barebones system and under a VM. This experiment demonstrated that the performance running under a VM is as good as that when running on a barebones system. This blog captures all the performance data and setup instructions for developers interested in reproducing this experiment in their own environment.
The performance data in Figure 1 shows almost identical results (delta < 1%) when running Intel® ISA-L on a VM (via KVM) and on a barebones system. The data has been converted to - raw data (MB/s) running with VM / raw data (MB/s) running on the barebones system:
Figure 1- Running Intel® ISA-L on a barebones system vs. under a virtual machine
Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. For more information go to http://www.intel.com/performance
1. Install cpu-checker
sudo apt-get install cpu-checker
2. Run sudo kvm-ok. You will either see that KVM acceleration can be used
Figure 2: Successful KVM test
Or get this warning saying KVM acceleration can NOT be used. If you get this message, follow step 2b.
Figure 3: Failed KVM test
2b: If you get the “can NOT warning”, enable vmx / VT in the BIOS (example)
Figure 4: Enable Virtualization in the BIOS
3. Install the KVM packages
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager
sudo virsh –c qemu:///system list
- If the command works, it will just show an empty list
- Note: if you get errors trying to view the console and the machine is inside a firewall, make sure to run " export no_proxy=127.0.0.1"
4. Create a Virtual Machine (VM)
Figure 5 - Create a Virtual Machine
a) Enter a name for the VM
b) Ensure that the Connection: line says localhost (QEMU/KVM)
c) Choose the location of your VM's ISO image
d) Once booted, the VM will install itself
5. Ensure the KVM Hypervisor is used
Figure 6: Confirm KVM as the hypervisor
6. Ensure the CPU configuration is correct. If Model: Haswell, set 'avx' to 'require'.
Figure 7:- Confirm the CPU configuration
7. Once booted, run "cat/proc/cpuinfo | grep aux" to check for cpu flags. If "avx', 'avx2' and etc. are not listed, you will have to fix the VM configuration.
Figure 8:- Confirm the CPU configuration
Figure 9: Unzipped ISA-L directory listing
3. Read the ISA-L_Getting_Started.pdf and Release_notes.txt supplied with the source. From the Guide, choose and follow the instructions to build the source depending on your needs.
4. Note: Don't run ISA-L as root.
Optional: Run “make other”. This will build additional functions including compression functions and unit tests. Compression tests (igzip_file_perf and igzip_stateless_file_perf) are run using each file of a standard corpus -The Calgary Corpus - as an input. It is available here.
The following unit test results are reported in the above snapshot/overview data table:
(Unit tests run and data reported will depend on platform architecture and instructions supported)
Each unit test will report results in MB/s. For normalization across platforms, cycle/B is reported based on the throughput and system frequency.
Compression test results are reported as a weighted average of the results from each file being compressed. The throughput is then also calculated to cycle/B.
Below is the platform configuration:
CPU & Chipset
Brand/model: Aztec City CRB
Memory Size: 32 GB DDR4 2133 / Single registered 8GB RDIMM per channel
Brand/model: Micron* MTA18ASF1G72PDZ-2G1A1JG, NUMA Memory Configuration
Brand & model: Western Digital* Caviar Blue (WD800AAJS)
Number/size/RPM/Cache: 1ea - 80GB
Fedora* 19 64-bit OS. Linux*- 3.13.11-100,
Virtualization Environment: Hypervisor: Fedora* 19 64-bit OS, Linux*-3.13.11-100. QEMU/KVM Version 1.4.2, libvirtd version 188.8.131.52. VM: CPU Features: avx,avx2=require, CPU’s: 1, Memory: 1024MB, Hypervisor: kvm, Arch: x86_64, Emulator: qemu-kvm. OS: Ubuntu 14.04LTS, Kernel 3.13.0-36-generic.
Compiled under gcc 4.8.2 and yasm 1.2.0,
Test functions run from user space. Functions average multiple cycles. Functions run “cache cold” conditions. For some functions “cache warm” conditions may result in higher performance.
Figure 10 - Tested system configuration
INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
A "Mission Critical Application" is any application in which failure of the Intel Product could result, directly or indirectly, in personal injury or death. SHOULD YOU PURCHASE OR USE INTEL'S PRODUCTS FOR ANY SUCH MISSION CRITICAL APPLICATION, YOU SHALL INDEMNIFY AND HOLD INTEL AND ITS SUBSIDIARIES, SUBCONTRACTORS AND AFFILIATES, AND THE DIRECTORS, OFFICERS, AND EMPLOYEES OF EACH, HARMLESS AGAINST ALL CLAIMS COSTS, DAMAGES, AND EXPENSES AND REASONABLE ATTORNEYS' FEES ARISING OUT OF, DIRECTLY OR INDIRECTLY, ANY CLAIM OF PRODUCT LIABILITY, PERSONAL INJURY, OR DEATH ARISING IN ANY WAY OUT OF SUCH MISSION CRITICAL APPLICATION, WHETHER OR NOT INTEL OR ITS SUBCONTRACTOR WAS NEGLIGENT IN THE DESIGN, MANUFACTURE, OR WARNING OF THE INTEL PRODUCT OR ANY OF ITS PARTS.
Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined". Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information.
The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.
Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.
Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-4725, or go to: http://www.intel.com/design/literature.htm
Intel, the Intel logo, AVX2, AVX, SIMD, AES-NI, Intel® ISA-L, and Intel® Xeon® are trademarks of Intel Corporation in the U.S. and other countries.
*Other names and brands may be claimed as the property of others
Copyright© 2014 Intel Corporation. All rights reserved.
This sample source code is released under the Intel Sample Source Code License Agreement
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel.
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
Notice revision #20110804