Quick Start Guide for Intel FPGA Development Tools on the Microsoft Azure Platform
Quick Start Guide for Intel FPGA Development Tools on the Microsoft Azure Platform
You can learn about the available licensing models, how to create an account, how to transfer files to and from your account, and how to manage the lifecycle of your virtual machines. The last sections of this user guide show examples of using Intel® Quartus® Prime Design Space Explorer II, and the Intel® FPGA SDK for OpenCL™ .
Creating an Azure Account
Licensing Intel FPGA Software for the Azure Cloud
Licensing IP Cores
Managing Intel FPGA Software on the Azure Cloud
A typical session of Intel® FPGA software on the Azure® Cloud follows a distinct sequence:
- Signing In the Azure Web Portal
- Selecting Intel FPGA Tool from the Azure Marketplace
- Specifying the Virtual Machine Characteristics
Specify instance type, launch time settings, and other optional parameters of the virtual machine. - Launching the Virtual Machine
- Connecting to the Azure Virtual Machine Using SSH
- Obtaining a GUI Desktop on the Running Azure Virtual Machine
- Opening the Intel Quartus Prime Software
- Terminating the Virtual Machine
Signing In the Azure Web Portal
- Visit the Azure® platform page at:
-
Sign into your account.
A successful sign in takes you to the Azure® Dashboard page.
Selecting Intel FPGA Tool from the Azure Marketplace
- In your account's Dashboard page, click + New to open the Azure® Marketplace.
-
Type
Intel®
FPGA on the search filter.
Figure 1. Azure® Marketplace
- Click the Intel® FPGA application.
-
In the tab that opens, click Create.
Figure 2. Azure® MarketplaceThe Create Virtual Machine Basics form appears.
Specifying the Virtual Machine Characteristics
Basic Settings
-
In your local machine, create a SSH key pair
to use as authentication method.
For information about creating SSH keys, refer to the Microsoft® Azure® Documentation.
-
In the Basics pane,
specify the following parameters:
Table 1. Virtual Machine Basic Settings Parameter Value Name Name of the machine. VM Disk Type Select SSD (solid state drive). This option offers faster performance. User Name Administrator name on the virtual machine. You use this name to connect to the machine. Authentication type Authentication method to connect to the machine.- Select SSH public key, and type or paste the public key that you created.
Subscription Which Azure® account to use. Resource group Resource group associated to the virtual machine. You can create a new resource group or use an existing one. Resource groups are mandatory, and help you organize and locate resources. Location Azure® datacenter of the machine. Select the datacenter that is closest to you for lowest latency. Figure 3. Virtual Machine Basic Settings
Machine Size and Instance Type
-
Click View All to view all the machines available.
Figure 4. Available Machine Sizes
-
Find a server size that meets the physical memory requirements
for the device family. The
Azure®
Memory-Optimized EV3 series has instance types with high memory capacity.
In the Intel® Quartus® Prime Pro Edition software version 17.1, memory requirements for Intel® Arria® 10 devices range from 18 GB to 48 GB. Intel® Stratix® 10 memory requirements range from 80 GB to 128 GB. For information about other devices, refer to Intel® Quartus® Prime Pro Edition Software and Device Support Release Notes .Note: Machine availability varies with the location of the Azure® datacenter. If the instance type that you want is not available in the current location, select a different location.
- Click Select.
Network Settings
-
In the Optional Settings pane,
specify:
Table 2. Optional Settings Parameter Value Virtual network Select the virtual network to place the machine. If you do not select a virtual network, Azure® generates one, with default security settings.
Important: You can increase the security settings by restricting SSH access to known IP addresses, or by disabling SSH access and using a bastion host.For information about creating a Virtual Network, refer to the Azure® documentation.
Subnet Select a section of the virtual network to place on the machine. Machines on the same subnet can access each other. Public IP address Specify the public DNS name for this machine. You can create a new, select any existing Public IP address resource, or select None. - If you select None, you must reach the new machine through a bastion host.
- If you create a new IP address, you can select Dynamic or Static. Dynamic IP changes each time that the VM stops or restarts.
Network security group (firewall) Specify the type of network traffic allowed to reach the machine. - Click the entry.
- Select the Choose network security group panel.
- Create a new group or specify an existing one. If you don't select a security group, Azure® generates one that allows connection requests from any IP.
Important: Intel® recommends creating security rules in the network security group.For information about creating a network security group, refer to the Azure® documentation.
Auto-shutdown This option enables machine to automatically shutdown at a specific time. This feature is useful if you do not use the machine after office hours. To activate this feature: - Click On.
- Specify the Shutdown time and time zone.
- Click OK to see the summary of settings.
Launching the Virtual Machine
-
At the bottom of the Summary of Settings, click Create to launch the virtual machine.
Figure 5. Summary of Settings
-
In the left menu, click Virtual
Machines to monitor the deployment progress.
Figure 6. List of Virtual MachinesWhen the machine is ready, the Status appears as Running.
-
Click the running machine to display details.
Figure 7. Virtual Machine Details
-
Copy the Public IP Address number.
You need the IP address to connect to the machine. Optionally, you can configure a DNS name for the machine.
Connecting to the Azure Virtual Machine Using SSH
To connect, use the following parameters:
| Parameter | Value |
|---|---|
| User Name | You specify the user name when you create the virtual machine, in the Basic Settings step. |
| Machine IP address | Available under Virtual Machine Information in the Azure® portal. |
- Proxy type
- Proxy hostname
- Proxy port
Connecting from a Windows Computer
- Start PuTTY.
-
In the Host field, type
one of the following:
- <username>@<Machine-DNS-name>
- <username>@<Machine-IP-address>
- If your use a proxy, specify the proxy details in Connection > Proxy. Type proxy type, hostname, and port.
-
If you want to use the session again, create a name for the
session in Saved Sessions and click
Save. You can later select from the
list of saved sessions.
You can reuse a saved session with other virtual machines by changing the machine IP address or DNS name. The rest of the information remains the same.
- Press Open to connect.
Connecting from a Linux Computer
ssh -i <mysshkey> -l <admin username> <public dns or ip address>
Obtaining a GUI Desktop on the Running Azure Virtual Machine
-
In a terminal connected to the remote machine, type:
/opt/intelFPGA_pro/<release-number>/cloud/setup_vncserver.sh
The script shows a list of display resolutions. - Select a display resolution.
-
Create and type a VNC password.
Note: You use this password later when you start the VNC session.The script starts a VNC Server on localhost:5901
-
On your local machine, configure the SSH session to forward to source
port 53001 to destination
localhost:5901.
This action makes the connection more secure, because the only way to connect to the machine is through a secured SSH tunnel.
- Windows: Setup PuTTY’s tunnel (In SSH > Tunnels) to enable local ports accept connections from other ports and Forward
ports.
Source port 5300
Destination localhost:5901
- Linux:
ssh -i mysshkey -l <admin-username> -L 5300:localhost:5901 <public-dns-or-ip-address>
- Windows: Setup PuTTY’s tunnel (In SSH > Tunnels) to enable local ports accept connections from other ports and Forward
ports.
- Start VNC Viewer in your local computer, and connect to server on localhost:5300
Opening the Intel Quartus Prime Software
-
In the virtual desktop, open a terminal by clicking Applications > System Tools > Terminal.
Figure 9. Open Terminal in Azure® Virtual Desktop
-
In the terminal, type:
quartus &
Terminating the Virtual Machine
- In the left menu, click Virtual Machines.
-
From the list, select the virtual machine you want to
terminate, and click Delete in the top
menu.
Figure 11. Virtual Machines Top Menu
-
Delete the resources connected to this virtual machine. These
resources include Network interface, Disk, and Public IP address.
Note: The name of the resources connected to a machine use the machine name as a prefix.
Persistent Storage and Data Transference
An Azure® machine has two types of storage: Local storage and managed disk.
Local storage is available on /mnt/resources, and is physically attached to the machine. When you stop the machine, the data in /mnt/resource is removed.
Managed disk is available in /dev/sda, and contains two partitions: /opt is mounted on the /dev/sda2 partition, and contains the installation of Intel® FPGA software.
The root directory / is mounted on /dev/sda1 and has 30GB of storage. You cannot expand /dev/sda1.
- To add more disk space to the OS disk, you can update the size of the disk, create a new partition, and mount the partition on a directory under / such as /mydata.
- To share storage among multiple virtual machines, or with machines on
premise, use one of the following methods:
Table 4. Storage and File Sharing Methods for Azure® Virtual Machines File Sharing Method More Information Secure Copy Protocol Linux scp For information about using the Secure Copy Protocol with Azure® machines, refer to the Microsoft® Azure® Documentation. Windows WinSCP Windows (PuTTy) pscp Azure® File Share For information about Azure® File Share, refer to the Microsoft® Azure® Documentation. Network File System NFS Allows you to share a directory for all your machines. For information about NFS, refer to Configure shared storage and move database files in the Microsoft® SQL Documentation.
Hosting a License Server in the Microsoft Azure Cloud
To setup a license server in the Azure® cloud:
- Create a License Server Machine in the Azure Cloud
Create an Azure® virtual machine to use as a license server. - Upload the Flexlm License Server to the Server Machine
- Configure and Start the License Server
- Manage the License Server
Create a License Server Machine in the Azure Cloud
-
In your local machine, create a SSH key pair
to use as authentication method.
For information about creating SSH keys, refer to the Microsoft® Azure® Documentation.
-
In the
Azure®
marketplace,
launch a virtual machine with CentOS 7 and specify the following
parameters:
Table 5. Virtual Machine Basic Settings Parameter Value Name Name of the machine. VM Disk Type Select HDD. User Name Administrator name on the virtual machine. You use this name to connect to the machine. Authentication type Authentication method to connect to the machine.- Select SSH public key, and type or paste the public key that you created.
Subscription Azure® account to use. Resource group Resource group associated to the virtual machine. You can create a new resource group or use an existing one. Resource groups are mandatory, and help you organize and locate resources. Location Select the same location that you use for running Intel® FPGA tools. -
Under Machine Size, select the small A1 Basic instance
type.
If the demand increases, you can resize the machine to larger A series machine type.
- Under Network Settings, select the same virtual network, subnet, and network security group as the images with Intel® FPGA applications.
Upload the Flexlm License Server to the Server Machine
-
On your local machine, visit:
You enter the Intel® FPGA download page.Figure 12. Intel® FPGA Download Page
-
Specify the parameters for your download file:
Table 6. Download Parameters Parameter Value Select Edition Pro Select Release 17.1 Operating System Linux Download Method Direct Download -
Click the Additional
Software tab.
- Check Flexlm License Server Software.
- Click Download Selected Files.
-
When the download completes, send the file to the VM:
- Linux:
scp -i <private-key> <FlexLM-installer-filename> <user>@<host>:/home/<user>/
- Windows:
pscp -i <key-file-in-ppk-format> <FLexLM-installer-filename> <user>@<host>:/home/<user>/
- Linux:
Configure and Start the License Server
- Connect to the virtual machine using SSH.
-
From the virtual machine, configure the Flexlm license server
to run as a Systemd service and start at boot:
sudo ./FlexlmSetup-<release> -linux.run –installdir /opt/intelFPGA_pro/<version>/flexlm –mode unattended
-
Get the MAC address of the license server:
/opt/intelFPGA_pro/<version>/flexlm/bin/lmutil lmhostid
-
Regenerate your
Intel®
Quartus® Prime
license for the license server from the Self Service Licensing
Server.
- You must log on your My Intel account.
- For details on using the Self-Service Licensing Server, refer to the Intel® FPGA Software Installation and Licensing.
- When you receive the license file, follow the instructions in the email and customize the file.
-
Upload the file to the license server:
- Linux:
scp -i <private-key> <license>.dat <user>@<dns-or-ip-addr>:/opt/intelFPGA_pro/<version>/flexlm/license.dat
- Windows:
pscp -i <private-key> <license>.dat <user>@<dns-or-ip-addr>:/opt/intelFPGA_pro/<version>/flexlm/license.dat
To improve security, a non-root user runs the license server. - Linux:
-
On the license server, create a user named flexlm:
sudo adduser flexlm
-
Delete the password for the flexlm user:
sudo passwd -d flexlm
This action makes the user only available to root. -
Give ownership of the Flexlm files to flexlm user
sudo chown -R flexlm:flexlm /opt/intelFPGA_pro/<version>/flexlm/
-
Create a systemd init service unit to run the license service
after booting the Linux kernel, Create a file named intelFPGA.service in /etc/systemd/system/
A service unit file describes what process to run and how to manage it.
-
In the intelFPGA.service
file, add the following content:
[Unit] Description=Auto Start intelFPGA License Server [Service] Type=simple ExecStart=/usr/bin/su flexlm -c '/tools/intelFPGA_pro/<version>/flexlm/bin/lmgrd -c /tools/intelFPGA_pro/<version>/flexlm/license.dat -z -l /tools/intelFPGA_pro/<version>/flexlm/debug.log' Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
Manage the License Server
-
Start the license server:
sudo systemctl start intelFPGA
-
Query the license server status:
sudo systemctl status intelFPGA
-
Get detail information on the license server run:
/opt/intelFPGA_pro/17.1/lmutil lmstat
-
Stop the license server:
sudo systemctl stop intelFPGA
Connecting to the License Server
-
In the virtual machine with
Intel®
FPGA software, type:
LM_LICENSE_FILE=<port>@<private-ip-address-of-license-server>
Intel® FPGA software uses the LM_LICENSE_FILE variable to specify license location.
-
Optionally, in the
Intel®
Quartus® Prime software click
Tools > License Setup.
This pane displays the IP cores that the licensing server enables.
Preserving the MAC Address
- If the machine stops and restarts, the MAC address persists.
- If the machine terminates and you want to launch a new machine using the same MAC address, you must attach the previous Network Interface to the new machine.
To replace a virtual machine's Network Interface:
- From the Azure® portal, select the license server's virtual machine.
- Stop the virtual machine.
- From the side menu, select Networking.
- Click Attach Network Interface and select the original Network Interface.
- Click Detach Network Interface and select the new Network Interface.
Example: Running Intel Quartus Prime Design Space Explorer II
The Intel® FPGA applications that you can use on the Azure® Cloud include the Intel® Quartus® Prime Design Space Explorer II tool. This tool increases performance by automatically iterating through combinations of Intel® Quartus® Prime software settings to find optimal design results.
Intel® Quartus® Prime Design Space Explorer II works best on machines with many cores.
Starting Intel Quartus Prime Design Space Explorer II
To start Intel® Quartus® Prime Design Space Explorer II, select a large instance with multiple CPU cores. The compilations run on the same machine and share the memory.
-
Select an instance type with enough memory for the desired
parallelism.
An Intel® Arria® 10 design requires about 50GB of RAM. To perform ten compilations in parallel, choose an instance type with sufficient memory and at least 10 cores.
- The Microsoft® Azure® Memory-optimized Standard_E64_v3 instance type has 532GB RAM and 64 CPU cores.
- Launch the job.
-
In the virtual desktop, open a terminal and type:
quartus_dsew&
Setting Up an Intel Quartus Prime Project
-
On the Project tab, click
Open Project, and select an
Intel®
Quartus® Prime project.
If you do not have an example at hand, copy an example from the $QUARTUS_ROOTDIR/qdesigns directory in your local folder.
-
Click the Setup tab. In
Compilation Type, select Local.
Figure 14. Setup Tab
-
On the Exploration tab,
click to display Exploration Points.
Specify the following settings:
Table 7. Settings for Exploration Points in Design Space Explorer II Parameter Value Explore Select Design Exploration. Skip base exploration point Enable to avoid performing a base compile with no seed or assignment changes. Exploration Mode Select Seed Sweep Only. Seeds Select Specify, and specify a range of seeds to test out. Figure 15. Exploration Points in Exploration Tab -
To configure parallelism, click Advanced. Specify the following settings:
Table 8. Advanced Settings for Design Space Explorer II Parameter Value Maximum parallel compilations In the example with Intel® Arria® 10 and instance type Standard_E64_V3 , enter 10. Maximum number of CPUs Number of CPUs each compiler must use.
Since 10 compilers share the CPUs, divide the number of CPU cores by the number of compilers.
The Standard_E64_V3 machine has 64 cores and 512 GB of physical RAM, so for the Intel® Arria® 10 example you use 6 CPUs per compiler.
Figure 16. Advanced Settings in Exploration TabOn warning about performing more than one compilation simultaneously, click OK.
Your project is ready for compilation.
-
To compile, click Start.
Figure 17. Start Compilation
Example: Running the ''Hello World'' Program Using the Intel FPGA SDK for OpenCL
If you are new to the Intel® FPGA SDK for OpenCL™ , use the "Hello World" example included in the Intel® FPGA software installation as a starting point.
To set up the "Hello World" example:
-
In the virtual desktop, open a terminal by clicking Applications > System Tools > Terminal.
Figure 18. Open Terminal in Azure® Virtual Desktop
-
Copy the example folder from the
Intel®
FPGA software installation to the /data directory. In the terminal, type:
cp -r $INTELFPGA_ROOTDIR/examples/opencl ~/
The example files are now in the ~/opencl folder.Figure 19. Contents of opencl Folder - With a web browser, open the README.html file. Follow the instructions to run the "Hello World" example.
Document Revision History for Quick Start Guide for Intel FPGA Development Tools on the Azure Cloud
| Date | Version | Changes |
|---|---|---|
| 2017.12.22 | 17.1.0 | Initial release of the document. |