Skip to content
Snippets Groups Projects
Commit 63092072 authored by Jean-Matthieu Etancelin's avatar Jean-Matthieu Etancelin
Browse files

Update single precision patch. Fix OpenCL default platform and device id for...

Update single precision patch. Fix OpenCL default platform and device id for building in non-OpenCL environment.
parent 51806d37
No related branches found
No related tags found
No related merge requests found
diff --git parmepy/constants.py parmepy/constants.py
index c92cc42..8d85877 100644
index 3672059..3022c21 100644
--- parmepy/constants.py
+++ parmepy/constants.py
@@ -18,13 +18,13 @@ else:
......@@ -72,9 +72,6 @@ index ab5b440..d56112e 100755
t0 = MPI_Wtime()
call advec_step(dt,vx,vy,vz,scal)
diff --git parmepy/operator/tests/test_velocity_correction.py parmepy/operator/tests/test_velocity_correction.py
old mode 100755
new mode 100644
diff --git setup.py.in setup.py.in
index f771350..22fd086 100644
--- setup.py.in
......
......@@ -18,14 +18,18 @@ def size_human(s):
def get_defaults(device_type=cl.device_type.GPU):
"""Get OpenCL default indices (GPU with largest global memory)"""
default_platform, default_device = None, None
default_platform, default_device = 0, 0
default_device_mem_size = 0
for i, plt in enumerate(cl.get_platforms()):
for j, dev in enumerate(plt.get_devices()):
if dev.type == device_type and \
default_device_mem_size < dev.global_mem_size:
default_device = j
default_platform = i
try:
for i, plt in enumerate(cl.get_platforms()):
for j, dev in enumerate(plt.get_devices()):
if dev.type == device_type and \
default_device_mem_size < dev.global_mem_size:
default_device = j
default_platform = i
except cl.LogicError:
print (" -- Warning : You are running for a non-OpenCL place " +
"such as a frontend. Using a default id")
return default_platform, default_device
......@@ -59,65 +63,71 @@ def explore(device_type=cl.device_type.GPU):
]
p_str_max = []
d_str_max = {}
for i, plt in enumerate(platforms):
p_str_max.append(0)
devices = plt.get_devices()
all_devices += devices
p_data[plt] = []
for plt_info in platforms_info:
p_data[plt].append(eval("plt." + plt_info))
if len(p_data[plt][-1]) > p_str_max[i]:
p_str_max[i] = len(p_data[plt][-1])
for j, dev in enumerate(devices):
d_str_max[dev] = 0
d_data[dev] = []
for dev_info in devices_info:
d_data[dev].append(
dev_info[1](eval("dev." + dev_info[0])))
if dev_info != devices_info[-1] and \
len(str(d_data[dev][-1])) > d_str_max[dev]:
d_str_max[dev] = len(str(d_data[dev][-1]))
# platform index
d_data[dev].append(i)
default_platform, default_device = get_defaults(device_type=device_type)
out = ""
try:
for i, plt in enumerate(platforms):
p_str_max.append(0)
devices = plt.get_devices()
all_devices += devices
p_data[plt] = []
for plt_info in platforms_info:
p_data[plt].append(eval("plt." + plt_info))
if len(p_data[plt][-1]) > p_str_max[i]:
p_str_max[i] = len(p_data[plt][-1])
for j, dev in enumerate(devices):
d_str_max[dev] = 0
d_data[dev] = []
for dev_info in devices_info:
d_data[dev].append(
dev_info[1](eval("dev." + dev_info[0])))
if dev_info != devices_info[-1] and \
len(str(d_data[dev][-1])) > d_str_max[dev]:
d_str_max[dev] = len(str(d_data[dev][-1]))
# platform index
d_data[dev].append(i)
default_platform, default_device = \
get_defaults(device_type=device_type)
print "Platforms informations:\n Id |",
for i, plt in enumerate(platforms):
print i, ' ' * (p_str_max[i] - len(str(i))), '|',
for i, plt_info in enumerate(platforms_info):
print "\n ", plt_info, "|",
for i_p, plt in enumerate(platforms):
print p_data[plt][i],
print ' ' * (p_str_max[i_p] - len(p_data[plt][i])), '|',
print "\nDevices informations: \n Default device |",
for i, dev in enumerate(all_devices):
if i == default_device and d_data[dev][-1] == default_platform:
print "DEFAULT", ' ' * (d_str_max[dev] - 7), '|',
else:
print ' ' * (d_str_max[dev]), ' |',
print "\n Platform Id |",
for i, dev in enumerate(all_devices):
print d_data[dev][-1],
print ' ' * (d_str_max[dev] - len(str(d_data[dev][-1]))), '|',
print "\n Id |",
for i, dev in enumerate(all_devices):
print i, ' ' * (d_str_max[dev] - len(str(i))), '|',
out += "Platforms informations:\n Id |"
for i, plt in enumerate(platforms):
out += str(i) + ' ' * (p_str_max[i] - len(str(i))) + ' |'
for i, plt_info in enumerate(platforms_info):
out += "\n " + plt_info + " |"
for i_p, plt in enumerate(platforms):
out += p_data[plt][i]
out += ' ' * (p_str_max[i_p] - len(p_data[plt][i])) + ' |'
out += "\nDevices informations: \n Default device |"
for i, dev in enumerate(all_devices):
if i == default_device and d_data[dev][-1] == default_platform:
out += "DEFAULT" + ' ' * (d_str_max[dev] - 7) + ' |'
else:
out += ' ' * (d_str_max[dev]) + ' |'
out += "\n Platform Id |"
for i, dev in enumerate(all_devices):
out += str(d_data[dev][-1])
out += ' ' * (d_str_max[dev] - len(str(d_data[dev][-1]))) + ' |'
out += "\n Id |"
for i, dev in enumerate(all_devices):
out += str(i) + ' ' * (d_str_max[dev] - len(str(i))) + ' |'
for i, dev_info in enumerate(devices_info[:-1]):
print "\n ", dev_info[0], "|",
for i_d, dev in enumerate(all_devices):
print d_data[dev][i],
print ' ' * (d_str_max[dev] - len(str(d_data[dev][i]))), '|',
print ""
for i, dev_info in enumerate(devices_info[:-1]):
out += "\n " + dev_info[0] + " |"
for i_d, dev in enumerate(all_devices):
out += str(d_data[dev][i])
out += ' ' * (d_str_max[dev] - len(str(d_data[dev][i]))) + ' |'
out += "\n"
print (out)
except cl.LogicError:
pass
if __name__ == "__main__":
import sys
if "EXPLORE" in sys.argv:
if "CPU" in sys.argv:
print explore(device_type=cl.device_type.CPU)
explore(device_type=cl.device_type.CPU)
else:
print explore()
explore()
else:
if "CPU" in sys.argv:
p_id, d_id = get_defaults(device_type=cl.device_type.CPU)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment