Graphics
Intel® graphics drivers and software, compatibility, troubleshooting, performance and optimization
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
16844 Discussions

The EU count of Iris Plus Graphics 655 is wrong

H-Takeda
New Contributor I
708 Views
Hi, I have a problem that I have asked about before and have not been able to solve.
The problem is that there are fewer GPU Execution Units (EU) recognized by the app than in the catalog.

 

I've looked into it a bit more this time and will report back.
I'm using the NUC8i3BEH.
The SoC of NUC8i3BEH is i3-8109U.
The internal GPU of the i3-8109U is "Iris Plus Graphics 655".
Many documents found on Intel show the "Iris Plus Graphics 655" as being 48EU.
 

For Linux OS:

For example, the API of C for Metal displays 1 EU less.
 
Next, show the back in the linux kernel with the following command.
sudo cat /sys/kernel/debug/dri/0/i915_gpu_info
As a result, SubSlice0 of Slice0 is displayed as 1 EU less.
Why is this?
・・・
slice0: 3 subslice(s) (0x7):
subslice0: 7 EUs (0xbf)
subslice1: 8 EUs (0xff)
subslice2: 8 EUs (0xff)
subslice3: 0 EUs (0x0)
slice1: 3 subslice(s) (0x7):
subslice0: 8 EUs (0xff)
subslice1: 8 EUs (0xff)
subslice2: 8 EUs (0xff)
subslice3: 0 EUs (0x0)
slice2: 0 subslice(s) (0x0):
subslice0: 0 EUs (0x0)
subslice1: 0 EUs (0x0)
subslice2: 0 EUs (0x0)
subslice3: 0 EUs (0x0)
・・・
 
Finally, let's try to run the sample that displays the platform information in OpenCL.
The full code is at the following link.
 
As a result, CL_DEVICE_MAX_COMPUTE_UNITS is displayed as 47.
Why is this...?
1 OpenCL Platforms found

CL_PLATFORM_NAME: Intel(R) OpenCL HD Graphics
CL_PLATFORM_VERSION: OpenCL 2.1
OpenCL Device Info:

1 devices found supporting OpenCL on: Intel(R) OpenCL HD Graphics

----------------------------------
Device Intel(R) Gen9 HD Graphics NEO
---------------------------------
CL_DEVICE_NAME: Intel(R) Gen9 HD Graphics NEO
CL_DEVICE_VENDOR: Intel(R) Corporation
CL_DRIVER_VERSION: 19.41.14441
CL_DEVICE_TYPE: CL_DEVICE_TYPE_GPU
CL_DEVICE_MAX_COMPUTE_UNITS: 47
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS: 3
CL_DEVICE_MAX_WORK_ITEM_SIZES: 256 / 256 / 256
CL_DEVICE_MAX_WORK_GROUP_SIZE: 256
(The results of all OpenCL runs are attached as text data.)
 

For Windows OS:

The Intel Customer Support Technician who answered my last question suggested that I use GPU-Z to check.
GPU-Z is not available for Linux. (There is similar software, but it cannot check the number of EU).
I prepared Windows and decided to test it.
The results of running GPU-Z on Windows are as follows.
The number of Shaders is shown as 48.
This seems to be the correct information.
 
nuc_win.gif

 

Therefore, I thought this was a problem with the Linux kernel or driver.
However, according to another community discussion, "GPU-Z's display of EU numbers is a table reference and is not necessarily correct."
 
Bottom line, so far I have no way to be sure that the application is correctly recognizing all the EUs.
How can I find out how many EUs are actually recognized by the OS or application?
I am a GPU researcher at a university, and even a lack of 1 EU can seriously hamper my experiments.
I need your help.
0 Kudos
8 Replies
Stefan3D
Honored Contributor II
691 Views

3rd party tools indeed use a table reference.

Quote from GPU Caps Viewer's author:

"I can add your GPU to GPU Caps Viewer and other GPU tools but I need some information:
- GPU name =  "Intel(R) UHD Graphics" - OK
- number of EUs =  - MISSING"

 

Even Intel does so in their GPU detect tool, atm they added only Ice lake EUs

https://github.com/GameTechDev/gpudetect

Sebastian_M_Intel
Moderator
674 Views

Hello H-Takeda, 

 

Thank you for posting on the Intel® communities.   

 

