Intel® DevCloud
Help for those needing help starting or connecting to the Intel® DevCloud
1638 Discussions

Profiling FPGA code with Vtune

Mickleman
New Contributor I
1,644 Views

I would like to use Vtune Profiler to analyse performance of an FPGA application on the devcloud.  I connect to devcloud from Linux (CentOS).

I have tried to use the Vtune Profiler Web Server.  But when I paste the URL into my local browser it fails to connect.  Here is an example of a URL:

https://10.9.1.81:8081/?one-time-token=2b99c4b4d0c57d59a0fd2285a53203a0

I have also recompiled the application with the -Xsprofile flag and tried running vtune from the command line on the compute node.  But it only seems to be reporting the CPU performance rather than FPGA.

I would really appreciate help in getting started with Vtune for FPGA analysis.

Many thanks

Marcus

0 Kudos
9 Replies
RaeesaM_Intel
Moderator
1,619 Views

Hi Marcus,

Thanks for reaching out to us.


Regarding your issue related to url, you may need to do two-way tunneling to open the URL in devcloud.

Please follow the below steps:


1. Launch Vtune web server from Devcloud by running the vtune-backend command:

cd <vtune-install-dir>/bin64/ vtune-backend --web-port=8880


2. Open the URL with the provided one-time token:

VTune Profiler Server outputs a URL to access the GUI. You can open the URL in browser on your local machine. In devcloud, you may need to do two-way tunneling to open the URL. 

For two way tunneling , open a new prompt and tunnel to login node of the Devcloud using the below command

ssh -L 8880:localhost:8880 devcloud_proxy

Then, tunnel to compute node as:

ssh -L 8880:localhost:8880 s001-n058

Where, devcloud_proxy :- Host name 8880 :- Port in which vtune web sever is running s001-n058:- compute node in which your vtune web server has started


3.Open the URL and set a passphrase in the Set Passphrase dialog box.


Please find the below link for more information.

https://software.intel.com/content/www/us/en/develop/documentation/vtune-help/top/launch/web-server-ui.html#web-server-ui


Regarding the issue where VTune seems to be reporting the CPU performance rather than FPGA, please make sure that the node which you are running your application contains FPGA hardware. 


Command to enter to FPGA hardware node (interactive terminal):

qsub -I -l nodes=1:fpga_runtime:ppn=2  


Get back to us in case of any issues.

Raeesa



0 Kudos
Mickleman
New Contributor I
1,613 Views

Thanks for replying Raeesa

I had already tried to follow the tunnelling instructions but to no effect.  Can I just clarify a couple of points in the instructions to ensure I have tried the right things?

1.  When you say 'open a new prompt' do you mean on my local Linux box?

2.  Which host is the devcloud_proxy referring to?  An example would help.

3.  Which of the two options for URL should now work?

 

On the Vtune reporting: I am definitely using an FPGA node because the code specificically targets FPGA and the results are returned correctly.  I am using precisely the qsub request that you mention.

Thanks, Marcus

0 Kudos
RaeesaM_Intel
Moderator
1,587 Views

Hi,

Thank you for your patience.


We were able to open the VTune web server url without any errors. Could you please share the vtune version that you are using ?


Regarding your doubts :

1.      When you say 'open a new prompt' do you mean on my local Linux box?

Yes , new prompt means opening a new linux box

 

2.      Which host is the devcloud_proxy referring to? An example would help.

In the devcloud config file, there will be hostname. For example, if this is a config file:

Host devcloud.proxy

User uxxxxx

IdentityFile /home/mobaxterm/devcloud-access-key-xxxxx.txt

ProxyCommand ssh -T devcloud-socks-proxy

 

Then the name of “Host” is what you have to give when you ssh

 

3.      Which of the two options for URL should now work?

When you run the vtune backend command, you will get log like this:

(base) uxxxxx@s001-n083:~/intel/oneapi/vtune/latest/bin64$ vtune-backend --web-port=8880

 

No TLS certificate was provided as a --tls-certificate command-line argument thus a self-signed certificate is generated to enable secure HTTPS transport for the web server: /home/u44134/.intel/vtune/settings/certificates/middleware.crt.

Serving GUI at https://127.0.0.1:8880?one-time-token=99c9b39c4bdf6877ca113a08084xxxx

 

This is the url(bolded one) you need to open after doing the port forwarding in other terminal as mentioned before.


Also, can you share the command line that you used to profile. We are checking from our side regarding the issue with VTune reporting the CPU performance rather than FPGA. We will get back to you shortly.

 

Raeesa


0 Kudos
Mickleman
New Contributor I
1,571 Views

Many thanks again Raeesa

Using all your detailed clarifications and instructions I was able to gain remote access to Vtune via my local browser.  My mistake had been to add the --allow-remote-ui option to the web server start (it says this is necessary for remote access but not true if using tunnelling, of course).

Because the devcloud session that is running the web server times out eventually, will I need to go through the setup process including the tunnelling to the compute node I happen to get every time?

I'm now trying to deploy the Vtune Profiling Agent on the target machine.  I don't think I am able to use automatic deploy as I don't have credentials for it.  But manual deployment seems quite involved if has to be done every time I start a session.  What would be your advice on this?

Marcus

 

0 Kudos
Stas-Neverov-Intel
1,520 Views

Hi Marcus,

Looks like you do not need to use an agent for your scenario. Start VTune server with --enable-server-profiling and then you can select VTune server as the target for profiling. For VTune this will be the local host profiling so this would be the most straightforward setup.

Another tip is to configure VS Code connection like it is described here - https://devcloud.intel.com/oneapi/documentation/connect-with-vscode/. If you start VTune server from the VS Code terminal then it will recognize that you've started a process that listens to a port and will automatically add port forwarding. This way starting VTune server could be as easy as:

 

vtune-backend --enable-server-profiling

 

There will be no need to start additional terminal to enable SSH tunneling.

I'm working on a VTune Cookbook article that describes this setup and will post a link here once it is published.

-Stas

0 Kudos
RaeesaM_Intel
Moderator
1,538 Views

Hi,


Glad to know that you were able to successfully launch VTune web server. We are checking internally on your queries related to manual deployment. We will get back to you at the earliest.


Thanks,

Raeesa


0 Kudos
RaeesaM_Intel
Moderator
1,474 Views

Hi Marcus,


Since your initial query related to launching of VTune web server via Devcloud is resolved, we have moved your latest question regarding AOCL profiler issue to Analyzers Forum and your question will be addressed there. Can we discontinue monitoring this thread ?


Regards,

Raeesa


0 Kudos
Mickleman
New Contributor I
1,470 Views

Yes, thank you Raessa.  I am now able to run Vtune as desired.  The new thread will resolve the issues with the results.

Kind regards
Marcus

0 Kudos
RaeesaM_Intel
Moderator
1,460 Views

Hi,


Thank you for the confirmation. We are discontinuing monitoring this thread. Please raise a new query in case of any further issues.


Regards,

Raeesa


0 Kudos
Reply