Mobile and Desktop Processors
Intel® Core™ processors, Intel Atom® processors, tools, and utilities
공지
For support on Altera products please visit the Altera Community Forums.
17249 토론

Using OpenCL in GitHub Actions running on windows

SunSerega
초급자
7,500 조회수

GitHub Actions don't have GPUs, but I need a working OpenCL API to run some of the sanity checks of my app.

I know I can run them on Ubuntu and then just:

```
sudo apt-get install -y ocl-icd-opencl-dev
sudo apt-get install -y pocl-opencl-icd
```

Then from OpenCL, I see a single OpenCL device, here an example name (from `clGetDeviceInfo` in one of the runs):
> pthread-Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz

---


But I need my sanity checks to run on the Windows system due to other limitations (which I'm trying to resolve too, but I can't count on that).

So, from running "Get-WmiObject Win32_Processor" I see:

```

Caption : Intel64 Family 6 Model 79 Stepping 1
DeviceID : CPU0
Manufacturer : GenuineIntel
MaxClockSpeed : 2295
Name : Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
SocketDesignation : None
```

Model, Stepping, and clock speed change sometimes.
But it's always Intel, 64bit, Family 6, and Xeon.

---

So, I tried installing drivers from here:
https://www.intel.com/content/www/us/en/search.html#q=Xeon&sort=relevancy&f:@tabfilter=[Downloads]&f:@stm_10385_en=[Graphics]

Here is the main idea:

```
#Invoke-WebRequest -Uri 'https://downloadmirror.intel.com/30195/a08/win64_15.45.5174.zip' -OutFile 'D:\igfx.zip'
#Invoke-WebRequest -Uri 'https://downloadmirror.intel.com/25308/eng/win64_15407.4279.zip' -OutFile 'D:\igfx.zip'
Invoke-WebRequest -Uri 'https://downloadmirror.intel.com/30382/a08/win64_15.36.5180.zip' -OutFile 'D:\igfx.zip'
7z x "D:\igfx.zip" -o"D:\igfx" -y
Start-Process -FilePath 'D:\igfx\igxpin.exe' -ArgumentList '-overwrite -s -report "D:\igfx.log" -nowinsat' -Wait -Verb RunAs | ForEach-Object { Write-Host $_ }
#Start-Process -FilePath 'D:\igfx\Setup.exe' -ArgumentList '-overwrite -s -report "D:\igfx.log" -nowinsat' -Wait -Verb RunAs | ForEach-Object { Write-Host $_ }
if ([System.IO.File]::Exists("D:\igfx.log")) {
Get-Content "D:\igfx.log"
} else {
Write-Host "No driver install log file found"
}
```

In all cases, the installer silently exists without any errors (doesn't even create the .log file), but also doesn't seem to have actually run.

---

I also tried copying the contents of the "Graphics" folder from these .zip-s to the current directory and `[DllImport]` -ing from some copied .dll-s instead of the system "OpenCL.dll".

- "Intel_OpenCL_ICD64.dll", just like the system "OpenCL.dll", says there are 0 OpenCL platforms.
- "ocl_cpu_IntelOpenCL64.dll" and "IntelOpenCL64.dll" also seem to have the OpenCL API entry points, but trying to get platform count I get `CL_OUT_OF_HOST_MEMORY`.


0 포인트
1 솔루션
3 응답
SunSerega
초급자
7,467 조회수

While locally testing the installer (looking at command line options) - it seems I managed to install it on my system.
Work great, I can now run OpenCL kernel on my CPU but... I have AMD CPU.


For now, only 2 things seem glitchy:
1. If I try to combine GPU and CPU devices in one context - I get AccessViolation, instead of an OpenCL error, if the first device is my NV GPU.
2. In the OpenCL device info I see:

Name = AMD Ryzen 5 2600 Six-Core Processor
Vendor = Intel(R) Corporation

So, should I be worried? Are there any repercussions for just letting the Intel driver run my AMD CPU?

P.S. (and in terms of GitHub Actions - it worked perfectly, no questions there)

0 포인트
Stefan3D
명예로운 기여자 II
7,461 조회수

You might get further help in the developer forum: https://community.intel.com/t5/OpenCL-for-CPU/bd-p/opencl

 

Out of curiosity i tried an AMD CPU with the aforementioned driver and an NVIDIA GPU successfully in Indigo bench

Looks like Intel's driver developer did a good job

 

응답