Page 1 of 2

Add Intel Iris GPUs to GPUs.txt?

Posted: Thu May 07, 2020 5:20 pm
by kjn-void
The F@G client seem to have, at least partial, support for using Intel iGPUs. I noticed that adding a "3" in the third column in CPUs.txt will pass the switch "-gpu-vendor intel" to the FAHCoreWrapper.

Adding an entry matching the PCI-vendor and PCI-device ID of the Intel GPU in NUCs fitted with Iris Graphics is enough start processing WU on the GPU.

Output from a i7-8559U fitted Bean Canyon NUC

Code: Select all

$ FAHClient --lspci
VendorID:DeviceID:PCI Bus:PCI Slot:PCI function:Vendor Name:Description
0x8086:0x3ed0:0:0:0:Intel Corporation:
[b]0x8086:0x3ea5:0:2:0:Intel Corporation:
[/b]0x8086:0x1911:0:8:0:Intel Corporation:
0x8086:0x9df9:0:18:0:Intel Corporation:
0x8086:0x9ded:0:20:0:Intel Corporation:
0x8086:0x9def:0:20:2:Intel Corporation:
0x8086:0x9df0:0:20:3:Intel Corporation:
0x8086:0x9de0:0:22:0:Intel Corporation:
0x8086:0x9dd3:0:23:0:Intel Corporation:
0x8086:0x9db8:0:28:0:Intel Corporation:
0x8086:0x9dbc:0:28:4:Intel Corporation:
0x8086:0x9db0:0:29:0:Intel Corporation:
0x8086:0x9db6:0:29:6:Intel Corporation:
0x8086:0x9d84:0:31:0:Intel Corporation:
0x8086:0x9dc8:0:31:3:Intel Corporation:
0x8086:0x9da3:0:31:4:Intel Corporation:
0x8086:0x9da4:0:31:5:Intel Corporation:
0x8086:0x15be:0:31:6:Intel Corporation:
0x10ec:0x522a:110:0:0:Realtek Semiconductor Co., Ltd.:

Code: Select all

$ lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers [8086:3ed0] (rev 08)
[b]00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:3ea5] (rev 01)[/b]
...
Adding this to the local CPUs.txt file

Code: Select all

0x8086:0x3ea5:3:0:[Iris Plus Graphics 655]
is enough to things going.
Image

I've tested the above for a total of three Intel iGPUs

The others are

Iris Graphics Pro 580 (i7-6770)

Code: Select all

0x8086:0x193b:3:0:[Iris Pro Graphics 580]
Iris Graphics 540 (i7-6550U)

Code: Select all

0x8086:0x1926:3:0:[Iris Graphics 540]
The first two machines run Ubuntu 18.04 and using the Intel NEO driver, version 19.36.14103. The last machine is a Surface Pro 4 running Windows 10 and whatever driver is installed automatically. Performance on Windows is a lot worse, way more so than the theoretical performance difference of Iris Graphics 540. But it is still fast enough to complete the VU in time, projected ETA is about 13 hours for the current VU (limit is 4.7 days).

I'm not sure what the 4th column represent in CPUs.txt, I just set to "0" and it seems to work...

TL;DR Can this be added to CPUs.txt to support the above iGPUs?

Code: Select all

0x8086:0x1926:3:0:[Iris Graphics 540]
0x8086:0x193b:3:0:[Iris Pro Graphics 580]
0x8086:0x3ea5:3:0:[Iris Plus Graphics 655]

Re: Add Intel Iris GPUs to GPUs.txt?

Posted: Thu May 07, 2020 5:50 pm
by Joe_H
Currently folding on Intel graphics is not supported for F@h. There is no GPU folding core available to be used on them. If this changes in the future, then they will be added to the GPUs.txt file.

Adding entries to your local copy of the GPUs.txt file will not enable GPU folding, the copy on the servers determines that.

As for the WU shown, that is from a CPU project, not one for a GPU. However the client added the slot, it is being used for CPU folding and not on your GPU.

Re: Add Intel Iris GPUs to GPUs.txt?

Posted: Thu May 07, 2020 6:02 pm
by kjn-void
I see, not entirely obvious from the logs though.

Here is what the client prints

Code: Select all

17:51:44:WU01:FS01:Running FahCore: /usr/bin/FAHCoreWrapper /home/kjonsson/Downloads/fah/cores/cores.foldingathome.org/v7/lin/64bit/avx/Core_a7.fah/FahCore_a7 -dir 01 -suffix 01 -version 706 -lifeline 23157 -checkpoint 15 -gpu-vendor intel -opencl-platform 0 -opencl-device 0 -gpu 0

