The procedure entry point SetThreadDescription could not be located

I’m getting the following error when running a SYCL program on a Windows 10 IOT machine. I’m able to run this program on a different Windows 10 machine (not IOT) without any problems. To be sure, I recompiled the code on the IOT machine itself, but the error persists. How can I fix this?

The procedure entry point SetThreadDescription could not be located in the dynamic link library D:\Program Files\Codeplay\ComputeCpp\lib\ComputeCpp.dll

I checked; this .dll file exists on both machines.

Hi,
We don’t officially support Windows 10 IOT but I’ll try to help. What hardware is this running on?
Can you outline the steps for what code you are using, how you are compiling your code and how you are attempting to execute it?
Thanks.

It’s running on a Quanmax ECX-KLU1 board, which has an Intel Core i7-7600U processor (Kaby Lake) with an integrated Intel HD Graphics 620 GPU.

Output from computecpp_info.exe:
********************************************************************************

ComputeCpp Info (CE 2.0.0)

SYCL 1.2.1 revision 3

********************************************************************************


Device Info:

Discovered 2 devices matching:
  platform    : <any>
  device type : <any>

--------------------------------------------------------------------------------
Device 0:

  Device is supported                     : UNTESTED - Device not tested on this OS
  Bitcode targets                         : spir64 spirv64
  CL_DEVICE_NAME                          : Intel(R) HD Graphics 620
  CL_DEVICE_VENDOR                        : Intel(R) Corporation
  CL_DRIVER_VERSION                       : 22.20.16.4815
  CL_DEVICE_TYPE                          : CL_DEVICE_TYPE_GPU
--------------------------------------------------------------------------------
Device 1:

  Device is supported                     : UNTESTED - Device running untested driver
  Bitcode targets                         : spir64 spirv64
  CL_DEVICE_NAME                          : Intel(R) Core(TM) i7-7600U CPU @ 2.80GHz
  CL_DEVICE_VENDOR                        : Intel(R) Corporation
  CL_DRIVER_VERSION                       : 7.5.0.550
  CL_DEVICE_TYPE                          : CL_DEVICE_TYPE_CPU

If you encounter problems when using any of these OpenCL devices, please consult
this website for known issues:
https://computecpp.codeplay.com/releases/v2.0.0/platform-support-notes

********************************************************************************

I’m using the CMake module FindComputeCpp.cmake. My CMakeLists.txt:

cmake_minimum_required(VERSION 3.11 FATAL_ERROR)

include(ExternalProject)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_SUPPRESS_REGENERATION true) # Suppress generation of ZERO_CHECK
set(ComputeCpp_DIR “C:/Program Files/Codeplay/ComputeCpp” CACHE STRING “Directory where ComputeCpp is installed. Not the ComputeCpp SDK.” FORCE)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_BINARY_DIR}/…/…/Git/3rdParty/computecpp-sdk-2.0.0/cmake/Modules)

project(sycltest)

include(FindComputeCpp)
include_directories(${ComputeCpp_DIR}/include)

externalproject_add(OpenCL-Headers GIT_REPOSITORY GitHub - KhronosGroup/OpenCL-Headers: Khronos OpenCL-Headers GIT_TAG v2020.03.13 CONFIGURE_COMMAND “” BUILD_COMMAND “” INSTALL_COMMAND “”)
externalproject_get_property(OpenCL-Headers SOURCE_DIR)
set(srcdir_OpenCL-Headers ${SOURCE_DIR})
include_directories(${srcdir_OpenCL-Headers})

add_executable(sycltest main.cpp)
add_sycl_to_target(sycltest ${CMAKE_BINARY_DIR} main.cpp)

add_dependencies(sycltest OpenCL-Headers)

target_link_libraries(sycltest debug ${ComputeCpp_DIR}/lib/ComputeCpp_d.lib)
target_link_libraries(sycltest optimized ${ComputeCpp_DIR}/lib/ComputeCpp.lib)

I generate an .sln file with CMake and then I compile using the msbuild command. MSVC 2019. I don’t use the Visual Studio GUI.

If you need additional info, feel free to ask. Thanks for your help!

We use a few Win32 API functions that are not support in Windows IoT unfortunately. We may support that in the future but it won’t work for this platform at the moment. It’s not a problem with your hardware, but the platform you’re using.

Ok. Thanks! Seems like I have to find a different solution.

Could you just let us know which version of Windows IoT you’re using? Is that IoT Core or IoT enterprise?

I’m using Windows 10 IoT Enterprise 2016 LTSB.

There are a number of win32 functions that are required by ComputeCpp that are not present on Windows IOT, additionally it does not allow functions to be dynamically loaded so unfortunately we can’t easily support this version of Windows. So at this time it won’t be possible for you to use ComputeCpp with Windows 10 IOT.