Last updated: 10/28/2019 8:45AM- Public Devcloud Access Instructions
- 1.0 Introduction
- 2.0 Getting an Account
- 3.0 Access from your PC using Putty
- 4.0 Access from your PC via MobaXterm or from Linux Terminal
- 5.0 Access to the Devcloud from within the Intel firewall
- 6.0 Accessing high powered servers running FPGA development software
- 7.0 Loading and launching X2Go
- 8.0 Quartus Access and Setup
- 9.0 Transferring Files to the Devcloud
- 10.0 Job Control on the X2GO Window
- 11.0 Launching Quartus
- 12.0 Launching the HLS compiler
- 13.0 Launching the OpenCL compiler
- 14.0 Communicating to the PAC card
- 15.0 Downloading an .sof to the Devcloud connected DE10-Lite Board
- 16.0 Compiling on the Devcloud and Downloading to a Local PC connected DE10-Lite board
- 17.0 Timeouts and Disk Space
- 18.0 Revision Table
Welcome to the FPGA Devcloud. This cloud is an Intel hosted cloud service with Intel XEON processors and FPGA acceleration cards. The FPGA Cloud has a number of development tools installed including Jupyter notebook, and Quartus Prime Lite / Prime Pro development tools. The FPGA Cloud hosts high end FPGA accelerator cards to allow users to experiment with accelerated workloads running on FPGAs.
Assumptions on cloud access: This user guide assumes you have a basic understanding of the UNIX operating system and can use an editor such as vi or emacs. The guide assumes you know what Quartus development tools are. You don't necessarily need to be an expert on the Quartus toolset to follow these instructions. Once up and running on the FPGA Cloud you will be able to learn more about Quartus FPGA development flows.
This process, while not difficult, it will take time to execute through all the steps. Please allow at least 60-90 mins of time to complete this process. To allow you to move through quicker, our suggestion is to print out these instructions for ease of reference. Note that in several sections of this document, the instructions differ whether you are inside the Intel firewall, or outside. Please be cognizant of whether you are logging in from within Intel or outside Intel and the appropriate instruction method to use.
**To get account access, please go to this link: **
https://software.intel.com/en-us/devcloud/FPGA/sign-up
Please use this cloud website landing page to submit a request to access the FPGA Cloud.
Once signed up, look for an email from Intel AI devcloud which can take 24 to 48 hrs to respond. Info for all configuration and license acquisition methods are in the instruction link provided. This is an example of the resulting email which will be sent to you:
Dear "user name",
Welcome to the Intel® AI Devcloud!
This computing resource is equipped with Intel processors and software optimized for Intel architecture for your high-performance computing and machine learning needs.
Please find the instructions to access the DevCloud at:
https://access.colfaxresearch.com/?uuid=2953c785-0ce5-40bd-8eda-86d6a80ab6ff
User name: u27224 - (you will be assigned a new User name)
Node name: c009 - (you will be assigned a new Node name)
Your account has been activated, and it will expire on May 20 2020 23:01:32 UTC. If you or your project requires an extended access to the DevCloud, please submit your project and relevant details to Intel DevMesh at https://devmesh.intel.com/. Once verified, your account will be extended an additional 90 days from the above expiration date. Please note that your account and data will be deleted on the expiration date, so transfer any data you wish to preserve before that date.
If you have technical questions about the Intel optimized frameworks and tools available in the DevCloud please post them to the Intel discussion forum at https://communities.intel.com/community/tech/intel-ai-academy
Sincerely,
Intel AI DevCloud Team
Once you have an account / email received you are ready to start the process to setup our account within the cloud.
There are different Methods of Terminal connections. There are a few options you can select in choosing which Terminal application tool you would like to use:
- From a PC using Putty
- From a PC using Mobaxterm (which mimics the behavior of Linux)
- From a Linux console (either a native Linux machine or client Linux machine)
This is a work in progress and not documented yet.
MobaXterm is an enhanced terminal for Windows with an X11 server, a tabbed SSH client and several other network tools for remote computing (VNC, RDP, telnet, rlogin). MobaXterm brings all the essential Unix commands to Windows desktop, in a single portable exe file which works out of the box. It makes your Windows PC look like a UNIX environment. If you are already running a native Linux or client running Linux, you don't need to load Mobaxterm.
-
Download the MobaXterm free edition: https://mobaxterm.mobatek.net/download-home-edition.html Note: get the installer edition, not the portable edition. (The installer edition will enable you to save login profiles.) . Download zipfile, open it and click on the msi file to install Mobaxterm.
- Launch MobaXterm using the installer. You should see the following:
-
Left click: "Start local terminal". Within this console you can see your local PC based files using standard Linux operating system commands (ls, cd, vi and etc.).
If you are on the Intel network and can't login, be sure to disable your VPN and use connectivity outside Intel's firewall (for example using Employee Hotspot at an Intel campus). The welcome email link will only work outside of Intel firewall. Separate instructions for login inside the Intel firewall are below. Navigate around with cd (change directory) and ls (list) you will recognize your Windows folders and files accessible through a UNIX interface.
Return to home by typing cd.
For the MobaXterm flow, native LINUX flow or macOS, click on the link Linux or macOS and follow the steps as stated in the welcome email.
To start the process:
- Click on the first link in the welcome email (might need to use an incognito window if you have issues launching or clear cookies).
- If you are a first time user, you will see a "Terms and Conditions" page come up. Please click "accept" on the T&C's to proceed.
- You will then come to a new screen asking to select "Learn" or "Connect", please select "Connect".
- The following page will then be displayed. Click on “Linux* or MAC OS” under the "Connect with a Terminal" button.
-
After clicking “SSH key for Linux/macOS”, you will get instructions on accessing a UNIX key file.
-
Click the button "SSH Key for Linux/macOS."
-
In your mobaxterm terminal, check if you have a .ssh directory. cd; ls -a; Look for the .ssh directory. If it doesn't exist, mkdir .ssh; Copy the devcloud-access-key to your .ssh directory:
Should mobaxterm fail to launch after working for a period of time, we have seen a few cases requiring a reinstall. Prior to removal and re-install, copy the folder Mobaxterm from your Documents directory to a new name. Under the directory Mobaxterm/home you will have the .ssh folder and .bashrc file. Reinstall Mobaxterm and copy these files over to the new install if you have customized these files.
If you are within the Intel firewall, skip the following section and continue to "5.0 Access to the devcloud from within the Intel firewall.
Note that in the above instructions, if you don't have a .ssh folder, type
mkdir ~/.ssh
UNIX will not show the hidden .ssh folder leading dot folder naming with the standard ls command, you will need to type ls -a.
After typing ssh c009, continue to follow these instructions:
-
You will need to modify your Mobaxterm setup. Go to the packages icon and left-click.
Your next step you will see the MobApt package manager for MobaXterm:
-
Install the socat package. This will take approximately 9 minutes to install.
- Back in the LINUX (or Mobaxterm) initial screen, you will need to make additional entries into your config file:
Host colfax-intel-proxy
User guest
hostname cluster.colfaxresearch.com
IdentityFile ~/.ssh/colfax-access-key-27224
ProxyCommand socat STDIO SOCKS4:proxy-us.intel.com:%h:%p,socksport=1080
Host colfax-intel-proxy-shell colfax-intel
#replace with your own user name
User u27224
hostname c009
IdentityFile ~/.ssh/colfax-access-key-27224
ProxyCommand ssh -T colfax-intel-proxy
- At your local machine prompt type:
ssh colfax-intel
You will now be logged in:
- Refer to section 6 of the instructions to login to a high power compute node. Then return to this section.
- Note: n137 can be replaced with other available nodes. Adjust names and paths according to your own setup. Open a second tab on Mobaxterm and type:
ssh -L 4002:s001-n137:22 colfax-intel
- Follow the instructions on step 6 to find available compute nodes and on to step 7 to gain access to X2Go and work in a graphics enabled environment.
-
You will be logged in to machine called login-l (headnode). You cannot run compute jobs here. You need to run compute jobs on a powerful server.
The following nodes can run Quartus, OpenCL and HLS: n130-n139.
In addition, the following nodes can run OPAE connectivity to PAC Cards: n137-n139.
There are a total of 12 Arria 10 PAC Cards, 4 each on n137, n138 and n139.
To query if free nodes are available run the below command on the login server (headnode). The terminology that we will use is localnode (your PC), headnode (login node) and computenode. The computenode is a high power machine for running compilations - a subset host PAC cards: n137, n138 and n139.
pbsnodes -s v-qsvr-fpga | grep -B 4 fpga
You will get a listing of free and busy nodes that connect to PAC cards.
pbsnodes -l free # lists all free nodes (only nodes 130-139 run x2go)
If there is a free node, when you execute this command you will be logged in to a new machine within a minute or so. If no machine is available you will be placed in a queue.
qsub -q batch@v-qsvr-fpga -I
To login to a specific machine:
qsub -q batch@v-qsvr-fpga -I -l nodes=s001-n137:ppn=2 (for 137 through 139)
qsub -l nodes=s001-n130:ppn=2 (for 130 through 136)
Once you have completed this step, you have a high power machine available for powerful computing jobs. You only have a console available but no graphics available. Note that mobaxterm has multiple tabs has three possibilities of where to be logged in:
- Local Machine (eg. llandis-MOBL)
- devcloud login-l login server
- compute server (eg n137)
You need to be cognizant of which Mobaxterm tab and machine you are typing in so that you are aware of which commands you type in which Mobaxterm tab.
- At this point you will want to run a PC based product called X2Go client that will allow you to have a Linux based GUI that allows multiple terminals and can run graphics programs such as Intel Quartus. In order to run GUI based applications such as Quartus and Modelsim, you will need to download an application on your PC called X2Go. X2Go is the remedy for slow graphics response from Mobaxterm running X11 or VNC windowing systems.
To download X2Go, navigate to this link on your PC browser: https://wiki.x2go.org/doku.php/download:start
Grab the MS Windows version – click where the cursor is in the screenshot below (mswin):
Go through the install steps for the mswin X2Go Client and accept all.
On your MobaXterm window, open a second session tab by clicking on the "+" as shown below:
This tab will a launch terminal running UNIX commands on your local machine.
To open the port for graphics usage, in the new terminal with your PC host name prompt type. Note that you will need to match or replace the hostname n137 listed below with the machine name that was allocated to you. If you are on the Intel firewall, replace c009 with colfax-intel.
Launch the x2go application on your PC. Set up the new session with the following settings substituting the Login field with your own assigned user name and the path to the RSA/DSA key for ssh connection. Note this is the same key referenced for Mobaxterm connection that enables ssh c009.
The input/output screen has a setting for the display size which can be adjusted depending on your screen size. If you desire a different screen size adjust the parameters on this panel accordingly.
To launch the application, hit OK to save the settings and then click on the puffy icon New session to launch a graphics session.
After a minute or so, you should see the X2GO screen, be patient. While waiting for X2GO to launch you will see a screen that looks like this:
You might get the following message If you previously logged into a different machine:
Enter No
Then another dialog box will appear, enter Yes,
You will see a window that looks like the following.
Should X2GO fail to launch, check that you ran the tunneling command on Mobaxterm on your local host. Make sure that the firewall is turned off per steps described above.
Upon gaining access to the windowing system, right click within in the desktop and select “Open Terminal Here”.
Your GUI ready environment should be similar to the following image:
To change the font sizing of the Desktop files in Desktop Settings under the Icons tab. Select “Use custom font size” and change it to 5 or to your font size preference.
From a terminal that is logged in to the devcloud, type the following:
cp /glob/development-tools/versions/intelFPGA_lite/quartus_setup.sh ~
This setup script has everything you need to setup environment variables and paths to the Intel FPGA development tools. There are some variables that need to be edited inside the script to give you access to either Quartus Prime Pro or Quartus Prime Lite, HLS, OpenCL, or Acceleration Stack.
Set those variables according to you desired setup, and source quartus_setup.sh (note: ~/quartus_setup.sh as an executable does not work, you must source this file) . Feel free to adjust your .bashrc and other associated scripts to source quartus_setup.sh inside those startup scripts. Append the "source ~/quartus_setup.sh" command to the end of the .bashrc file.
If the Quartus font appears too zoomed in, as shown below, complete the following:
Under the Tools tab on the Main Bar, select Options. In the General Category, select “Fonts” and change the text size to 6.
There are three different ways to Tranfer Files to the DevCloud:
- From a Local PC to DevCloud Server in X2Go Terminal (9.1)
- MobaXterm User Session (9.2)
- WinSCP Application (9.3)
Refer to the login instructions welcome page on file transfer to/from c009. Use the local terminal on your PC to transfer files. Note: If on Intel firewall, replace c009 with colfax-intel.
Transferring Files from your localnode terminal. Your prompt on mobaxterm would be of the form: /home/mobaxterm (localnode)
scp /path/to/local/file c009:/path/to/remote/directory
From headnode or computenode to the localnode.
scp c009:/path/to/remote/file /path/to/local/directory
Here is an example:
scp /drives/c/User/llandis/Documents/file.txt c009:/home/u27224
Note: If on the Intel firewall, replace c009 with colfax-intel.
MobaXterm can be used to transfer files to and from your local PC to the Devcloud server.
To setup this feature, make sure that you have completed all the steps to connect to the DevCloud.
- In the main toolbar of MobaXterm, click the Session button.
- Select SSH.
- Enter the following information:
- Under Advanced SSH settings > Select Use Private Key and search for the private key you used when you setup your DevCloud log-in.
- Click OK.
- If a new tab does not open, double-click on the side window localhost (u#)
The localhost user directory tool can be re-opened and closed as necessary to transfer files. Files can be transferred by dragging and dropping into the side-bar that displays the contents of the user saved in the DevCloud directory.
Download WinSCP: https://winscp.net/eng/download.php
Click on the “Download WinSCP” Button and Install onto PC. Download with default setup: Typical installation (recommended) and Commander User Interface Style.
When you open WinSCP you should get a screen like this:
Click on the button “Advanced…”
Open the “Authentication” Tab under “SSH”
Click on the “…” box top open a dialog box
Navigate to where your devcloud access key is located. Select the options box on the bottom right that says, “Putty Private Key Files” and switch it to “All Files”. Select your devcloud key .txt file.
This new window should open asking if you would like to convert the SSH private key to PuTTY format. Press OK to this. Then press Save in the new window that opens. Then OK once more.
Press OK and return to the original screen.
Fill in the following information:
Host name: Type in “localhost”
Port number: Type in 4002
User name: Type in the user name that was assigned to you
Press Save to save all the information you just inputted for next time, and then press OK
Press Login
Note: When re-using WinSCP to transfer files, re-open the application and Login. A new window will pop-up. Click Update and you should be able to access and transfer your DevCloud files on the server again.
This section provides information on how to terminate jobs on the DevCloud.
You might need to terminate jobs on the devcloud. To see what nodes are tied up, from the headnode, type the following:
psbnodes -s v-qsvr-fpga | grep -B 4 fpga
A user will be kicked off a node if they have been using it for longer than 6 hours. To submit a job with a specified walltime longer than 6 hours (for compilations longer than 6 hours), type the following after qsub-ing into a specified node:
qsub -l walltime=<insert-time> 'command/bash file to be executed'
qsub -l walltime=12:00:00 walltime.sh # example of a file to be executed
-------------------------------= walltime.sh ------------------------------
# begin walltime.sh
sleep 11h # sleep command equivalent to a quartus compilation file requiring 11 hours of compilation
# alternatively, sleep 11h would be quartus_sh commands (i.e. quartus_sh --flow main.v)
echo job success > ~/Documents/walltime_log.txt # exit sleep at 11:00:00, output "job success" to walltime_log.txt
To report the status of your jobs running on the DevCloud is to type the following:
qstat -s batch@v-qsvr-fpga
qstat -u u30330 #change the username according to your id
qstat -f <job id> # 390965 is an example of a job id - (qstat -f 390965)
Jobs can be terminated with the following command:
qdel -s batch@v-qsvr-fpga <job-id>
This is not recommended but it is a another technique to delete a job from the headnode. Type the following and look for the qsub commands:
ps -auxw
Free up the node with the following command:
kill <job-id>
The following command will launch the Quartus GUI:
quartus &
The version you launch (Lite vs Pro) is dependent on the environment variables you set and sourced in the quartus_setup.sh script.
If you specify HLS=:"TRUE" in the quartus_setup.sh setup script you will be able to access the HLS compiler, i++. The simplest test would be i++ hello_world.cpp .
If you specify OPENCL=:"TRUE" in the tool setup script you will be able to access the OpenCL compiler, aoc. (Needs update for acceleration stack and connectivity to A10 PAC card)
To list all SYSFS entries in a multi-PAC system (explain)
ls -l /sys/class/fpga/intel-fpga-dev.?/device
To view serial number for a particular SYSFS entry (what does this mean)
hexdump -C /sys/class/fpga/intel-fpga-dev.2/intel-fpga-fme.2/intel-pac-hssi.?.auto/hssi_mgmt/eeprom
Note when running the Acceleration Stack Commands that communicate with the PAC Card, you will need python 2 in your search path. When initially creating your account, the /etc/skel/.bash_profile file is copied from the headnode to your account. This file specifies python3 first in the path. Switch your ~/.bash_profile to select python2 in your path within this file.
Another method to see available cards:
lspci | grep accel
View the various available cards and select a free one.
To download a green bit stream (.gbs):
fpgaconf -B 0x3b hello.gbs
This link to the acceleration hub is an excellent resource for further information: https://www.intel.com/content/www/us/en/programmable/solutions/acceleration-hub/acceleration-stack.html .
Node n138 has a DE10-Lite development board connected to the USB port. Login to this machine and you will see a programmer connection USB Blaster 1-13 to the board. Note there is only one DE10-Lite on the network.
If the USB Blaster is not configured, complete the following steps:
- To download your completed FPGA design into the local device, connect the USB Blaster cable between your PC USB port and the USB Blaster port on your development kit. If you are not using the DE10-Lite, you may have to plug the kit into power using a wall adapter. Upon plugging in your device, you should see flashing LEDs and 7-segment displays counting in hexadecimal, or other lit up LEDs and 7-segments depending on previous projects that have been downloaded to the development kit.
**Note: The lights and switches controlled on the DevCloud connected server kit cannot be controlled unless system console or another form of instrumentation is used.**
-
To use the USB Blaster to program your device, you need to install the USB Blaster driver. To begin, open your Device Manager by hitting the Windows Key and typing Device Manager. Click the appropriate tile labeled Device Manager that appears.
-
Navigate to the Other Devices section of the Device Manager and expand the section below.
-
Right click the USB Blaster device and select Update Driver Software.
-
Choose to browse your computer for driver software and navigate to the path shown below.
-
Click on Next and the driver for the USB Blaster should be installed.
16.1 Setting up USB Tunneling from Devcloud to Local PC USB Blaster
16.2 Programming a Design from the Devcloud to a Local PC Connected FPGA
-
On your PC, launch the Quartus Programmer. Search Programmer in the File Explorer.
-
If you don’t have the Programmer on your PC, download it from this link: http://fpgasoftware.intel.com/18.1/?edition=lite&download_manager=dlm3&platform=windows
-
Select Additional Software and download the Quartus Prime Programmer and Tools.
-
Follow the login prompts, download, and install the Programmer.
-
For Intel Employees within the Firewall, in the File Explorer Search window, search ''Programmer'', and select Run as administrator. For other users, you can open the Programmer (Quartus Prime 18.1) normally.
-
Select Yes if a yellow window will pop-up asking if you to allow app changes from an unknown publisher.
-
The Programmer window should then pop-up.
-
Left click on Hardware Setup… and then select the JTAG Settings tab.
-
Click on Configure Local JTAG Server...
-
Enable remote clients to connect to the local JTAG server and enter a password in the prompt box and remember this password. It will be used to connect later.
-
On your local PC terminal, type in the following command to tunnel from the DevCloud to your local USB: Note: the last parameter points to the node 138. For server consistency, you need to adjust this to the node number you are currently using to connect to the Devcloud.
ssh -tR 13090:localhost:1309 colfax-intel "ssh -t -R 13090:localhost:13090 s001-n138"
-
Ignore the messages:
stty: standard input: Inappropriate ioctl for device X11 forwarding request failed on channel 0
-
On the X2Go app and Quartus Prime Lite window, launch the programmer by selecting Tools > Programmer.
-
Left click on Hardware Setup, select the JTAG Settings tab, and Add Server.
-
Enter in the following information:
Server name: localhost:13090
Server password: (password you set up for your PC local JTAG server)
-
Select OK, and you should see the localhost on the list of JTAG servers.
-
Click on the Hardware settings tab, double click on the localhost:13090, and that should now be your selected USB blaster download connection.
-
Make sure localhost:13090 shows up as your currently selected hardware and that the connection status is OK.
Your session will timeout after four hours since login. Batch submissions must complete within 24 hours or the job will terminated. Each user has access to 200 GB of disk space on the Devcloud.
Rev | Owner | Date | Notes |
---|---|---|---|
1.0 | Larry Landis | 4/30/2019 | Initial Release |
1.1 | Larry Landis | 6/4/2019 | Edits based on more info |
1.2 | Ray Schouten | 6/6/2019 | Added Host Key Verification Error messages |
1.3 | Ray Schouten | 6/11/2019 | Added all screenshots and SCP command info |
1.4 | Larry Landis | 6/12/2019 | Intro and some changes to query available machines |
1.5 | Ray Schouten | 6/13/2019 | Added more screenshots, corrected cmds, changed font to be clear |
1.6 | Terry Barrette | 6/14/2019 | Updated Instructions with more compete steps and format |
1.7 | Larry Landis | 6/18/2019 | Add instructions for login within Intel firewall |
1.8 | Ray Schouten | 7/1/2019 | Change formats for consistency |
1.9 | Dustin Henderson | 8/19/2019 | Minor formatting changes |
1.10 | Larry Landis | 8/26/2019 | Details of compute nodes |
1.11 | Larry Landis | 9/4/2019 | Time and Space, python paths |
1.12 | Larry Landis | 9/12/2019 | Clarify Intel login versus outside firewall login |
1.13 | Rony Schutz | 10/1/2019 | Added WinSCP instructions to 9.1 |
1.14 | Shawnna Cabanday | 10/2/2019 | Added X2GO Instructions on font size settings to 7.0 and Quartus Prime font size settings to 8.0 |
1.15 | Larry Landis | 10/5/2019 | Find PCIe cards with lspci |
1.16 | Shawnna Cabanday | 10/9/2019 | Added additional information in Section 9.1: WinSCP instructions |
1.17 | Shawnna Cabanday | 10/16/2019 | Added Section 9.2: MobaXterm SCP instructions, updated SCP command from PC to Devcloud, updating qsub job control information, added table of contents, updated .bashrc sourcing information |
1.18 | Shawnna Cabanday | 10/22/2019 | Updated USB blaster and tunneling sections, converted Intel Wiki Page to GitHub md file (Typora) |