There is only one working OpenCL implementation on this machine, that one does match the platform, device and GPU id above (that is the Intel NEO driver).

However, I see what you mean when I found this...

Code: Select all

$ tree cores/
cores/
└── cores.foldingathome.org
    └── v7
        └── lin
            └── 64bit
                └── avx
                    └── Core_a7.fah
                        └── FahCore_a7
The a7 core seems to be the CPU-one...

This is what I guess I should see if it worked, this machine has a Nvidia GPU

Code: Select all

$ tree cores/
cores/
└── cores.foldingathome.org
    └── v7
        └── lin
            └── 64bit
                ├── avx
                │   └── Core_a7.fah
                │       └── FahCore_a7
                └── Core_22.fah
                    └── FahCore_22

Re: Add Intel Iris GPUs to GPUs.txt?

Posted: Thu May 07, 2020 6:44 pm
by Joe_H
Would have to see more of the log to see how the client ended up configured, but that one excerpt does show the A7 core for CPU folding being started.

Core_A7 - CPU
Core_21 - GPU
Core_22 - GPU

Re: Add Intel Iris GPUs to GPUs.txt?

Posted: Fri May 08, 2020 8:08 pm
by bruce
1) Intel GPUs are NOT supported.
2) Local edits to GPUs.txt are not accepted. The FAH server maintains the authorized version Your local copy is simply a cached copy to enable FAHClient to do it's configuration steps without repeated references to the master copy.

The project you're running uses FAHCore_a7 which uses the CPU resources, not GPU resources. Again, the use of an Intel GPU is not supported by FAH. All you've done is confused the Client into misleading you into thinking you can.

The AVX instruction set is a part of the CPU hardware, not a part of the (unsupported) GPU hardware. On somebody else's hardware, it might contain an entry for 64bit-sse2 since that's an appropriate place to put an alternative CPU FAHCore.

Remove the GPU slot as it's non-functional.

Re: Add Intel Iris GPUs to GPUs.txt?

Posted: Fri May 08, 2020 8:22 pm
by bruce
They're been changing the file tree naming, but on mine, under 64bit I see AVX, but I also see NVIDIA and presumably there might also be an entry for AMD or ATI and maybe something for Intel if the intel GPU is ever supported. Inside of NVIDIA, I see FAHCore_21 which is inconsistent of seeing FAHCore_22 at the same level. Maybe FAHCore_22 is expected to provide universal for any GPU hardware instead of needing separate FAHCores compiled by Device.

Re: Add Intel Iris GPUs to GPUs.txt?

Posted: Sat May 09, 2020 4:34 am
by paulmd199
I would love to see what the task manager says when you try to fold with the Intel under Windows 10. The GPU columns (you may have to enable that column) on the process tab and the performance tab for the GPUs.

Re: Add Intel Iris GPUs to GPUs.txt?

Posted: Wed May 13, 2020 1:36 am
by VA1DER
I've heard every reason under the sun why Intel HD GPUs are not allowed. Everything from poor OpenCL to them being too slow. The fact of the matter is, the FaH benchmark, which uses a slightly modified core 21 that doesn't follow the whitelist table, will happily use OpenCL to fold on an Intel GPU. It works fine and is quite stable. Intel integrated GPUs are perfectly well suited to this work, if not terribly fast. I get performance from my current-ish Intel HD 930 at about half of that of the NVIDIA GTX 960M in a two year old laptop which is happily folding away downstairs as I write this. Lots of people with older laptops relegate them to FaH and their contributions are universally welcomed (and useful). I see no difference between those people and users with modern Intel GPUs, except to say there are a whole lot more of the latter.

Re: Add Intel Iris GPUs to GPUs.txt?

Posted: Wed May 13, 2020 2:12 am
by paulmd199
I know for instance that my Intel HD 530 should be capable of 100.8 GFLOPS at double precision. Puts it on par with many low to mid range nvidia cards. There is a lot of power just going unused. :/

Re: Add Intel Iris GPUs to GPUs.txt?

Posted: Wed May 13, 2020 8:32 am
by PantherX
Unfortunately, FahCore_21 is not longer in "production" as the scientific requirements can't be met so FahCore_22 is in production with all the scientific features that the researchers need. FahCore_21 isn't deprecated officially speaking as a researcher may want to have a follow-up on their existing research and would tend to use FahCore_21 if they started their research on it. The tend is to stick with what FahCore their project has started to ensure that the results are scientifically valid. It is very rare for a researcher to migrate from FahCore_X to FahCore_Y and would be done if the scientific advancements outweigh the disadvantages.

