merge uops with ops (#6111)

Co-authored-by: chenyu <chenyu@fastmail.com>
This commit is contained in:
qazal
2024-08-17 06:17:57 +08:00
committed by GitHub
parent 379d080e74
commit 28c75bf2a6
41 changed files with 372 additions and 405 deletions

View File

@@ -1,7 +1,7 @@
from extra.models.resnet import ResNet50
from tinygrad import Tensor
from tinygrad.codegen.uops import UOps
from tinygrad.helpers import Profiling, Timing, getenv
from tinygrad.ops import UOps
from tinygrad.codegen.kernel import Kernel
if __name__ == "__main__":

View File

@@ -7,12 +7,11 @@ from extra.optimization.helpers import load_worlds, ast_str_to_lin, kern_str_to_
from tinygrad import Tensor, Device, dtypes
from tinygrad.tensor import _to_np_dtype
from tinygrad.codegen.kernel import Kernel
from tinygrad.codegen.uops import UOp, UOps
from tinygrad.codegen.kernel import Opt, OptOps
from tinygrad.engine.search import get_kernel_actions, bufs_from_lin
from tinygrad.engine.realize import CompiledRunner
from tinygrad.helpers import getenv, from_mv, prod, colored, Context, DEBUG
from tinygrad.ops import UnaryOps
from tinygrad.ops import UnaryOps, UOp, UOps
from test.helpers import is_dtype_supported
def tuplize_uops(uops:List[UOp]) -> Tuple:

View File

@@ -3,7 +3,7 @@ from collections import defaultdict
import numpy as np
from dataclasses import replace
from typing import DefaultDict, Dict, List, Tuple
from tinygrad.codegen.uops import END_FOR_UOP, UOp
from tinygrad.ops import END_FOR_UOP, UOp
from tinygrad.codegen.uopgraph import UOpGraph
from tinygrad.device import Buffer, Device
from tinygrad.engine.realize import CompiledRunner

View File

@@ -2,7 +2,7 @@ import sys, unittest
from typing import Optional, Set, Tuple
import numpy as np
from tinygrad import Tensor, Device, dtypes
from tinygrad.codegen.uops import UOp
from tinygrad.ops import UOp
from tinygrad.tensor import _to_np_dtype
from tinygrad.engine.realize import Runner
from tinygrad.dtype import DType

View File

@@ -1,6 +1,6 @@
import unittest, math
from tinygrad import Tensor, Device, dtypes
from tinygrad.codegen.uops import UOps
from tinygrad.ops import UOps
from tinygrad.engine.schedule import create_schedule
from tinygrad.helpers import CI
import numpy as np

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env python
import unittest
from tinygrad.codegen.uops import UOps
from tinygrad.ops import UOps
from tinygrad.tensor import Tensor
from tinygrad.nn import Conv2d
from tinygrad.engine.schedule import create_schedule

View File

@@ -4,12 +4,11 @@ from tinygrad import Tensor, dtypes, Device
import operator
import numpy as np
from hypothesis import given, strategies as strat, settings
from tinygrad.codegen.uops import UOps
from tinygrad.dtype import DType
from tinygrad.helpers import CI, getenv
from tinygrad.engine.schedule import create_schedule
from tinygrad.engine.realize import run_schedule
from tinygrad.ops import UnaryOps
from tinygrad.ops import UnaryOps, UOps
from tinygrad.tensor import _to_np_dtype
from test.helpers import is_dtype_supported

View File

@@ -2,7 +2,7 @@
import numpy as np
import unittest
from tinygrad import Tensor, Device, dtypes
from tinygrad.codegen.uops import UOps
from tinygrad.ops import UOps
from tinygrad.lazy import LazyBuffer, MetaOps
from tinygrad.engine.schedule import create_schedule

View File

@@ -5,7 +5,7 @@ from dataclasses import replace
from tinygrad.codegen.kernel import Opt, OptOps, KernelOptError, Kernel
from tinygrad.codegen.lowerer import get_grouped_dims
from tinygrad.codegen.uops import UOp, UOps
from tinygrad.ops import UOp, UOps
from tinygrad.device import Device, Buffer
from extra.ops import BinaryOps, BufferOps, MemBuffer, ConstBuffer, LazyOp, MetaOps, TernaryOps, ReduceOps, UnaryOps, to_uop
from tinygrad.shape.shapetracker import ShapeTracker

View File

@@ -4,9 +4,9 @@
import unittest
from tinygrad import Device, dtypes
from tinygrad.codegen.uops import UOps
from tinygrad.ops import UOps
from tinygrad.helpers import getenv
from extra.ops import LazyOp, BinaryOps, UnaryOps, ReduceOps, TernaryOps, BufferOps, MemBuffer, ConstBuffer, MetaOps # noqa: F401 # pylint: disable=unused-import
from extra.ops import LazyOp, BinaryOps, UnaryOps, ReduceOps, TernaryOps, BufferOps, MemBuffer, ConstBuffer, MetaOps
from tinygrad.shape.shapetracker import ShapeTracker, View
from tinygrad.engine.search import Opt, OptOps
from tinygrad.codegen.kernel import Kernel

View File

@@ -3,7 +3,7 @@ import unittest, random
import numpy as np
from tinygrad.codegen.kernel import KernelOptError
from tinygrad.codegen.kernel import Kernel
from tinygrad.codegen.uops import UOps
from tinygrad.ops import UOps
from tinygrad.engine.search import Opt, OptOps
from tinygrad import Device, dtypes, Tensor
from tinygrad.helpers import CI

View File

@@ -1,8 +1,7 @@
import unittest, functools, random
from typing import List
from tinygrad import Tensor, Device, nn, GlobalCounters, TinyJit, dtypes
from tinygrad.codegen.uops import UOps
from tinygrad.ops import MetaOps, ReduceOps, BinaryOps
from tinygrad.ops import MetaOps, ReduceOps, BinaryOps, UOps
from tinygrad.helpers import CI, getenv, prod, Context
from tinygrad.nn.state import get_parameters, get_state_dict
from tinygrad.engine.schedule import create_schedule

View File

@@ -3,7 +3,7 @@ import unittest
import numpy as np
import torch
from tinygrad import Tensor, Device, TinyJit
from tinygrad.codegen.uops import UOps
from tinygrad.ops import UOps
from tinygrad.helpers import CI, Context
from tinygrad.nn import Conv1d, ConvTranspose1d, Conv2d, ConvTranspose2d, Linear, Embedding
from tinygrad.nn import BatchNorm, LayerNorm, LayerNorm2d, GroupNorm, InstanceNorm, RMSNorm, LSTMCell

View File

@@ -1,8 +1,7 @@
import unittest, itertools
from test.helpers import TestUOps
from tinygrad.dtype import dtypes
from tinygrad.ops import BinaryOps, TernaryOps, ReduceOps, UnaryOps # noqa: F401
from tinygrad.codegen.uops import UOps, UOp, PatternMatcher, UPat
from tinygrad.ops import UOps, UOp, PatternMatcher, UPat, BinaryOps, TernaryOps, ReduceOps, UnaryOps # noqa: F401
from tinygrad.codegen.uopgraph import constant_folder
class TestPatternMatcher(TestUOps):

View File

@@ -1,13 +1,12 @@
import unittest
from typing import List, cast
import numpy as np
from tinygrad.codegen.uops import UOp, UOps
from tinygrad.device import Buffer, Device
from tinygrad.dtype import PtrDType, DType, dtypes
from tinygrad.engine.realize import CompiledRunner
from tinygrad.helpers import dedup, flatten
from tinygrad.renderer.cstyle import CStyleLanguage
from tinygrad.ops import BinaryOps
from tinygrad.ops import BinaryOps, UOp, UOps
from tinygrad.renderer import Program
from tinygrad.tensor import Tensor, _to_np_dtype
from tinygrad.lazy import LazyBuffer

View File

@@ -8,10 +8,9 @@ from typing import List, Optional, Union, cast
from tinygrad import nn, dtypes
from tinygrad.device import Device
from tinygrad.tensor import Tensor
from tinygrad.ops import BinaryOps, MetaOps, UnaryOps
from tinygrad.ops import BinaryOps, MetaOps, UnaryOps, UOps, verify_ast
from tinygrad.helpers import CI, DEBUG, FUSE_ARANGE, FUSE_CONV_BW, GlobalCounters, flatten, getenv, SPLIT_REDUCEOP
from tinygrad.codegen.kernel import Kernel
from tinygrad.codegen.uops import UOps, verify_ast
from tinygrad.engine.schedule import create_schedule
from tinygrad.engine.realize import run_schedule
from test.helpers import is_dtype_supported, Context

View File

@@ -2,7 +2,7 @@ import unittest
from tinygrad.codegen.kernel import Opt, OptOps
from tinygrad.codegen.kernel import Kernel
from tinygrad.codegen.uops import UOps
from tinygrad.ops import UOps
from tinygrad.engine.schedule import create_schedule
from tinygrad.engine.search import time_linearizer, bufs_from_lin, actions, beam_search
from tinygrad.device import Device, Buffer

View File

@@ -3,8 +3,7 @@ from test.helpers import TestUOps
from tinygrad import dtypes, Variable
from tinygrad.dtype import PtrDType
from tinygrad.helpers import DEBUG
from tinygrad.ops import BinaryOps, TernaryOps, UnaryOps, ReduceOps
from tinygrad.codegen.uops import UOps, UOp, NOp, PatternMatcher
from tinygrad.ops import BinaryOps, TernaryOps, UnaryOps, ReduceOps, UOps, UOp, NOp, PatternMatcher
from tinygrad.codegen.uopgraph import UOpGraph, graph_rewrite, expander, reducer, constant_folder, float4_folding
simple_pm = PatternMatcher([

View File

@@ -5,11 +5,10 @@ from tinygrad.tensor import Tensor, _to_np_dtype
from tinygrad.helpers import CI, DEBUG, getenv, Context
from tinygrad.dtype import dtypes, DType, PtrDType
from tinygrad.device import Buffer, Device
from tinygrad.ops import UnaryOps, BinaryOps, TernaryOps, ReduceOps, KernelInfo, exec_alu # noqa F401
from tinygrad.ops import UOps, NOp, UOp, UnaryOps, BinaryOps, TernaryOps, ReduceOps, KernelInfo, exec_alu # noqa F401
from tinygrad.renderer import Program
from tinygrad.engine.schedule import create_schedule
from tinygrad.engine.realize import CompiledRunner, lower_schedule_item, get_kernel
from tinygrad.codegen.uops import UOps, NOp, UOp
from tinygrad.codegen.uopgraph import UOpGraph
from test.helpers import is_dtype_supported, TestUOps as TestEqUOps

View File

@@ -3,9 +3,8 @@ from tinygrad import Tensor
from tinygrad.helpers import getenv
from tinygrad.engine.schedule import create_schedule
from tinygrad.engine.realize import lower_schedule_item
from tinygrad.codegen.uops import flops_mem, UOps, UOp
from tinygrad.codegen.uopgraph import UOpGraph
from tinygrad.ops import BinaryOps, TernaryOps
from tinygrad.ops import BinaryOps, TernaryOps, flops_mem, UOps, UOp
from tinygrad.dtype import dtypes
from tinygrad.codegen.kernel import Kernel, Opt, OptOps, KernelOptError

View File

@@ -1,6 +1,6 @@
import unittest
from tinygrad import Tensor, GlobalCounters
from tinygrad.codegen.uops import UOps
from tinygrad.ops import UOps
from tinygrad.helpers import Timing, CI, Profiling, WINO, DEBUG, getenv
from tinygrad.codegen.kernel import Kernel
from tinygrad.engine.schedule import create_schedule

View File

@@ -9,9 +9,8 @@ from typing import Tuple
from tinygrad.helpers import DEBUG
from tinygrad.dtype import dtypes, PtrDType, ConstType
from tinygrad.codegen.uops import UOp, UOps
from tinygrad.codegen.uopgraph import UOpGraph
from tinygrad.ops import BinaryOps
from tinygrad.ops import BinaryOps, UOp, UOps
import functools
def render(self) -> Tuple[str, ConstType, ConstType]: