def test_cl_read(): """Test if the pysph.solcer.cl_utils.cl_read works.""" # Create a test file. fd, name = tempfile.mkstemp(suffix='.cl') code = """ REAL foo = 1.0; """ f = open(name, 'w') f.write(code) f.close() os.close(fd) # Test single precision src = clu.cl_read(name, precision='single') expect = """#define F f #define REAL float #define REAL2 float2 #define REAL3 float3 #define REAL4 float4 #define REAL8 float8 """ s_lines = src.split() for idx, line in enumerate(expect.split()): assert line == s_lines[idx] # Test double precision src = clu.cl_read(name, precision='double') expect = """#pragma OPENCL EXTENSION cl_khr_fp64 : enable #define F #define REAL double #define REAL2 double2 #define REAL3 double3 #define REAL4 double4 #define REAL8 double8 """ s_lines = src.split() for idx, line in enumerate(expect.split()): assert line == s_lines[idx] # cleanup. os.remove(name)
def _setup_program(self): """ Read the OpenCL kernel source file and build the program """ src_file = get_pysph_root() + '/base/linked_list.cl' src = cl_read(src_file, precision=self.cl_precision) self.prog = cl.Program(self.context, src).build()