Re: Add Intel Iris GPUs to GPUs.txt?

Posted: Thu May 14, 2020 8:49 pm
by MeeLee
paulmd199 wrote:I know for instance that my Intel HD 530 should be capable of 100.8 GFLOPS at double precision. Puts it on par with many low to mid range nvidia cards. There is a lot of power just going unused. :/
100Gflops is about what my Intel Pentium Gold G5400 and Intel Celeron G4900 have.
But 100Gflops vs 10Tflops on the mid-high range of GPUs, is like you'll need 100 of these IGPs to keep up with 1 RTX 2070 Super / RTX 2080.
Even at 35W per laptop, that'll be 3,5kW of power to crunch through the same amount of data a simple 350W PC can do.

Re: Add Intel Iris GPUs to GPUs.txt?

Posted: Fri May 15, 2020 3:27 am
by VA1DER
PantherX wrote:Unfortunately, FahCore_21 is not longer in "production"
My point was that there is no code changes, library irregularities, or really significant issues of any kind that are preventing the use of Intel GPUs. They have been easily and trivially supported since at least core 21 and Intel's OpenCL librariries are not really problematic. Inel GPU's are quite easily taken advantage of. If there are other reasons why they are not utilized, say, for example, that there are not enough work units to go around, or because using Intel GPUs and CPUs together introduces more thermal issues than they care to deal with then fine. Fair enough. But they need to stop telling people it's because there are problems supporting Intel GPUs, because this is demonstrably not the case.

Re: Add Intel Iris GPUs to GPUs.txt?

Posted: Fri May 15, 2020 4:14 am
by bruce
FAHCores cannot use 100.8 GFLOPS at double precision (FP64). They're more likely to use 10 GFLOPS at FP64 and 120 at FP32. It was written for either FP64 or FP32 and the actual FAHCore uses "Mixed precision" At the present time it's difficult to measure that with FAHBench. I don't know how the Intel iGPU will respond to Mixed Precision so I can't make a logical comparison with ANY low-end nVidia or AMD GPU.

I have little doubt that some of the GPUs that are supported are as slow as Intel's GPUs ... and there are certainly a lot of unused Intel GPUs. Unfortunately MeeLee makes a poor comparison when he uses his RTX2070 S for a comparison.

Realistically, just how useful is my GT710 (if that's a more realistic comparison)? ... or 100 of them?

Yes, I do actually have a GT710LP in one of my computers but I almost never let it download a WU. I recognize that if it starts on a WU, it will probably be able to complete it just before the Final Deadline. As soon as it passes the Timeout, a duplicate WU will be issued ... which will be picked up by a faster GPU and will be completed before my efforts can be completed or used. The project will move on to the next Gen and my work will simply be discarded as an unnecessarily duplication of effort ... meanwhile I will have delayed that trajectory by the wait for the Timeout clock to expire so the server could assume the WU is lost an issue a duplicate WU.

To make use of a multitude of slow GPUs requires a major restructuring of how FAH projects are structured. The only projects which are not urgent are assigned to CPUs and with the advent of affordable CPUs with massive numbers of threads, even those projects can be expected to be completed promptly.

Re: Add Intel Iris GPUs to GPUs.txt?

Posted: Fri May 15, 2020 6:47 am
by paulmd199
100.8 GFLOPS at double
403.2 GFLOPS at single precision
808.4 at half precision (16 bit)

I suppose the overall performance would depend on the ratio of doubles to floats. It would be a weighted average and probably dependent on the actual project.

Re: Add Intel Iris GPUs to GPUs.txt?

Posted: Fri May 15, 2020 6:30 pm
by MeeLee
The new 10th gen IGPs supposedly ran 1Tflops (probably at 8 or 16 bit).
They're considerably faster than my Celeron or Pentium Gold (7th/8th gen).
bruce wrote:...
I have little doubt that some of the GPUs that are supported are as slow as Intel's GPUs ... and there are certainly a lot of unused Intel GPUs. Unfortunately MeeLee makes a poor comparison when he uses his RTX2070 S for a comparison.

...
I don't think it's a poor comparison, if you look at power consumption.
It makes no sense to get data, while wasting valuable energy resources.
Especially if (in a scenario where one would run 100 units, paying $3,5k of electricity by the end of the year), could do the same thing for a mere $350, and instead do the calculation, and spend the $2,5k in system upgrades instead; which will increase the amount of work done by a multitude, and probably increase wattage and electric cost closer to $1000 a year.

Jensen Huang said in his keynote: "The more you spend, the more you save".