mirror of https://github.com/Nonannet/copapy.git
Renamed classes and ops from Write to Store and Read to Load
This commit is contained in:
parent
df5b4c19f1
commit
884fc3affd
|
|
@ -1,5 +1,5 @@
|
|||
import pkgutil
|
||||
from typing import Any, Sequence, TypeVar, overload, TypeAlias, Generic, cast, Callable
|
||||
from typing import Any, Sequence, TypeVar, overload, TypeAlias, Generic, Callable
|
||||
from ._stencils import stencil_database, detect_process_arch
|
||||
import copapy as cp
|
||||
from ._helper_types import TNum
|
||||
|
|
@ -360,7 +360,7 @@ class CPConstant(Node):
|
|||
return self.node_hash
|
||||
|
||||
|
||||
class Write(Node):
|
||||
class Store(Node):
|
||||
def __init__(self, input: value[Any] | Net | int | float):
|
||||
if isinstance(input, value):
|
||||
net = input.net
|
||||
|
|
@ -370,7 +370,7 @@ class Write(Node):
|
|||
node = CPConstant(input)
|
||||
net = Net(node.dtype, node)
|
||||
|
||||
self.name = 'write_' + transl_type(net.dtype)
|
||||
self.name = 'store_' + transl_type(net.dtype)
|
||||
self.args = (net,)
|
||||
self.node_hash = hash(self.name) ^ hash(net.source.node_hash)
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from typing import Generator, Iterable, Any
|
|||
from . import _binwrite as binw
|
||||
from ._stencils import stencil_database, patch_entry
|
||||
from collections import defaultdict, deque
|
||||
from ._basic_types import Net, Node, Write, CPConstant, Op, transl_type
|
||||
from ._basic_types import Net, Node, Store, CPConstant, Op, transl_type
|
||||
|
||||
|
||||
def stable_toposort(edges: Iterable[tuple[Node, Node]]) -> list[Node]:
|
||||
|
|
@ -132,7 +132,7 @@ def get_const_nets(nodes: list[Node]) -> list[Net]:
|
|||
return [net_lookup[node] for node in nodes if isinstance(node, CPConstant)]
|
||||
|
||||
|
||||
def add_read_ops(node_list: list[Node]) -> Generator[tuple[Net | None, Node], None, None]:
|
||||
def add_load_ops(node_list: list[Node]) -> Generator[tuple[Net | None, Node], None, None]:
|
||||
"""Add read node before each op where arguments are not already positioned
|
||||
correctly in the registers
|
||||
|
||||
|
|
@ -156,7 +156,7 @@ def add_read_ops(node_list: list[Node]) -> Generator[tuple[Net | None, Node], No
|
|||
#if net in registers:
|
||||
# print('x swap registers')
|
||||
type_list = ['int' if r is None else transl_type(r.dtype) for r in registers]
|
||||
new_node = Op(f"read_{transl_type(net.dtype)}_reg{i}_" + '_'.join(type_list), [])
|
||||
new_node = Op(f"load_{transl_type(net.dtype)}_reg{i}_" + '_'.join(type_list), [])
|
||||
yield net, new_node
|
||||
registers[i] = net
|
||||
|
||||
|
|
@ -170,7 +170,7 @@ def add_read_ops(node_list: list[Node]) -> Generator[tuple[Net | None, Node], No
|
|||
yield None, node
|
||||
|
||||
|
||||
def add_write_ops(net_node_list: list[tuple[Net | None, Node]], const_nets: list[Net]) -> Generator[tuple[Net | None, Node], None, None]:
|
||||
def add_store_ops(net_node_list: list[tuple[Net | None, Node]], const_nets: list[Net]) -> Generator[tuple[Net | None, Node], None, None]:
|
||||
"""Add write operation for each new defined net if a read operation is later followed
|
||||
|
||||
Returns:
|
||||
|
|
@ -181,19 +181,19 @@ def add_write_ops(net_node_list: list[tuple[Net | None, Node]], const_nets: list
|
|||
# Initialize set of nets with constants
|
||||
stored_nets = set(const_nets)
|
||||
|
||||
#assert all(node.name.startswith('read_') for net, node in net_node_list if net)
|
||||
#assert all(node.name.startswith('load_') for net, node in net_node_list if net)
|
||||
read_back_nets = {
|
||||
net for net, node in net_node_list
|
||||
if net and node.name.startswith('read_')}
|
||||
if net and node.name.startswith('load_')}
|
||||
|
||||
registers: list[Net | None] = [None, None]
|
||||
|
||||
for net, node in net_node_list:
|
||||
if isinstance(node, Write):
|
||||
if isinstance(node, Store):
|
||||
assert len(registers) == 2
|
||||
type_list = [transl_type(r.dtype) if r else 'int' for r in registers]
|
||||
yield node.args[0], Op(f"write_{type_list[0]}_reg0_" + '_'.join(type_list), node.args)
|
||||
elif node.name.startswith('read_'):
|
||||
yield node.args[0], Op(f"store_{type_list[0]}_reg0_" + '_'.join(type_list), node.args)
|
||||
elif node.name.startswith('load_'):
|
||||
yield net, node
|
||||
else:
|
||||
yield None, node
|
||||
|
|
@ -207,7 +207,7 @@ def add_write_ops(net_node_list: list[tuple[Net | None, Node]], const_nets: list
|
|||
|
||||
if net in read_back_nets and net not in stored_nets:
|
||||
type_list = [transl_type(r.dtype) if r else 'int' for r in registers]
|
||||
yield net, Op(f"write_{type_list[0]}_reg0_" + '_'.join(type_list), [])
|
||||
yield net, Op(f"store_{type_list[0]}_reg0_" + '_'.join(type_list), [])
|
||||
stored_nets.add(net)
|
||||
|
||||
|
||||
|
|
@ -344,8 +344,8 @@ def compile_to_dag(node_list: Iterable[Node], sdb: stencil_database) -> tuple[bi
|
|||
|
||||
ordered_ops = list(stable_toposort(get_all_dag_edges(node_list)))
|
||||
const_net_list = get_const_nets(ordered_ops)
|
||||
output_ops = list(add_read_ops(ordered_ops))
|
||||
extended_output_ops = list(add_write_ops(output_ops, const_net_list))
|
||||
output_ops = list(add_load_ops(ordered_ops))
|
||||
extended_output_ops = list(add_store_ops(output_ops, const_net_list))
|
||||
|
||||
dw = binw.data_writer(sdb.byteorder)
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from typing import Iterable, overload, TypeVar, Any, Callable, TypeAlias
|
|||
from . import _binwrite as binw
|
||||
from coparun_module import coparun, read_data_mem, create_target, clear_target
|
||||
import struct
|
||||
from ._basic_types import value, Net, Node, Write, NumLike, ArrayType, stencil_db_from_package
|
||||
from ._basic_types import value, Net, Node, Store, NumLike, ArrayType, stencil_db_from_package
|
||||
from ._compiler import compile_to_dag
|
||||
|
||||
T = TypeVar("T", int, float)
|
||||
|
|
@ -76,13 +76,13 @@ class Target():
|
|||
if isinstance(input, ArrayType):
|
||||
for v in input.values:
|
||||
if isinstance(v, value):
|
||||
nodes.append(Write(v))
|
||||
nodes.append(Store(v))
|
||||
elif isinstance(input, Iterable):
|
||||
for v in input:
|
||||
if isinstance(v, value):
|
||||
nodes.append(Write(v))
|
||||
nodes.append(Store(v))
|
||||
elif isinstance(input, value):
|
||||
nodes.append(Write(input))
|
||||
nodes.append(Store(input))
|
||||
|
||||
dw, self._values = compile_to_dag(nodes, self.sdb)
|
||||
dw.write_com(binw.Command.END_COM)
|
||||
|
|
|
|||
|
|
@ -4,10 +4,10 @@ and give access to compiler internals and debugging tools.
|
|||
"""
|
||||
|
||||
from ._target import add_read_command
|
||||
from ._basic_types import Net, Op, Node, CPConstant, Write, stencil_db_from_package
|
||||
from ._basic_types import Net, Op, Node, CPConstant, Store, stencil_db_from_package
|
||||
from ._compiler import compile_to_dag, \
|
||||
stable_toposort, get_const_nets, get_all_dag_edges, add_read_ops, get_all_dag_edges_between, \
|
||||
add_write_ops, get_dag_stats
|
||||
stable_toposort, get_const_nets, get_all_dag_edges, add_load_ops, get_all_dag_edges_between, \
|
||||
add_store_ops, get_dag_stats
|
||||
|
||||
__all__ = [
|
||||
"add_read_command",
|
||||
|
|
@ -15,14 +15,14 @@ __all__ = [
|
|||
"Op",
|
||||
"Node",
|
||||
"CPConstant",
|
||||
"Write",
|
||||
"Store",
|
||||
"compile_to_dag",
|
||||
"stable_toposort",
|
||||
"get_const_nets",
|
||||
"get_all_dag_edges",
|
||||
"get_all_dag_edges_between",
|
||||
"add_read_ops",
|
||||
"add_write_ops",
|
||||
"add_load_ops",
|
||||
"add_store_ops",
|
||||
"stencil_db_from_package",
|
||||
"get_dag_stats"
|
||||
]
|
||||
|
|
|
|||
|
|
@ -187,27 +187,27 @@ def get_result_stubs2(type1: str, type2: str) -> str:
|
|||
|
||||
|
||||
@norm_indent
|
||||
def get_read_reg0_code(type1: str, type2: str, type_out: str) -> str:
|
||||
def get_load_reg0_code(type1: str, type2: str, type_out: str) -> str:
|
||||
return f"""
|
||||
STENCIL void read_{type_out}_reg0_{type1}_{type2}({type1} arg1, {type2} arg2) {{
|
||||
STENCIL void load_{type_out}_reg0_{type1}_{type2}({type1} arg1, {type2} arg2) {{
|
||||
result_{type_out}_{type2}(dummy_{type_out}, arg2);
|
||||
}}
|
||||
"""
|
||||
|
||||
|
||||
@norm_indent
|
||||
def get_read_reg1_code(type1: str, type2: str, type_out: str) -> str:
|
||||
def get_load_reg1_code(type1: str, type2: str, type_out: str) -> str:
|
||||
return f"""
|
||||
STENCIL void read_{type_out}_reg1_{type1}_{type2}({type1} arg1, {type2} arg2) {{
|
||||
STENCIL void load_{type_out}_reg1_{type1}_{type2}({type1} arg1, {type2} arg2) {{
|
||||
result_{type1}_{type_out}(arg1, dummy_{type_out});
|
||||
}}
|
||||
"""
|
||||
|
||||
|
||||
@norm_indent
|
||||
def get_write_code(type1: str, type2: str) -> str:
|
||||
def get_store_code(type1: str, type2: str) -> str:
|
||||
return f"""
|
||||
STENCIL void write_{type1}_reg0_{type1}_{type2}({type1} arg1, {type2} arg2) {{
|
||||
STENCIL void store_{type1}_reg0_{type1}_{type2}({type1} arg1, {type2} arg2) {{
|
||||
dummy_{type1} = arg1;
|
||||
result_{type1}_{type2}(arg1, arg2);
|
||||
}}
|
||||
|
|
@ -289,11 +289,11 @@ if __name__ == "__main__":
|
|||
code += get_op_code('mod', 'int', 'int', 'int')
|
||||
|
||||
for t1, t2, t_out in permutate(types, types, types):
|
||||
code += get_read_reg0_code(t1, t2, t_out)
|
||||
code += get_read_reg1_code(t1, t2, t_out)
|
||||
code += get_load_reg0_code(t1, t2, t_out)
|
||||
code += get_load_reg1_code(t1, t2, t_out)
|
||||
|
||||
for t1, t2 in permutate(types, types):
|
||||
code += get_write_code(t1, t2)
|
||||
code += get_store_code(t1, t2)
|
||||
|
||||
print(f"Write file {args.path}...")
|
||||
with open(args.path, 'w') as f:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from copapy import value
|
||||
from copapy.backend import Write
|
||||
from copapy.backend import Store
|
||||
import copapy.backend as cpb
|
||||
|
||||
|
||||
|
|
@ -19,16 +19,16 @@ def test_ast_generation():
|
|||
#i1 = c1 * 2
|
||||
#r1 = i1 + 7
|
||||
#r2 = i1 + 9
|
||||
#out = [Write(r1), Write(r2)]
|
||||
#out = [Store(r1), Store(r2)]
|
||||
|
||||
c1 = value(4)
|
||||
c2 = value(2)
|
||||
#i1 = c1 * 2
|
||||
#r1 = i1 + 7 + (c2 + 7 * 9)
|
||||
#r2 = i1 + 9
|
||||
#out = [Write(r1), Write(r2)]
|
||||
#out = [Store(r1), Store(r2)]
|
||||
r1 = c1 * 5 + 8 + c2 * 3
|
||||
out = [Write(r1)]
|
||||
out = [Store(r1)]
|
||||
|
||||
print(out)
|
||||
print('-- get_edges:')
|
||||
|
|
@ -48,12 +48,12 @@ def test_ast_generation():
|
|||
print('#', p)
|
||||
|
||||
print('-- add_read_ops:')
|
||||
output_ops = list(cpb.add_read_ops(ordered_ops))
|
||||
output_ops = list(cpb.add_load_ops(ordered_ops))
|
||||
for p in output_ops:
|
||||
print('#', p)
|
||||
|
||||
print('-- add_write_ops:')
|
||||
extended_output_ops = list(cpb.add_write_ops(output_ops, const_list))
|
||||
extended_output_ops = list(cpb.add_store_ops(output_ops, const_list))
|
||||
for p in extended_output_ops:
|
||||
print('#', p)
|
||||
print('--')
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from copapy import value
|
||||
from copapy.backend import Write, compile_to_dag, add_read_command
|
||||
from copapy.backend import Store, compile_to_dag, add_read_command
|
||||
import copapy as cp
|
||||
import subprocess
|
||||
from copapy import _binwrite
|
||||
|
|
@ -22,7 +22,7 @@ def test_compile():
|
|||
# Function with no passing-on-jump as last instruction:
|
||||
ret_test = [r for v in test_vals for r in (cp.tan(value(v)),)]
|
||||
|
||||
out = [Write(r) for r in ret_test]
|
||||
out = [Store(r) for r in ret_test]
|
||||
|
||||
il, variables = compile_to_dag(out, copapy.generic_sdb)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import time
|
||||
from copapy import backend
|
||||
from copapy.backend import Write, stencil_db_from_package
|
||||
from copapy.backend import Store, stencil_db_from_package
|
||||
import copapy.backend as cpb
|
||||
import copapy as cp
|
||||
import copapy._binwrite as binw
|
||||
|
|
@ -13,7 +13,7 @@ def test_timing_compiler():
|
|||
#t2 = t1.sum()
|
||||
t3 = cp.vector(cp.value(1 / (v + 1)) for v in range(256))
|
||||
t5 = ((t3 * t1) * 2).magnitude()
|
||||
out = [Write(t5)]
|
||||
out = [Store(t5)]
|
||||
|
||||
print(out)
|
||||
|
||||
|
|
@ -45,7 +45,7 @@ def test_timing_compiler():
|
|||
|
||||
print('-- add_read_ops:')
|
||||
t0 = time.time()
|
||||
output_ops = list(cpb.add_read_ops(ordered_ops))
|
||||
output_ops = list(cpb.add_load_ops(ordered_ops))
|
||||
t1 = time.time()
|
||||
#for p in output_ops:
|
||||
# print('#', p)
|
||||
|
|
@ -53,7 +53,7 @@ def test_timing_compiler():
|
|||
|
||||
print('-- add_write_ops:')
|
||||
t0 = time.time()
|
||||
extended_output_ops = list(cpb.add_write_ops(output_ops, const_net_list))
|
||||
extended_output_ops = list(cpb.add_store_ops(output_ops, const_net_list))
|
||||
t1 = time.time()
|
||||
#for p in extended_output_ops:
|
||||
# print('#', p)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from copapy import NumLike
|
||||
from copapy.backend import Write, compile_to_dag, add_read_command
|
||||
from copapy.backend import Store, compile_to_dag, add_read_command
|
||||
import copapy as cp
|
||||
import subprocess
|
||||
import struct
|
||||
|
|
@ -58,7 +58,7 @@ def test_compile():
|
|||
|
||||
ret = (t2, t4, t5)
|
||||
|
||||
out = [Write(r) for r in ret]
|
||||
out = [Store(r) for r in ret]
|
||||
|
||||
il, variables = compile_to_dag(out, copapy.generic_sdb)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from copapy import NumLike
|
||||
from copapy.backend import Write, compile_to_dag, add_read_command
|
||||
from copapy.backend import Store, compile_to_dag, add_read_command
|
||||
import subprocess
|
||||
from copapy import _binwrite
|
||||
import copapy.backend as backend
|
||||
|
|
@ -52,7 +52,7 @@ def test_compile():
|
|||
|
||||
ret = (t2, t4, t5)
|
||||
|
||||
out = [Write(r) for r in ret]
|
||||
out = [Store(r) for r in ret]
|
||||
|
||||
sdb = backend.stencil_db_from_package('arm64')
|
||||
il, variables = compile_to_dag(out, sdb)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from copapy import NumLike
|
||||
from copapy.backend import Write, compile_to_dag, add_read_command
|
||||
from copapy.backend import Store, compile_to_dag, add_read_command
|
||||
import subprocess
|
||||
from copapy import _binwrite
|
||||
import copapy.backend as backend
|
||||
|
|
@ -52,7 +52,7 @@ def test_compile():
|
|||
|
||||
ret = (t2, t4, t5)
|
||||
|
||||
out = [Write(r) for r in ret]
|
||||
out = [Store(r) for r in ret]
|
||||
|
||||
sdb = backend.stencil_db_from_package('armv7')
|
||||
il, variables = compile_to_dag(out, sdb)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from copapy import value, NumLike
|
||||
from copapy.backend import Write, compile_to_dag, add_read_command, Net
|
||||
from copapy.backend import Store, compile_to_dag, add_read_command
|
||||
import copapy
|
||||
import subprocess
|
||||
from copapy import _binwrite
|
||||
|
|
@ -26,7 +26,7 @@ def test_compile():
|
|||
|
||||
ret = function(c1)
|
||||
|
||||
out = [Write(r) for r in ret]
|
||||
out = [Store(r) for r in ret]
|
||||
|
||||
il, vars = compile_to_dag(out, copapy.generic_sdb)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from copapy import value
|
||||
from copapy.backend import Write, compile_to_dag, add_read_command
|
||||
from copapy.backend import Store, compile_to_dag, add_read_command
|
||||
import copapy as cp
|
||||
import subprocess
|
||||
from copapy import _binwrite
|
||||
|
|
@ -21,7 +21,7 @@ def test_compile_sqrt():
|
|||
ret = [r for v in test_vals for r in (cp.sqrt(value(v)),)]
|
||||
|
||||
|
||||
out = [Write(r) for r in ret]
|
||||
out = [Store(r) for r in ret]
|
||||
|
||||
il, variables = compile_to_dag(out, copapy.generic_sdb)
|
||||
|
||||
|
|
@ -55,7 +55,7 @@ def test_compile_log():
|
|||
ret = [r for v in test_vals for r in (cp.log(value(v)),)]
|
||||
|
||||
|
||||
out = [Write(r) for r in ret]
|
||||
out = [Store(r) for r in ret]
|
||||
|
||||
il, variables = compile_to_dag(out, copapy.generic_sdb)
|
||||
|
||||
|
|
@ -89,7 +89,7 @@ def test_compile_sin():
|
|||
ret = [r for v in test_vals for r in (cp.sin(value(v)),)]
|
||||
|
||||
|
||||
out = [Write(r) for r in ret]
|
||||
out = [Store(r) for r in ret]
|
||||
|
||||
il, variables = compile_to_dag(out, copapy.generic_sdb)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
import copapy as cp
|
||||
from copapy import value
|
||||
from copapy.backend import get_dag_stats, Write
|
||||
from copapy.backend import get_dag_stats, Store
|
||||
import copapy.backend as cpb
|
||||
from typing import Any
|
||||
|
||||
|
||||
def show_dag(val: value[Any]):
|
||||
out = [Write(val.net)]
|
||||
out = [Store(val.net)]
|
||||
|
||||
print(out)
|
||||
print('-- get_edges:')
|
||||
|
|
@ -26,12 +26,12 @@ def show_dag(val: value[Any]):
|
|||
print('#', p)
|
||||
|
||||
print('-- add_read_ops:')
|
||||
output_ops = list(cpb.add_read_ops(ordered_ops))
|
||||
output_ops = list(cpb.add_load_ops(ordered_ops))
|
||||
for p in output_ops:
|
||||
print('#', p)
|
||||
|
||||
print('-- add_write_ops:')
|
||||
extended_output_ops = list(cpb.add_write_ops(output_ops, const_list))
|
||||
extended_output_ops = list(cpb.add_store_ops(output_ops, const_list))
|
||||
for p in extended_output_ops:
|
||||
print('#', p)
|
||||
print('--')
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from copapy import NumLike, iif, value
|
||||
from copapy.backend import Write, compile_to_dag, add_read_command
|
||||
from copapy.backend import Store, compile_to_dag, add_read_command
|
||||
import subprocess
|
||||
from copapy import _binwrite
|
||||
import copapy.backend as backend
|
||||
|
|
@ -91,7 +91,7 @@ def test_compile():
|
|||
ret_test = function1(c_i) + function1(c_f) + function2(c_i) + function2(c_f) + function3(c_i) + function4(c_i) + function5(c_b) + [value(9) % 2] + iiftests(c_i) + iiftests(c_f) + [cp.asin(c_i/10)]
|
||||
ret_ref = function1(9) + function1(1.111) + function2(9) + function2(1.111) + function3(9) + function4(9) + function5(True) + [9 % 2] + iiftests(9) + iiftests(1.111) + [cp.asin(9/10)]
|
||||
|
||||
out = [Write(r) for r in ret_test]
|
||||
out = [Store(r) for r in ret_test]
|
||||
|
||||
#ret_test += [c_i, v2]
|
||||
#ret_ref += [9, 4.44, -4.44]
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from copapy import NumLike, iif, value
|
||||
from copapy.backend import Write, compile_to_dag, add_read_command
|
||||
from copapy.backend import Store, compile_to_dag, add_read_command
|
||||
import subprocess
|
||||
from copapy import _binwrite
|
||||
import copapy.backend as backend
|
||||
|
|
@ -96,7 +96,7 @@ def test_compile():
|
|||
#ret_test = (c_i * 100 // 5, c_f * 10 // 5)
|
||||
#ret_ref = (9 * 100 // 5, 1.111 * 10 // 5)
|
||||
|
||||
out = [Write(r) for r in ret_test]
|
||||
out = [Store(r) for r in ret_test]
|
||||
|
||||
sdb = backend.stencil_db_from_package('armv6')
|
||||
dw, variables = compile_to_dag(out, sdb)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from copapy import NumLike, iif, value
|
||||
from copapy.backend import Write, compile_to_dag, add_read_command
|
||||
from copapy.backend import Store, compile_to_dag, add_read_command
|
||||
import subprocess
|
||||
from copapy import _binwrite
|
||||
import copapy.backend as backend
|
||||
|
|
@ -96,7 +96,7 @@ def test_compile():
|
|||
#ret_test = (c_i * 100 // 5, c_f * 10 // 5)
|
||||
#ret_ref = (9 * 100 // 5, 1.111 * 10 // 5)
|
||||
|
||||
out = [Write(r) for r in ret_test]
|
||||
out = [Store(r) for r in ret_test]
|
||||
|
||||
sdb = backend.stencil_db_from_package('armv7')
|
||||
dw, variables = compile_to_dag(out, sdb)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from copapy import NumLike, iif, value
|
||||
from copapy.backend import Write, compile_to_dag, add_read_command
|
||||
from copapy.backend import Store, compile_to_dag, add_read_command
|
||||
import subprocess
|
||||
from copapy import _binwrite
|
||||
import copapy.backend as backend
|
||||
|
|
@ -104,7 +104,7 @@ def test_compile():
|
|||
#ret_test = [cp.get_42(c_i)]
|
||||
#ret_ref = [cp.get_42(9)]
|
||||
|
||||
out = [Write(r) for r in ret_test]
|
||||
out = [Store(r) for r in ret_test]
|
||||
|
||||
#ret_test += [c_i, v2]
|
||||
#ret_ref += [9, 4.44, -4.44]
|
||||
|
|
@ -185,7 +185,7 @@ def test_vector_compile():
|
|||
|
||||
ret = (t2, t4, t5)
|
||||
|
||||
out = [Write(r) for r in ret]
|
||||
out = [Store(r) for r in ret]
|
||||
|
||||
sdb = backend.stencil_db_from_package('x86')
|
||||
il, variables = compile_to_dag(out, sdb)
|
||||
|
|
@ -243,7 +243,7 @@ def test_sinus():
|
|||
ret_test = [si, e]
|
||||
ret_ref = [cp.sin(a_val), (a_val + 0.87 * 2.0) ** 2 + cp.sin(a_val) + cp.sqrt(0.87)]
|
||||
|
||||
out = [Write(r) for r in ret_test]
|
||||
out = [Store(r) for r in ret_test]
|
||||
|
||||
sdb = backend.stencil_db_from_package('x86')
|
||||
dw, variables = compile_to_dag(out, sdb)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from copapy import value
|
||||
from copapy.backend import Write, compile_to_dag, stencil_db_from_package
|
||||
from copapy.backend import Store, compile_to_dag, stencil_db_from_package
|
||||
from copapy._binwrite import Command
|
||||
|
||||
input = value(9.0)
|
||||
|
|
@ -8,7 +8,7 @@ result = input ** 2 / 3.3 + 5
|
|||
|
||||
arch = 'native'
|
||||
sdb = stencil_db_from_package(arch)
|
||||
dw, _ = compile_to_dag([Write(result)], sdb)
|
||||
dw, _ = compile_to_dag([Store(result)], sdb)
|
||||
|
||||
# Instruct runner to dump patched code to a file:
|
||||
dw.write_com(Command.DUMP_CODE)
|
||||
|
|
|
|||
Loading…
Reference in New Issue