AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1009255
Accepted
AnirudhJ
AnirudhJ
Asked: 2018-02-24 23:25:51 +0800 CST2018-02-24 23:25:51 +0800 CST 2018-02-24 23:25:51 +0800 CST

在 ubuntu 16.04、Intel i5 第 7 代戴尔 Inspiron 笔记本电脑上安装 OpenCL

  • 772

我最近购买了配备 Intel i5 第 7 代处理器的 Dell Inspiron 3000 系列笔记本电脑。这台机器预装了 Windows 8,但作为 Ubuntu 的忠实拥护者,我在上面安装了 Ubuntu 16.04。

我需要在我的笔记本电脑上使用 OpenCL,为此我遵循了此线程中列出的程序(OpenCL On ubuntu 16.04, Intel Sandy Bridge CPU)并安装了 PyOpenCL(顺便说一下,这个线程非常适合我在工作中的工作站有一台至强机)

我使用以下 python 脚本 ( https://github.com/benshope/PyOpenCL-Tutorial/blob/master/010_introspection.py ) 在我的笔记本电脑上获取此输出:

============================================================
OpenCL Platforms and Devices
============================================================
Platform - Name:  Intel Gen OCL Driver
Platform - Vendor:  Intel
Platform - Version:  OpenCL 1.2 beignet 1.1.1
Platform - Profile:  FULL_PROFILE
beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware
(If you have multiple ICDs installed and OpenCL works, you can ignore this message)

我工作站上的相同脚本给了我:

============================================================
Platform - Name:  Intel(R) OpenCL
Platform - Vendor:  Intel(R) Corporation
Platform - Version:  OpenCL 2.0 LINUX
Platform - Profile:  FULL_PROFILE
--------------------------------------------------------
Device - Name:  Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
Device - Type:  CPU
Device - Max Clock Speed:  2200 Mhz
Device - Compute Units:  24
Device - Local Memory:  32 KB
Device - Constant Memory:  128 KB
Device - Global Memory: 31 GB
Device - Max Buffer/Image Size: 8013 MB
Device - Max Work Group Size: 8192

lspci 给我:

lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Device 5916 (rev 02)

(在一个可能不相关的说明中,我还在我的笔记本电脑上安装了一个图形驱动程序,当我第一次尝试安装 OpenCL 时不是这种情况)

基本上,我无法确定哪种 OpenCL 格式适合我的硬件。

任何建议都会非常棒:)

opencl 16.04 intel-cpu
  • 2 2 个回答
  • 6773 Views

