inducer / inducer/loopy

Unable to map ``"bool", "complex128"`` for ``CudaTarget``

Open
#658 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
636
Forks
81
Avg merge
1d 19h
Merged PRs (30d)
7

Description

Here's the MWE

```python
import loopy as lp
import numpy as np
knl = lp.make_kernel(
domains = "{ [_0]: 0<=_0<10 }",
instructions = "out[_0] = 2*a[_0]",
kernel_data = [lp.GlobalArg("out", shape=lp.auto, dtype="bool"),
lp.GlobalArg("a", shape=lp.auto, dtype="bool")],
target=lp.CudaTarget(),
lang_version=(2018, 2))
#knl = lp.make_kernel(
# domains = "{ [_0]: 0<=_0<10 }",
# instructions = "out[_0] = 2*a[_0]",
# kernel_data = [lp.GlobalArg("out", shape=lp.auto, dtype="complex128"),
# lp.GlobalArg("a", shape=lp.auto, dtype="complex128")],
# target=lp.CudaTarget(),
# lang_version=(2018, 2))
print(knl)
lp.generate_code_v2(knl).device_code()
```
Generated kernel

```console
---------------------------------------------------------------------------
KERNEL: loopy_kernel
---------------------------------------------------------------------------
ARGUMENTS:
out: type: np:dtype('bool'), shape: (10), dim_tags: (N0:stride:1) out aspace: global
a: type: np:dtype('bool'), shape: (10), dim_tags: (N0:stride:1) in aspace: global
---------------------------------------------------------------------------
DOMAINS:
{ [_0] : 0 <= _0 <= 9 }
---------------------------------------------------------------------------
INAME TAGS:
_0: None
---------------------------------------------------------------------------
INSTRUCTIONS:
for _0
out[_0] = 2*a[_0] {id=insn}
end _0
---------------------------------------------------------------------------
```
Here's the trace

```console
Traceback (most recent call last):
File "/home/mitak2/env/lib/python3.10/site-packages/loopy/target/c/compyte/dtypes.py", line 104, in dtype_to_ctype
return self.dtype_to_name[dtype]
KeyError: dtype('bool')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/mitak2/cudagraph_pytato/loopy_bool.py", line 11, in
knl_string = lp.generate_code_v2(knl).device_code()
File "/home/mitak2/env/lib/python3.10/site-packages/loopy/codegen/__init__.py", line 625, in generate_code_v2
cgr = generate_code_for_a_single_kernel(program[func_id],
File "/home/mitak2/env/lib/python3.10/site-packages/loopy/codegen/__init__.py", line 413, in generate_code_for_a_single_kernel
codegen_result = generate_host_or_device_program(
File "/home/mitak2/env/lib/python3.10/site-packages/loopy/codegen/result.py", line 319, in generate_host_or_device_program
codegen_result = build_loop_nest(codegen_state, schedule_index)
File "/home/mitak2/env/lib/python3.10/site-packages/loopy/codegen/control.py", line 197, in build_loop_nest
inner = generate_code_for_sched_index(codegen_state, schedule_index)
File "/home/mitak2/env/lib/python3.10/site-packages/loopy/codegen/control.py", line 53, in generate_code_for_sched_index
codegen_result = generate_host_or_device_program(
File "/home/mitak2/env/lib/python3.10/site-packages/loopy/codegen/result.py", line 332, in generate_host_or_device_program
fdecl_ast = ast_builder.get_function_declaration(
File "/home/mitak2/env/lib/python3.10/site-packages/loopy/target/cuda.py", line 321, in get_function_declaration
fdecl = super().get_function_declaration(
File "/home/mitak2/env/lib/python3.10/site-packages/loopy/target/c/__init__.py", line 872, in get_function_declaration
[self.arg_to_cgen_declarator(
File "/home/mitak2/env/lib/python3.10/site-packages/loopy/target/c/__init__.py", line 872, in
[self.arg_to_cgen_declarator(
File "/home/mitak2/env/lib/python3.10/site-packages/loopy/target/c/__init__.py", line 1086, in arg_to_cgen_declarator
return self.get_array_arg_declarator(var_descr, is_written)
File "/home/mitak2/env/lib/python3.10/site-packages/loopy/target/cuda.py", line 438, in get_array_arg_declarator
self.get_array_base_declarator(arg), arg.address_space))
File "/home/mitak2/env/lib/python3.10/site-packages/loopy/target/cuda.py", line 431, in get_array_base_declarator
return POD(self, dtype, ary.name)
File "/home/mitak2/env/lib/python3.10/site-packages/loopy/target/c/__init__.py", line 274, in __init__
self.ctype = ast_builder.target.dtype_to_typename(dtype)
File "/home/mitak2/env/lib/python3.10/site-packages/loopy/target/c/__init__.py", line 459, in dtype_to_typename
return self.get_dtype_registry().dtype_to_ctype(dtype)
File "/home/mitak2/env/lib/python3.10/site-packages/loopy/target/c/compyte/dtypes.py", line 106, in dtype_to_ctype
raise ValueError("unable to map dtype '%s'" % dtype)
ValueError: unable to map dtype 'bool'
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.