intel / beignet

Beignet is an open source implementation of the OpenCL specification - a generic compute oriented API. Here is Beignet Source Code Mirror in github- This is a publish-only repository and all pull requests are ignored. Please follow https://wiki.freedesktop.org/www/Software/Beignet/ for any of your improvements
GNU Lesser General Public License v2.1
95 stars 40 forks source link

Enable Comet Lake support #20

Open rcombs opened 3 years ago

rcombs commented 3 years ago

Mimicking 7e181af2ea4d37f67406f2563c0e13fa1fdbb14b

Includes all PCI IDs supported by the kernel driver.

The drm-intel tree doesn't distinguish between Y/H/W IDs for CML, so line codes for IDs that don't correspond to anything on ARK are guesses.

I don't have a CML device on hand to test on, so all I can verify is that it builds.

syadnom commented 3 years ago

Can you provide any guidance on how to build this? The original has some very dated llvm dependancies. I've pulled this down and tried to build against llvm and clang 10 but make dies at about 13% "In file included from /root/a/beignet/build/backend/src/libocl/src/ocl_sync.cl:19: /root/a/beignet/build/backend/src/libocl//usr/local/lib/beignet//include/ocl_misc.h:319:2: error: typedef redefinition with different types ('struct intel_sub_group_avc_ime_payload_t' vs 'intel_sub_group_avc_ime_payload_t') }intel_sub_group_avc_ime_payload_t; " (ubuntu 20.04 with llvm/clang installed from repos)

rcombs commented 3 years ago

on Ubuntu 20.04 you can run this:

sudo apt install cmake pkg-config python ocl-icd-dev libegl1-mesa-dev ocl-icd-opencl-dev libdrm-dev libxfixes-dev libxext-dev llvm-7-dev clang-7 libclang-7-dev libtinfo-dev libedit-dev zlib1g-dev
mkdir build
cd build
cmake -DLLVM_INSTALL_DIR=/usr/lib/llvm-7/bin ..
make -j8
syadnom commented 3 years ago

I've tried that, CMake is giving me errors, one is saying incompatible llvm version required 3.3

cmake -DLLVM_INSTALL_DIR=/usr/lib/llvm-7/bin .. -- Building mode: RelWithDebInfo -- LLVM llvm-config found at: /usr/bin/llvm-config CMake Error at CMake/FindLLVM.cmake:30 (string): string sub-command REGEX, mode REPLACE needs at least 6 arguments total to command. Call Stack (most recent call first): CMakeLists.txt:100 (Find_Package)

CMake Error at CMake/FindLLVM.cmake:31 (string): string sub-command REGEX, mode REPLACE needs at least 6 arguments total to command. Call Stack (most recent call first): CMakeLists.txt:100 (Find_Package)

CMake Error at CMake/FindLLVM.cmake:36 (message): imcompatible LLVM version required 3.3 Call Stack (most recent call first): CMakeLists.txt:100 (Find_Package)

-- Configuring incomplete, errors occurred! See also "/root/a/beignet/build/CMakeFiles/CMakeOutput.log". See also "/root/a/beignet/build/CMakeFiles/CMakeError.log".

rcombs commented 3 years ago

It looks like it's trying to use /usr/bin/llvm-config instead of /usr/lib/llvm-7/bin/llvm-config. I'd try removing whichever package /usr/bin/llvm-config came from. The error is somewhat misleading; LLVM 3.3 is the minimum version, and versions up to 7 work.

syadnom commented 3 years ago

dpkg -S /usr/bin/llvm-config-7 llvm-7: /usr/bin/llvm-config-7

but get this, I remove llvm-7, which deletes /usr/bin/llvm-config-7 and cmake still tells me: -- LLVM llvm-config found at: /usr/bin/llvm-config

rcombs commented 3 years ago

That's /usr/bin/llvm-config-7, not /usr/bin/llvm-config. The llvm-7 package doesn't install /usr/bin/llvm-config. You may also need to clear out your build dir before retrying.

syadnom commented 3 years ago

nuked the build directory and I'm now able to get through it. thanks

nwalke commented 3 years ago

Thank you so much for this. I just wanted to confirm that this DOES fix the issue with detection I was seeing. Plex HDR to SDR hardware transcode did not work prior to building this from this branch, and does after.

This package really needs kept up to date with processor releases. My i9-9900k is not "new" by computer hardware standards.

This is really important @ruiling-song

kcxserver commented 3 years ago

I agree. I bought a Comet Lake i3 10100 for my Plex Server and now had to find out that the HDR-> SDR feature doesn't work. What can I do to fix the problem?

Brandoskey commented 3 years ago

I'm having issues when running the make command from the build directory. It completes with 94 errors

94 errors generated. make[2]: *** [backend/src/libocl/CMakeFiles/beignet_bitcode.dir/build.make:474: backend/src/libocl/usr/local/lib/beignet/ocl_misc.bc] Error 1 1 warning generated. make[1]: *** [CMakeFiles/Makefile2:357: backend/src/libocl/CMakeFiles/beignet_bitcode.dir/all] Error 2 make: *** [Makefile:171: all] Error 2

I had to use llvm-12 in the cmake command posted above on ubuntu 21.04 to get that far