2 个回答

  • Voted
  1. Best Answer
    AnirudhJ
    2018-02-25T02:08:13+08:002018-02-25T02:08:13+08:00

    好的,所以我想通了。此外,这不是火箭科学:/

    我之前关注的链接(OpenCL On ubuntu 16.04, Intel Sandy Bridge CPU)非常完美,因为我在 Xeon 机器上工作。它不会在我的笔记本电脑上工作(大惊喜!),因为它显然不是 Xeon 机器。

    我需要使用sdk for linux,填写表格后可用。填写表格后,您将被重定向到一个页面,您可以在其中选择产品和版本并下载 .gz 文件或 .tgz 文件。.tgz 用于Yocto操作系统,但在安装过程中,您可以运行它而不会丢失 Ubuntu 16.04 的通用性。

    安装相当简单,因为有一个非常方便的可执行 install.sh shell 脚本可供使用。

    要遵循的一般步骤是:

    1. 提取文件夹

      tar -xzvf intel_sdk_for_opencl_2017_yocto_7.0.0.2567_x64.tgz
      
    2. 运行外壳脚本

      ./install.sh
      
    3. 按照说明进行操作

    然后 python 脚本的输出显示:

    ============================================================
    OpenCL Platforms and Devices
    ============================================================
    Platform - Name:  Intel Gen OCL Driver
    Platform - Vendor:  Intel
    Platform - Version:  OpenCL 1.2 beignet 1.1.1
    Platform - Profile:  FULL_PROFILE
    beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware
    (If you have multiple ICDs installed and OpenCL works, you can ignore this message)
    ============================================================
    Platform - Name:  Experimental OpenCL 2.1 CPU Only Platform
    Platform - Vendor:  Intel(R) Corporation
    Platform - Version:  OpenCL 2.1 LINUX
    Platform - Profile:  FULL_PROFILE
        --------------------------------------------------------
        Device - Name:  Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
        Device - Type:  CPU
        Device - Max Clock Speed:  2500 Mhz
        Device - Compute Units:  4
        Device - Local Memory:  32 KB
        Device - Constant Memory:  128 KB
        Device - Global Memory: 8 GB
        Device - Max Buffer/Image Size: 1962 MB
        Device - Max Work Group Size: 8192
    ============================================================
    Platform - Name:  Intel(R) OpenCL
    Platform - Vendor:  Intel(R) Corporation
    Platform - Version:  OpenCL 2.0 
    Platform - Profile:  FULL_PROFILE
        --------------------------------------------------------
        Device - Name:  Intel(R) HD Graphics
        Device - Type:  GPU
        Device - Max Clock Speed:  1000 Mhz
        Device - Compute Units:  23
        Device - Local Memory:  64 KB
        Device - Constant Memory:  3209904 KB
        Device - Global Memory: 6 GB
        Device - Max Buffer/Image Size: 3135 MB
        Device - Max Work Group Size: 256
        --------------------------------------------------------
        Device - Name:  Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
        Device - Type:  CPU
        Device - Max Clock Speed:  2500 Mhz
        Device - Compute Units:  4
        Device - Local Memory:  32 KB
        Device - Constant Memory:  128 KB
        Device - Global Memory: 8 GB
        Device - Max Buffer/Image Size: 1962 MB
        Device - Max Work Group Size: 8192
    
    • 4
  2. digikar
    2018-05-03T10:59:12+08:002018-05-03T10:59:12+08:00

    在花费超过 16 个小时让 OpenCL 在 Windows 和 Linux 上运行后,我意识到OpenCL 在 ubuntu 16.04 上,Intel Sandy Bridge CPU是最接近它运行的。

    对我不起作用的是驱动程序的安装和配置,之后我尝试了更多的地方。是的,版本不一样。我尽可能地考虑到了这一点。但是,这是我第一次安装库和链接。所以,我希望这对像我这样的新手有所帮助。我只介绍了英特尔 GPU 上的部分

    让 OpenCL 工作

    sudo apt install clinfo ocl-icd-opencl-dev opencl-headers
    

    检查 clinfo 的输出

    clinfo | grep "GPU"
    

    检查是否包含 GPU。如果没有像

    Device Type                            GPU
    

    在输出中,GPU 还不支持 OpenCL。在这种情况下,尝试安装 beignet-opencl-icd、mesa-opencl-icd 等 - 可能一次安装一个。继续检查clinfo每个之后的输出。如果它包括上面的行,你就完成了。

    安装英特尔 OpenCL 驱动程序

    如果这不起作用,请从https://software.intel.com/en-us/articles/opencl-drivers#latest_linux_driver安装英特尔的 opencl 驱动程序。自动安装需要大量的时间和空间。不过还有另一种方法。解压缩存档。安装外星人,如果你还没有: sudo apt install alien

    cd进入解压后的文件夹,运行

    sudo alien -i *.rpm
    

    再次检查“clinfo”的输出。它应该有一个 GPU。信息 | grep “GPU”

    此时,您将拥有 OpenCL 的工作实现。

    但是,在尝试示例时(来自此处),我发现大多数示例都适用于英特尔的库(见下文),有些示例不适用于随发行版安装的库(安装在上面)。(我猜,这是因为涉及到不同的 openCL 版本。)

    安装英特尔的 OpenCL SDK

    从此处Intel OpenCL SDK for Linux向他们安装 Intel OpenCL SDK for Linux(免费注册后)。只需运行安装程序脚本 - 无需处理使其与 Eclipse 和所有功能一起工作的部分。你可能需要

    sudo apt install dkms
    

    此时,您应该准备好所有东西。

    如果你是新手(像我一样)

    了解C程序的编译过程:首先生成目标文件,然后链接。请参阅https://stackoverflow.com/questions/31179452/what-exactly-is-in-aoa-so-file。

    在 IDE(我不知道终端)中,处理库有两个部分。首先是包含头文件的路径。其次是在项目中包含库文件。

    我正在使用代码块。所以,喜欢 Linux 的原因是,这个答案的第一个命令将文件发送到他们想要的地方。头文件位于“CL”文件夹下的 /usr/include 目录中。该库(在我的情况下)位于 /usr/lib/x86_64-linux-gnu 下,名为“libOpenCL.so”。你不需要做任何进一步的事情来使用它们。您可以开始编码 -

    #include<CL/cl.h>
    

    对于英特尔 OpenCL SDK,头文件位于 /opt/intel/opencl-sdk/include 下;而库文件在安装后,检查 /opt/intel/opencl 的内容以获取内容。这些也有图书馆。但是,其中一个库文件给了我一个语法错误(libclang.so)。英特尔 OpenCL SDK 的下载主要用于以下位置的头文件:/opt/intel/opencl-sdk/lib64 - 仅 .so 文件。(我发现 libclang.so 文件出现语法错误。在运行程序时检查。)

    在CodeBlocks的情况下,要使用这些英特尔的文件 - 非默认文件 - 创建一个新项目。右键单击管理器子窗口中的项目。转到“构建选项”。在左侧窗格中选择项目名称 - 因此,设置将应用于发布和调试版本。在链接器设置 -> 链接库中,单击“添加”。在这里,添加库(不是头文件;所有的 .so 文件):在 /opt/intel/opencl-sdk/lib64。在“搜索目录”选项卡的“编译器”下,添加 /opt/intel/opencl/include(或您的头文件所在的任何位置)。

    在Eclipse的情况下,首先,安装 CDT。然后,创建项目后,在Project -> Properties -> C/C++ Build -> Settings -> Tool Settings下,(1)GCC C++ Compiler下,includes,添加头文件目录。(2) 在 GCC C++ Linker 下,在 Libraries 部分中,添加 OpenCL,在下部的 Library Path 部分中,添加路径。在我的情况下,为了让它工作,我需要 /opt/intel/opencl/include 在第一部分和 /opt/intel/opencl/SDK/lib64 在第二部分。代码块的默认设置不起作用。也许,它是由于版本,或者我没有正确尝试 - Eclipse 对我来说是新的。

    完毕。

    以下应该运行和编译:https ://github.com/bgaster/opencl-book-sa​​mples/blob/master/src/Chapter_3/OpenCLInfo/OpenCLInfo.cpp

    学分:互联网

    • 3

相关问题

  • 使用 Nvidia 卡在 CPU 和 GPU 上进行 OpenCL 编程?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve