This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/PROCESSOR-SDK-AM57X:适用于 Linux 的 TI-RTOS 处理器 SDK v05.01.00.11缺少 OpenCL

Guru**** 2015290 points
Other Parts Discussed in Thread: MATHLIB
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/738854/rtos-processor-sdk-am57x-opencl-is-missing-from-ti-rtos-processor-sdk-v05-01-00-11-for-linux

器件型号:PROCESSOR-SDK-AM57X
主题中讨论的其他器件:MATHLIB

工具/软件:TI-RTOS

您好!

适用于 AM57x 的最新 TI-RTOS 处理器 SDK Linux 版本中缺少 OpenCL 组件。 OpenCL 不会显示在版本的清单中、但会显示在 TI-RTOS 版本说明组件表(http://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/Release_Specific.html#processor-sdk-v05-01-00)中。 最新的 SDK 版本也在 TI OpenCL 发行说明版本映射(http://downloads.ti.com/mctools/esd/docs/opencl/readme/index.html)中引用

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    Cortex-A15/Linux 主机的 OpenCL 随处理器 Linux SDK (PLSDK)提供、而 Cortex-A15/TI-RTOS 主机的 OpenCL 随处理器 RTOS SDK (PRSDK)提供。 PLSDK 5.1中提供了 OpenCL/Linux。 遗憾的是、封装错误导致 OpenCL/TI-RTOS 被排除在 PRSDK 5.1版本之外。 我们将调查客户是否可以从源代码构建 OpenCL/TI-RTOS、并与您联系。

    Ajay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我意识到、由于 URL 和/或括号解析、我的初始消息的某些部分被截断。 我对这一职位的突然结束表示歉意。

    根据清单 DSPLIB 和 MATHLIB、AM57x 的最新 TI-RTOS 版本安装程序中也缺少其他组件。 可能还有更多。 您能否提供有关从来源构建这些组件的说明、以及有关任何其他缺失组件的说明?

    谢谢、
    Matt Mckee
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Matt、

      附带的内容请在 x86 Linux 上找到用于从下载的 Processor SDK RTOS (PRSDK)安装和 git.ti.com 构建 OpenCL RTOS 软件包的脚本。  您应首先查看"build_env.sh"并对安装的 PRSDK 位置进行修改。  之后、运行"./OCL_RTOS_build.sh"应该会构建 OpenCL RTOS 包。

      谢谢!

    -元

    $ cat build_env.sh
    #!/bin/sh
    
    #设置这些顶级环境变量
    export DEFAULT_PSDK_RTOS=/opt/ti/ti-processor-sdk-rtos-am57xx-evm-05.01.00.11-release
    # sudo apt-get install cmake #如果尚未安装
    # sudo apt-get install libleoki-dev #如果尚未安装
    
    
    #派生变量、检查软件包版本、 必要时修改
    导出 ARM_LLVM_DIR=${PWD}/ti-llvm/install.sysbios
    导出 x86_64:LLVM_DIR=${PWD}/ti-llvm/install.x86
    导出 TI_OCL_CGT_INSTALL=${DEFAULT_PSDK_RTOS}/ti-cgt-C6000_8.2.2
    导出 GCC_ARM_NOT_toolchain=${DEFAULT_PSDK_02_RTOS_EXPORT_20_SYSDK_REPORT_Q2$
    
    
    
    
    
    {02_OSDK_REPORT_PWM_02_RTOS_07_MOSDK_015000_MOSDK_REFOS=${02_OSDK_REFOS_02_AM_COMMENTRIGNESD_B01_REFOS_COMMENTRUPP_015_COMMENTRIGNESD_B015000_COMMENTRUTRUTRUK_REFOS=${015_COMMENTRUK_0_COMMENTRUD_REFOS_COMMENTRUESD_B01520_COMMENTRUTRUTRUTRUTRUTRUTRUTRUD_
    
    
    
    
    
    
    
    
    
    
    
    /ti-opencl/install/am57SYS_BIOS/opencl_rtos_am57xx_01_01_16_01/packages/ti/opencl
    

    $ cat llvm_rtos_build.sh
    #!/bin/bash
    
    #请按照中的步骤操作:git.ti.com/.../README.ti
    
    #1。 设置目录结构
    编号-------------------------------------------------------
    mkdir ti-llvm;cd ti-llvm
    git 克隆 git@git.ti.com:opencl/llvm.git
    cd llvm;git 检出 release_36_ti
    CD 工具;git 克隆 git@git.ti.com:OpenCL/clang.git
    CD clang;git 检出_36_ti
    CD。发行版...tid ###返回 ti-llvm 目录
    
    #2。 使用 Makefile.ti
    #-----------------进行构建
    
    2.1 Linux on x86
    ###使用系统默认的 gcc-5/g++-5
    cc="gcc-5" CXX="g++-5" CFLAGS="-m64" CXXFLAGS="-m64"\
    make -f llvm/Makefile.ti all.x86 -J4
    ###会导致 install.x86
    
    #2.3在 x86上的 Linux 上进行交叉编译(主机、在其中生成)
    ARM 上的 TI-RTOS #(目标、使用构建的是 Clang/LLVM)
    导出路径=${gcc_arm_none_toolchain
    }/bin:$path、其中使用了 Clang/lldife.v/ldif\sbios=$在
    BIOS 中导出.ldife.v/sysfs
    中导出
    

    $ cat ocl_rtos_build.sh
    #!/bin/sh
    
    CURR_DIR=${PWD}
    
    echo "设置 env vars"
    。 build_env.sh
    
    
    
    
    
    
    
    
    
    /lib/libaet.ae66 echo "Cloning and Building LLVM for RTOS "./llvm_rtos_build.sh
    
    
    /git.ti.com/opencl/ti-opencl.git echo "Working aret naming different" ln -SF ${BIOS_DIR}ti-clone BIOS-tree ln -SF ${IPC_DIR}ti-tree tetdir -p ${AET_DIR}cp -r ${PRSDK_ACL_Ati_DIR}/include ${IPC_TRIP_TRD}/lib/aetlib.l66_elf}
    
    SED S/ssh:\\/git@bitbucket.itg.ti.com:/mctools/git \\/git.ti.com\/opencl/' TTT > makmake
    build_AM57=1 build_os=SYS_BIOS;CD ${CURR_DIR}
    CD ${TI_OCL_INSTALL}/../../../examples;make build_OS=SYS_BIOS;CD ${CURR_DIR}
    
    "built package is in ti-OpenCL/amls_install/amefile/SYS_BIOS"
    
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Matt、

    此外、可从以下位置下载 DSPLIB 和 MATHLIB:

    http://www.ti.com/tool/sprc265 (C66X-DSPLIB)
    http://www.ti.com/tool/mathlib (C66X-MATHLIB)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yuan、

    感谢您提供脚本。 遗憾的是、由于无法访问 TI 内部 Git 报告、ocl_rtos_build.sh 失败:

    克隆和构建 OpenCL-RTOS
    克隆为"ti-OpenCL"……
    遥控:计数对象:9374,完成。
    远程:压缩对象:100%(4118/4118)、完成。
    远程:总共9374 (增量6554)、重用7608 (增量5010)
    接收对象:100%(9374/9374)、22.50 MIB | 1.36 MiB/s、完成。
    解析增量:100%(6554/6554)、完成。
    正在检查连接... 完成。
    mkdir -p build/am57SYS_BIOS
    mkdir -p ti-OpenCL/install/am57SYS_BIOS/OpenCL_RTOS_am57xx_01_16_01/packages/ti/OpenCL
    git 克隆--depth 1 ssh:// git@bitbucket.itg.ti.com/mctools/opencl-firmware.git
    克隆到'OpenCL-firmware'...
    SSH:无法解析主机名 bitbucket.itg.ti.com:名称或服务未知
    致命:无法从远程存储库读取。
    
    请确保您具有正确的访问权限
    、并且存储库存在。
    Makefile:133:目标'OpenCL-firmware'的配方失败
    make:***[OpenCL-firmware]错误128
    

    您能否为该问题提供修复、或者对于没有 bitbucket.itg.ti.com?访问权限的客户而言、OpenCL 不可构建

    谢谢、

    Matt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Matt、

      很抱歉这个部件。  您可以修补 ti-OpenCL/makefile 以访问公共 OpenCL-firmware:

    diff --git a/makefile b/makefile
    index 9002363.cf640d8 100644
    -- a/makefile
    ++ b/makefile
    @@-130、7 +130、7 @@ eve_submodule:
    Git 子模块更新--init
    
    OpenCL-firmware:
    - Git clone --depth 1 ssh:// git@bitbucket.itg.ti.com/mctools/opencl-firmware.git
    + Git 克隆--depth 1 git://git.ti.com/opencl/opencl-firmware.git
    
    更改:
    Git log --br漂亮=格式:"-%s%n%b"$(tag).. ;\
    

    -元

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Matt、

    我还在上一个帖子中更新了 ocl_rtos_build.sh 脚本以反映 makefile 修补程序。 如果使用更新的脚本、则无需手动修补 makefile、脚本将对其进行修补。 让我们知道情况如何。 谢谢!

    -元
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yuan、

    我们似乎越来越接近成功、但仍存在一些问题:

    make[4]:输入目录'/home/mmckee/opencl/ti-opencl/host/clocl
    make[4]:/cgnas/llvm-3.6.0-20170608-x86_64/bin/llvm-config:未找到命令
    /bin/sh:/cgnas/llvm-3.6.0-20170608-x86_64/bin/llvm-config:无此类文件或目录
    /bin/sh:/cgnas/llvm-3.6.0-20170608-x86_64/bin/llvm-config:无此类文件或目录
    /bin/sh:/cgnas/llvm-3.6.0-20170608-x86_64/bin/llvm-config:无此类文件或目录
    /bin/sh:/cgnas/llvm-3.6.0-20170608-x86_64/bin/llvm-config:无此类文件或目录
    包含在 llopencl/barerReplication.cc:25:0:
    llopencl/tailersh.h 文件中:vmtail.h:v.h:fatural 复制:vm.h 没有
    终止此类文件或目录编译。
    lvmopencl/BreakConstantGEPs.cpp:22:31:致命错误:llvm/IR/Constants.h:没有
    终止此类文件或目录编译。
    在 lvmopencl/BarrierBlock.cc:24:0:
    lvmopencl/BarrierBlock.h:24:32:致命错误:llvm/IR/BasicBlock.h:没有
    终止此类文件或目录编译。
    Makefile:93:目标'x86/BarrierTailReplication.o'的配方失败
    make[4]:***[x86/BarrierTailReplication.o]错误1
    make[4]:***正在等待未完成的作业...
    Makefile:90:目标'x86/BreakConstantGEPs.o'的配方失败
    make[4]:***[x86/BreakConstantGEPs.o]错误1
    Makefile:93:目标'x86/BarrierBlock.o'的配方失败
    make[4]:***[x86/BarrierBlock.o]错误1 llopencl/AllocaltherBlock.o'的配方失败 make[4]:***[x86/BarrierBlock.o:31或
    致命的编译:convrum.ines:31:convrum.inher.ines:
    
    Makefile:93:目标'x86/AllocasToEntry.o'的配方失败
    make[4]:***[x86/AllocasToEntry.o]错误1
    make[4]:离开目录'/home/mmckee/opencl/ti-opencl/host/clocl
    clocl/CMakeFiles\x8_clocl.dir/build.make:60:目标'clocl/x86/clocl.make2'x86_clmake'clmake'x86_clocl/snese'clmake'x86_clocl.file2'x86_clmake'clmake'x86_clocl.inese'x86_clmake'x86_clocl.inese'x86_clmake'x86_clocl.inese'x86_clmake'x86_clmake'xe'xe'xe':clocl.3:clmakedinese'x86_clocl
    
    
    
    
    /home/mmckee/opencl/ti-opencl/build/am57SYS_BIOS /home/mmckee/opencl/ti-opencl/build/am57SYS_BIOS
    目标'All'的配方失败
    make[1]:***[All]错误2
    make[1]:离开目录'/home/mmckee/opencl/ti-opencl/build/am57SYS_BIOS
    makefile:95:目标'install'的配方失败
    make:***[install]错误2 

    此错误源于未定义 x86_64:LLVM_DIR。 我向 build_env.sh 添加了以下内容:

    导出 x86_64:LLVM_DIR=${PWD}/ti-llvm/build.sysbios/build.native
    

    构建过程越来越深入、但遇到了其他不太容易解决的问题:

    Git 克隆--depth 1 git://git.ti.com/opencl/opencl-firmware.git
    克隆到'OpenCL-firmware'...
    遥控:计数对象:9、完成。
    远程:压缩对象:100%(9/9)、完成。
    远程:总共9 (增量2)、重复使用0 (增量0)
    接收对象:100%(9/9)、999.00 KiB | 897.00 KiB/s、完成。
    解析增量:100%(2/2)、完成。
    正在检查连接... 完成。
    cd build/am57SYS_BIOS && cmake -DARM_LLVM_DIR=/home/mmckee/opencl/ti-llvm/install.sysbios -DX86_LLVM_DIR=/home/mmckee/opencl/ti-llvm/build.sysbios/build.native -DCMAIB_toolchain_file./host/cmake/CMakeBiosARMToolChain.txt -DBUILD_OS=SYS_BIOS -DRTOS_INSTALL_DIR=/home/mmckee/opencl
    /home/mmckee/opencl/ti-sysbios-tree/packages
    
    
    
    
    /home/mmckee/opencl/ti-llvm/install.sysbios/bin -LLDC_INSTALL_PATH=CL -DBUILD_ROMAD=1.57-/../host -/home/mmckee/opencl/ti-llvm/install.sysbios -目标安装路径为/home/mmckee/ti_opencl/xdctools_3_50_07_20_core/packages -LDVM=1.57---目标安装路径为1.57--目标安装路径为1.57-/usr/local -目标为1.57-目标-
    /home/mmckee/opencl/ti-llvm/install.sysbios/lib -目标为1.557--目标安装路径为-目标为1.557-目标为1.57-目标为1.557---目标为1.57-目标为目标为1.557-目标为目标为目标为1.57-
    LLVM Include_DIR /home/mmckee/opencl/ti-llvm/install.sysbios/include
    -- LLVM CXX 标志:-i/home/mmckee /OpenCL/ti-llvm/install.sysbios/include -fpic -fvisibility-inlines -hall-Wall -W -wno-unuse-parameter -wwrite-string -wno-mission-field-initiatilizers -tid-v-v-dc-lvm-flags-v/dlv_zh-flags-ld/dlv-dlv-dlv-dlv-dlv-dlv-dlv-dlv_core-comment_zh-dlib_infot-rand_dom-flages-dl-rand-flages-dl-dlv-rand-dlv-rand-dlv-dlv-dlv-dlv-dlv-dlv-dlv-dlv-dlib_zh-dlib_cl-dlib_dlib-dl-
    
    -lLLVMLTO -lLLVMObjCARCOpts -lLLVMLinker -lLLVMBitter -lLLVMMIRReader -lLLVMAsmParser -lLLVMXCoreDisassembler -lLLVMXCoreCodeGen -lLLVMCoreCodecr -lLLVMXVMSVM DCMPers-lLLVMS600-LLVMSLLLVMSVM 组件数-lLLMLVMSVM 组件数-lLLMLVMSVM 组件数-LLVMSVM 组件数-lLLMLVMSVM 组件数-LLVMSVM 组件数-LLMLVMS600SVM 组件数-LLMLVMSVM 组件数-LVMSVM 组件数-LLMLVMSVM 组件数-LLMLVMSVM 组件数-LLMLVMSVM 组件数-LLMLLMZVM 组件数-LVMSVM 组件数-LVMSVM 组件数-LVMSVM 组件数-LLMLVMSVM 组件数-LVMS600SVM 组件数 -lLLVMMipsDesc -lLLVMMipsInfo -lLLVMMipsAsmPrinter -lLLVMHexagonDisassembler -lLLVMHexagonCodeGen -lLLVMHexagonDesc -lLLVMC6964LVMCppInfo BackCodeGen -lLLVMCLLM64LLMVMSVM 组件生成器-lLM64LLMLLMVMSVM 组件-LLVMSVM 组件数-LLM64LLM64LVMLLMVM 组件数-LLM64LVMLLMVM 组件数-LLM64LVMLVMLVMSVM -lLLVMAnalysis -lLLVMTarget -lLLVMMC -lLLVMCore -lLLVMSupport
    --找到 LLVM:/home/mmckee/opencl/ti-llvm/install.sysbios/include
    -- Build OS is SYS BIOS
    --配置完成
    --生成完成
    CMake 警告:
    手动指定的变量未被项目使用:
    
    x86_64:LLVM_DIR
    
    
    --生成文件已写入:/home/mmckee/opencl/ti-opencl/build/am57SYS_BIOS
    make[1]:进入目录'/home/mmckee/opencl/ti-opencl/build/am57SYS_BIOS
    make[2]:进入目录'/home/mmckee/opencl/ti-opencl/build/am57SYS_BIOS
    make[3]:进入目录'/home/mmckee/opencl/ti-opencl/build/am57SYS_BIOS
    
    
    
    
    /home/mmckee/opencl/ti-opencl/host/clocl 扫描目标 x86_64:clocl make[3]的依赖项:离开目录'/home/mmckee/opencl/ti-opencl/build/am57SYS_BIOS make[3]:进入目录'/home/mmckee/opencl/ti-opencl/build/am57SYS_BIOS '1%]正在生成 x86_64
    :llehl:llevmmc
    文件:lle_clrencl:从目录输入"vmh.l.cludpers.l.cl_clrulese:l.h:vm4: Extra‘;’[-Wpedanty]
    
    
    
    
    
    
    ‘;^ lvmopencl/DebugHelpers .cc:210:2:警告:Extra‘;’[-Wpedanty]};^
    
    ^ in file included from lvmopencl/Kernel.cc:33:0:lvmopencl/DebugHelpers .h:45:2:warning:' in file included in lvmopencl/Kernelination.cc:33:0:llvmopencl/DebugHelpers .h:'-30]
    /home/mmckee/opencl/ti-llvm/llvm/include/llvm/IR/IntrinsicInst.h
    从 lvmopencl/TargetAddressSpaces.cc:31:
    /home/mmckee/opencl/ti-llvm/llvm/include/llvm/IR/Intrinsics.h:40:34:致命错误:llvm/IR/Intrinsics.gen:没有
    终止此类文件或目录编译。
    Makefile:93:目标'x86/TargetAddressSpaces.o'的配方失败
    make[4]:***[x86/TargetAddressSpaces.o]错误1
    make[4]:***正在等待未完成的作业...
    在 lvmopencl/paradelRegion.cc:40:0:
    lvmopencl/DebugHelpers .h:45:2:警告:Extra‘;’[-Wpedanty]
    };
    ^
    make[4]:leaving directory '/home/mmckee/opencl/ti-opencl/host/clocl clocl/cmakefiles/x86_clocl.make:'x86_clocl.make2'x86_makedinese'x86_cloedire:[x86_clocl/sclocl_makedese:cedinese:cedinese:cese:cese:ccloese'x86_clocl_clo:cese'x86_clinese'x86_clo:cedire'x86_clo:cedineso:cedinese:3]_clo:clo:clo:clo:cese'x86_clo:cloese:cl
    
    
    
    
    
    /home/mmckee/opencl/ti-opencl/build/am57SYS_BIOS /home/mmckee/opencl/ti-opencl/build/am57SYS_BIOS
    目标'All'的配方失败
    make[1]:***[All]错误2
    make[1]:离开目录'/home/mmckee/opencl/ti-opencl/build/am57SYS_BIOS
    makefile:95:目标'install'的配方失败
    make:***[install]错误2 

    如果您对如何进行操作有任何建议、我将不胜感激。

    谢谢、

    Matt Mckee

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Matt、

    感谢您的报告。 是的、我忘记了在 clocl_x86_64编译的脚本中构建 llvm x86_64。 我已更新上一帖子中的脚本、以包含以下内容:

    +export x86_64:LLVM_DIR=${PWD}/ti-llvm/install.x86

    +#2.1 Linux on x86
    ####使用系统默认 gcc-5/g++-5
    +CC="gcc-5" CXX="g++-5" CFLAGS="-m64" CXXFLAGS="-m64"\
    + make -f llvm/Makefile.ti all.x86 -J4
    ####结果为 install.x86

    请再次尝试更新的脚本。 现在、这将需要更长的时间(我的机器上为~ 1小时)、其中大部分时间用于构建 llvm x86_64。 如果尚未安装,还需要在 Linux 计算机上安装 g++-5。 让我们知道情况如何。 谢谢!

    -元
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我通过这些更改以及特定于我的设置的一些小调整、成功地完整构建了 OpenCL。

    感谢您的帮助!

    -Matt Mckee
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Matt、

       感谢您确认结果!  我们将尝试在下一个 PSDK RTOS 5.2版本中包含 OpenCL RTOS 软件包、因此我们不需要额外的努力。

    -元