I am trying to use pyopencl to implement my kernel function on python, but I get an error when I build the OpenCL program as

"LLVM ERROR: Do not know how to split this operator's operand!".

I provide a python script below.

import os
import itertools
import pyopencl as cl

# input file path
Example_ClFileName = 'Example.cl'

# set the environment to get the compiler output
os.environ['PYOPENCL_COMPILER_OUTPUT'] = '1'

# get all available platforms
platforms = cl.get_platforms()

# get all devices of given type
devices = list( itertools.chain.from_iterable( [ platform.get_devices( cl.device_type.CPU ) for platform in platforms ] ) )

# construct context
context = cl.Context( devices = devices )

# read the OpenCL source file as a string
with open( Example_ClFileName, 'r' ) as fileObj:
    programStr = ''.join( fileObj.readlines() )
    
# build the opencl source file
program = cl.Program( context, programStr ).build( options = [] ) ## The error happened this line!

and the OpenCL script here.

__kernel void scaleUpElement( __global const float8* inData )
{
    float8 nextRow_m1 = 0.625f * convert_float8( inData[1] );
    printf( "nextRow_m1 = %f\n", nextRow_m1 );
}

I run these scripts on 2 devices which are 12th Gen Intel(R) Core(TM) i9-12900KF and 6th Gen Intel(R) Core(TM) i7-6700K.

As a result, I can build on 6th Gen Intel(R) Core(TM) i7-6700K, but I can't build on 12th Gen Intel(R) Core(TM) i9-12900KF and get the above error.

Is there anyway to run these scripts on i9-12900KF? and Why it works on i7-6700K but does not work on i9-12900KF?

0

There are 0 best solutions below