Based on what you are reporting, it seems that your Linux tools/commands and distro may have issues to identify how many EUs your GPU actually has. Please include the following: 

 

  1. Is it possible for you to provide more details about the experiments you want to realize so we can check internally to see if we may have any additional information for you?  
  2. Also, please share more information about your system, try running the Intel® System Support Utility for the Linux* Operating System and provide the outcome: https://downloadcenter.intel.com/download/26735/Intel-System-Support-Utility-for-the-Linux-Operating...  
  3. If you cannot get the report, please provide the Linux distribution and the kernel you are using. 

 

Regards, 

 

Sebastian M  

Intel Customer Support Technician  


H-Takeda
New Contributor I
661 Views
Sebastian M, thanks again for your help.
Answer the questions in order. 
 

question 1

My experiment is to accurately benchmark an application written in C for Metal.
Therefore, if the C for Metal API recognizes fewer EUs, the benchmark will be lower.
(The more EUs that can be used, the better the benchmark will be.)
If you want to see a concrete example of your application, download the Linux_C_for_Metal_Development_Package.

Then, try running vcaOpSAD in examples.
$ unzip Linux_C_for_Metal_Development_Package_******.zip 
$ cd Linux_C_for_Metal_Development_Package_******/
$ chmod +x compiler/bin/cmc
$ cd examples/vcaOpSAD
$ make -f ../Makefile.linux
$ ./hw_x64.vcaOpSAD 4096 8 -random

 

Execution result.

$ ./hw_x64.vcaOpSAD 4096 8 -random
libva info: VA-API version 1.4.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva info: va_openDriver() returns 0
Max number of HW threads: 329
Kernel vcaOpSAD_Ex execution time is 49833 nanoseconds
All SAD values match!!
PASSED
 
Max number of HW threads: 329
Pay attention to this text.
The C for Metal API shows 1 EU less.
(The Iris Plus Graphics 655 has 7 hardware threads in 1EU.
Thus, if there are 48 EUs, it should be "HW thread count : 336".)
 

question 2

$ . /ssu.sh -o=All_Information.txt
The output text of this command is attached.
 

question 3

I was able to get the information from SSU without any problem, but just in case, I will write down the Linux distribution and kernel information here as well.
$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="18.04.5 LTS (Bionic Beaver)"
$ cat /proc/version
Linux version 5.4.0-58-generic (buildd@lgw01-amd64-040) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #64~18.04.1-Ubuntu SMP Wed Dec 9 17:11:11 UTC 2020
AndrewG_Intel
Moderator
601 Views

Hello @H-Takeda

Thank you very much for all the information provided. Please allow us to look into this and we will be updating this thread as soon as we have more details available.


Best regards,

Andrew G.

Intel Customer Support Technician


AndrewG_Intel
Moderator
594 Views

Hello @H-Takeda


Regarding the information that those third-party applications are reporting, that is something very specific to each application and they are the only ones that can provide more details on how they show and organize information.


However, putting those Softwares aside and focusing on your specific question regarding how to use all the EUs for your application, this is something that would be better to check with our Intel® Developer Zone team. In this case, we recommend you to refer to the Visual Computing (Graphics and Gaming) forum to address this inquiry. This is a specialized forum for software development with Intel® Graphics. Thank you for your understanding.


Best regards,

Andrew G.

Intel Customer Support Technician


H-Takeda
New Contributor I
584 Views

OK.
Indeed, it is quite difficult to be sure where the application is getting the number of EUs from.

"how to use all the EUs for your application".
So, you are sure that the question "how to use all the EUs for C_for_Metal" is better asked in the Intel® Developer Zone, right?

Just to confirm, is there anything else we can discuss here?

Sebastian_M_Intel
Moderator
569 Views

Hello H-Takeda,  

 

Yes, our recommendation is to go with the Intel® Developer Zone team. This is because our support is more dedicated to end-users and not to developers. 

 

The best place for help on these types of questions is the Visual Computing (Graphics and Gaming) forum. 

 

Regards,  

  

Sebastian M  

Intel Customer Support Technician   


Sebastian_M_Intel
Moderator
539 Views

Hello H-Takeda,  

 

We hope that our previous recommendations guided you to the correct support place. We will proceed to close this inquiry; if you get to need further assistance, please submit a new post and we will gladly assist you.  

 

Regards,  

  

Sebastian M  

Intel Customer Support Technician


Reply