Skip to content

Commit b16f79b

Browse files
authored
Merge pull request #151 from fixstars/remove_type_pyx
Move device_typeof_size to utility
2 parents 5eb9905 + 3d48e3f commit b16f79b

File tree

7 files changed

+21
-31
lines changed

7 files changed

+21
-31
lines changed

clpy/backend/function.pyx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ cimport clpy.backend.opencl.api
1414
cimport clpy.backend.opencl.utility
1515
import clpy.backend.opencl.env
1616
cimport clpy.backend.opencl.env
17-
import clpy.backend.opencl.types
1817
from clpy.backend.opencl.types cimport cl_event
1918
import clpy.core
2019

@@ -87,10 +86,10 @@ cdef void _launch(clpy.backend.opencl.types.cl_kernel kernel, global_work_size,
8786
size = a.get_size()
8887
else:
8988
if isinstance(a, clpy.core.core.Size_t):
90-
if clpy.backend.opencl.types.device_typeof_size \
89+
if clpy.backend.opencl.utility.device_typeof_size \
9190
== 'uint':
9291
a = numpy.uint32(a.val)
93-
elif clpy.backend.opencl.types.device_typeof_size \
92+
elif clpy.backend.opencl.utility.device_typeof_size \
9493
== 'ulong':
9594
a = numpy.uint64(a.val)
9695
else:

clpy/backend/opencl/clblast/clblast.pyx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
cimport clpy.backend.opencl.api as api
22
import clpy.backend.opencl.env
33
cimport clpy.backend.opencl.env
4-
import clpy.backend.opencl.types
5-
cimport clpy.backend.opencl.types
64
from clpy.backend.opencl.types cimport cl_command_queue
75
from clpy.backend.opencl.types cimport cl_event
86
from clpy.backend.opencl.types cimport cl_mem

clpy/backend/opencl/types.pyx

Lines changed: 0 additions & 21 deletions
This file was deleted.

clpy/backend/opencl/utility.pyx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import time
55

66
cimport api
77
cimport env
8+
import cython
89
from cpython cimport array
910
from exceptions cimport check_status
1011
from libc.stdlib cimport malloc
@@ -138,3 +139,19 @@ cdef RunNDRangeKernel(
138139
event=&event[0]
139140
)
140141
api.WaitForEvents(1, &event[0])
142+
143+
cdef __device_typeof_size():
144+
host_size_t_bits = cython.sizeof(Py_ssize_t)*8
145+
device_address_bits = GetDeviceAddressBits(
146+
env.get_primary_device())
147+
if host_size_t_bits != device_address_bits:
148+
raise "Host's size_t is different from device's size_t."
149+
150+
if device_address_bits == 32:
151+
return 'uint'
152+
elif device_address_bits == 64:
153+
return 'ulong'
154+
else:
155+
raise "There is no type of size_t."
156+
157+
device_typeof_size = __device_typeof_size()

clpy/core/elementwise.pxi

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ from clpy.backend cimport device
1010
from clpy.backend cimport function
1111

1212
cimport clpy.backend.opencl.api
13-
import clpy.backend.opencl.types
1413
cimport clpy.backend.opencl.utility
1514

1615
cpdef _get_simple_elementwise_kernel(
@@ -306,7 +305,7 @@ cdef class ParameterInfo:
306305
pass
307306
elif t == 'kernel_arg_size_t':
308307
self.dtype = numpy.intp
309-
self.ctype = clpy.backend.opencl.types.device_typeof_size
308+
self.ctype = clpy.backend.opencl.utility.device_typeof_size
310309
elif len(t) == 1:
311310
self.ctype = t
312311
else:

clpy/core/reduction.pxi

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import numpy
77
from clpy import util
88

99
cimport clpy.backend.opencl.api
10-
import clpy.backend.opencl.types
1110
cimport clpy.backend.opencl.utility
1211

1312

@@ -89,7 +88,7 @@ cpdef _get_simple_reduction_kernel(
8988
output_expr=output_expr,
9089
output_store=output_store,
9190
preamble=preamble,
92-
typeof_size=clpy.backend.opencl.types.device_typeof_size,
91+
typeof_size=clpy.backend.opencl.utility.device_typeof_size,
9392
clpy_variables_declaration=clpy_variables_declaration)
9493
module = compile_with_cache(module_code, options)
9594
return module.get_function(name)

clpy_setup_build.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,6 @@ def launch_headercvt():
107107
# 'clpy.backend.runtime',
108108
'clpy.backend.opencl.api',
109109
'clpy.backend.opencl.env',
110-
'clpy.backend.opencl.types',
111110
'clpy.backend.opencl.utility',
112111
'clpy.backend.opencl.exceptions',
113112
'clpy.backend.opencl.clblast.clblast',

0 commit comments

Comments
 (0)