I have a Fortran application which I successfully analyzed with Intel Advisor on CPU. Now I want to perform the same analysis on GPU. I wrote the OpenCL version of the application with three OpenCL kernels, and it runs fine on the Intel HD Graphics I have available.
However, I'm facing some problems performing the GPU Roofline analysis as described in https://software.intel.com/content/www/us/en/develop/documentation/get-started-with-advisor/top/offload-advisor-workflow/identify-gpu-performance-bottlenecks-using-gpu-roofline.html. I have root access, run the vars inteloneapi script, and execute the sysctl and export commands as indicated in that page.
I'm using FortranCL for the API to set the platform, device etc, which are correctly recognized.
After executing Advisor Beta for my application with --enable-gpu-profiling, the collection stops giving the following messages:
advixe: Collection stopped.
advixe: Warning: The application returned a non-zero exit value.
advixe: Opening result 31 % Processing profile metrics and debug information
advixe: Error: Error 0x4000002a (Database interface error) -- Cannot run data transformation `Add Fake Loop Data'.
advixe: Opening result 99 % done
advixe: Opening result 100 % done
advixe: Error: Data loading failed.
advixe: Error: No data
It seems that the OpenCL kernels are not recognized by Intel Advisor Beta. My doubt is if I have to rewrite the code with some particular Intel oneAPI instead of the FortranCL API.
The log files are attached. Please, let me know if you need more information.
Linux CentOS 7.5.1804, kernel 4.19.89, Intel(R) Core(TM) i7-8700K, Intel(R) Gen9 HD Graphics NEO (Device OpenCL 2.1 NEO, Driver 19.46.14807)
Intel(R) Advisor 2021.1 beta04 (build 604889) Command Line Tool
ifort (IFORT) 19.1 20200117, gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
OpenCL 1.2 (Intel SDK for applications 2020.1.395), FortranCL (fortrancl-0.1alpha4.tar.gz from https://code.google.com/archive/p/fortrancl/downloads)
This error normally has nothing to do with GPU and indicates one of the following:
1) The application environment is incomplete (so you cannot run applicatin with or without Advisor, e.g. because some runtime library was not visible in this shell instance)
2) The application executed super quickly (few miliseconds in total)
Could you please run your application (without using Advisor) from exactly the same shell instance where you get this error? Does it work in this case? How much time it takes to execute it in this case? I wonder if some standard runtimes were not avialble (not source-ed) in given shell instance.
The application runs fine without Advisor and takes about 2 min to finish in the same environment that is set for Advisor. The only problem seems to be when I try to generate the GPU Roofline. I thought that maybe it is a problem of Advisor not recognizing the OpenCL kernels that are called with the FortranCL API.
Please, let me know if you need more information.
Thanks for your reply.
I recommend you upgrade Intel(R) Advisor to the Beta 06 version and NEO drivers to v20.16
Best regards, Julia