diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b76394f..1c29c03c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -143,7 +143,7 @@ endif() add_subdirectory(include/comet) add_subdirectory(lib) add_subdirectory(frontends/comet_dsl) -add_subdirectory(integration_test) +add_subdirectory(test) option(COMET_INCLUDE_DOCS "Generate build targets for the COMET docs.") diff --git a/include/comet/Conversion/GpuToTriton/GpuToTritonConversion.h b/include/comet/Conversion/GpuToTriton/GpuToTritonConversion.h index 250c7b89..34d39034 100644 --- a/include/comet/Conversion/GpuToTriton/GpuToTritonConversion.h +++ b/include/comet/Conversion/GpuToTriton/GpuToTritonConversion.h @@ -1,3 +1,23 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// #ifndef GPU_DIALECT_TRITON_TRANSFORMS_COMETCONVERSION_H_ #define GPU_DIALECT_TRITON_TRANSFORMS_COMETCONVERSION_H_ diff --git a/include/comet/Conversion/GpuToTriton/GpuToTritonPass.h b/include/comet/Conversion/GpuToTriton/GpuToTritonPass.h index cb30ee8b..300f7cf2 100644 --- a/include/comet/Conversion/GpuToTriton/GpuToTritonPass.h +++ b/include/comet/Conversion/GpuToTriton/GpuToTritonPass.h @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #ifndef GPU_CONVERSION_GPUTOTRITON_H #define GPU_CONVERSION_GPUTOTRITON_H diff --git a/include/comet/Conversion/GpuToTriton/Passes.h b/include/comet/Conversion/GpuToTriton/Passes.h index 5b604e73..9d4f30db 100644 --- a/include/comet/Conversion/GpuToTriton/Passes.h +++ b/include/comet/Conversion/GpuToTriton/Passes.h @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #ifndef GPU_TO_TRITON_CONVERSION_PASSES_H #define GPU_TO_TRITON_CONVERSION_PASSES_H diff --git a/include/comet/Conversion/GpuToTriton/Passes.td b/include/comet/Conversion/GpuToTriton/Passes.td index e0164fbb..4174a798 100644 --- a/include/comet/Conversion/GpuToTriton/Passes.td +++ b/include/comet/Conversion/GpuToTriton/Passes.td @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #ifndef GPU_TO_TRITON_CONVERSION_PASSES #define GPU_TO_TRITON_CONVERSION_PASSES diff --git a/include/comet/Conversion/ParallelLoopsToGpu/ParallelLoopsToGpu.h b/include/comet/Conversion/ParallelLoopsToGpu/ParallelLoopsToGpu.h index 5f1374e5..1110c5fe 100644 --- a/include/comet/Conversion/ParallelLoopsToGpu/ParallelLoopsToGpu.h +++ b/include/comet/Conversion/ParallelLoopsToGpu/ParallelLoopsToGpu.h @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #ifndef COMET_CONVERSION_PARALLELLOOPSTOGPU_H #define COMET_CONVERSION_PARALLELLOOPSTOGPU_H diff --git a/include/comet/Conversion/ParallelLoopsToGpu/Passes.h b/include/comet/Conversion/ParallelLoopsToGpu/Passes.h index 3f9a9c85..bbd8a002 100644 --- a/include/comet/Conversion/ParallelLoopsToGpu/Passes.h +++ b/include/comet/Conversion/ParallelLoopsToGpu/Passes.h @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #ifndef COMET_PARALLEL_LOOPS_TO_GPU_CONVERSION_PASSES #define COMET_PARALLEL_LOOPS_TO_GPU_CONVERSION_PASSES diff --git a/include/comet/Conversion/ParallelLoopsToGpu/Passes.td b/include/comet/Conversion/ParallelLoopsToGpu/Passes.td index 4f092976..ec96613c 100644 --- a/include/comet/Conversion/ParallelLoopsToGpu/Passes.td +++ b/include/comet/Conversion/ParallelLoopsToGpu/Passes.td @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #ifndef COMET_PARALLEL_LOOPS_TO_GPU_CONVERSION_PASSES #define COMET_PARALLEL_LOOPS_TO_GPU_CONVERSION_PASSES diff --git a/include/comet/Conversion/TritonToCuda/Passes.h b/include/comet/Conversion/TritonToCuda/Passes.h index 3f6a2edf..45e76abc 100644 --- a/include/comet/Conversion/TritonToCuda/Passes.h +++ b/include/comet/Conversion/TritonToCuda/Passes.h @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #ifndef TRITON_TO_CUDA_CONVERSION_PASSES #define TRITON_TO_CUDA_CONVERSION_PASSES diff --git a/include/comet/Conversion/TritonToCuda/Passes.td b/include/comet/Conversion/TritonToCuda/Passes.td index dc0a4862..0d1c87b9 100644 --- a/include/comet/Conversion/TritonToCuda/Passes.td +++ b/include/comet/Conversion/TritonToCuda/Passes.td @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #ifndef GPU_TO_TRITON_CONVERSION_PASSES #define GPU_TO_TRITON_CONVERSION_PASSES diff --git a/include/comet/Conversion/TritonToCuda/TritonToCudaPass.h b/include/comet/Conversion/TritonToCuda/TritonToCudaPass.h index 8b77c02e..f380f8ef 100644 --- a/include/comet/Conversion/TritonToCuda/TritonToCudaPass.h +++ b/include/comet/Conversion/TritonToCuda/TritonToCudaPass.h @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #ifndef TRITON_CONVERSION_TRITONTOCUDA_H #define TRITON_CONVERSION_TRITONTOCUDA_H diff --git a/include/comet/Dialect/IndexTree/IR/IndexTreeBase.td b/include/comet/Dialect/IndexTree/IR/IndexTreeBase.td index de9b5493..97116146 100644 --- a/include/comet/Dialect/IndexTree/IR/IndexTreeBase.td +++ b/include/comet/Dialect/IndexTree/IR/IndexTreeBase.td @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #ifndef INDEXTREE_BASE #define INDEXTREE_BASE diff --git a/include/comet/Dialect/IndexTree/IR/IndexTreeDialect.h b/include/comet/Dialect/IndexTree/IR/IndexTreeDialect.h index fece8d08..ee26fa3f 100644 --- a/include/comet/Dialect/IndexTree/IR/IndexTreeDialect.h +++ b/include/comet/Dialect/IndexTree/IR/IndexTreeDialect.h @@ -61,9 +61,8 @@ namespace mlir { namespace indexTree { - static const llvm::StringSet<> Semiring_intersectOps{"land", "times", "pairxy"}; + static const llvm::StringSet<> Semiring_intersectOps{"land", "times", "pairxy", "min"}; } } - #endif // INDEXTREE_DIALECT_H_ diff --git a/include/comet/Dialect/IndexTree/IR/IndexTreeTraits.h b/include/comet/Dialect/IndexTree/IR/IndexTreeTraits.h index de833da3..8b2deebb 100644 --- a/include/comet/Dialect/IndexTree/IR/IndexTreeTraits.h +++ b/include/comet/Dialect/IndexTree/IR/IndexTreeTraits.h @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #ifndef INDEXTREE_TRAITS_H_ #define INDEXTREE_TRAITS_H_ diff --git a/include/comet/Dialect/IndexTree/IR/IndexTreeTypes.td b/include/comet/Dialect/IndexTree/IR/IndexTreeTypes.td index c11e59a1..8cdb15f1 100644 --- a/include/comet/Dialect/IndexTree/IR/IndexTreeTypes.td +++ b/include/comet/Dialect/IndexTree/IR/IndexTreeTypes.td @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #ifndef INDEXTREE_TYPES #define INDEXTREE_TYPES diff --git a/include/comet/Dialect/TensorAlgebra/IR/TAAttrs.td b/include/comet/Dialect/TensorAlgebra/IR/TAAttrs.td index 8257d645..6a2378b6 100644 --- a/include/comet/Dialect/TensorAlgebra/IR/TAAttrs.td +++ b/include/comet/Dialect/TensorAlgebra/IR/TAAttrs.td @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #ifndef TA_ATTRS #define TA_ATTRS diff --git a/include/comet/Dialect/TensorAlgebra/IR/TABase.td b/include/comet/Dialect/TensorAlgebra/IR/TABase.td index a6f58f21..20b8bfb7 100644 --- a/include/comet/Dialect/TensorAlgebra/IR/TABase.td +++ b/include/comet/Dialect/TensorAlgebra/IR/TABase.td @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #ifndef TA_BASE #define TA_BASE diff --git a/include/comet/Dialect/TensorAlgebra/IR/TAEnums.td b/include/comet/Dialect/TensorAlgebra/IR/TAEnums.td index 26f67e1e..b177d01f 100644 --- a/include/comet/Dialect/TensorAlgebra/IR/TAEnums.td +++ b/include/comet/Dialect/TensorAlgebra/IR/TAEnums.td @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #ifndef TA_ENUMS #define TA_ENUMS diff --git a/include/comet/Dialect/TensorAlgebra/IR/TATypes.td b/include/comet/Dialect/TensorAlgebra/IR/TATypes.td index 45ee8715..ad9e6001 100644 --- a/include/comet/Dialect/TensorAlgebra/IR/TATypes.td +++ b/include/comet/Dialect/TensorAlgebra/IR/TATypes.td @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #ifndef TA_TYPES #define TA_TYPES diff --git a/include/comet/Utils/debug.h b/include/comet/Utils/debug.h index bef84e80..1630c723 100644 --- a/include/comet/Utils/debug.h +++ b/include/comet/Utils/debug.h @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #undef comet_debug #undef comet_pdump #undef comet_vdump diff --git a/integration_test/compound_exps/CSR_mult_spTranspose_CSR.ta b/integration_test/compound_exps/CSR_mult_spTranspose_CSR.ta deleted file mode 100644 index fb10c80e..00000000 --- a/integration_test/compound_exps/CSR_mult_spTranspose_CSR.ta +++ /dev/null @@ -1,35 +0,0 @@ -# RUN: export SPARSE_FILE_NAME0=%comet_integration_test_data_dir/test_rank2.mtx -# RUN: export SORT_TYPE=SEQ_QSORT -# RUN: comet-opt --opt-comp-workspace --convert-ta-to-it --convert-to-loops --convert-to-llvm %s &> CSR_mult_spTranspose_CSR.llvm -# RUN: mlir-cpu-runner CSR_mult_spTranspose_CSR.llvm -O3 -e main -entry-point-result=void -shared-libs=%comet_utility_library_dir/libcomet_runner_utils%shlibext | FileCheck %s - -def main() { - #IndexLabel Declarations - IndexLabel [i] = [?]; - IndexLabel [j] = [?]; - IndexLabel [k] = [?]; - - #Tensor Declarations - Tensor A([k, j], CSR); - Tensor B([i, j], CSR); - Tensor C([k, i], CSR); - - #Tensor Readfile Operation - A[k, j] = comet_read(0); - B[i, j] = comet_read(0); - - #Tensor Transpose - C[k, i] = A[k, j] * transpose(B[i, j],{j,i}); - print(C); -} -# Print the result for verification. -# CHECK: data = -# CHECK-NEXT: 5, -# CHECK-NEXT: data = -# CHECK-NEXT: -1, -# CHECK-NEXT: data = -# CHECK-NEXT: 0,2,4,5,7,9, -# CHECK-NEXT: data = -# CHECK-NEXT: 0,3,1,4,2,0,3,1,4, -# CHECK-NEXT: data = -# CHECK-NEXT: 2.96,9.7,10.25,22.9,9,9.7,32.81,22.9,52.04, \ No newline at end of file diff --git a/integration_test/compound_exps/Dense_eltwise_sTranspose_CSR.ta b/integration_test/compound_exps/Dense_eltwise_sTranspose_CSR.ta deleted file mode 100644 index 1a35a689..00000000 --- a/integration_test/compound_exps/Dense_eltwise_sTranspose_CSR.ta +++ /dev/null @@ -1,36 +0,0 @@ -# RUN: export SPARSE_FILE_NAME0=%comet_integration_test_data_dir/test_rank2.mtx -# RUN: export SORT_TYPE=SEQ_QSORT -# RUN: comet-opt --convert-ta-to-it --convert-to-loops --convert-to-llvm %s &> Dense_eltwise_sTranspose_CSR.llvm -# RUN: mlir-cpu-runner Dense_eltwise_sTranspose_CSR.llvm -O3 -e main -entry-point-result=void -shared-libs=%comet_utility_library_dir/libcomet_runner_utils%shlibext | FileCheck %s - - -def main() { - #IndexLabel Declarations - IndexLabel [i] = [?]; - IndexLabel [j] = [?]; - - #Tensor Declarations - Tensor B([i, j], CSR); - Tensor C([j, i], CSR); - Tensor A([j, i], Dense); - - #Tensor Readfile Operation - B[i, j] = comet_read(0); - A[j, i] = 3.2; - - #Tensor Transpose - C[j, i] = A[j, i] .* transpose(B[i, j],{j,i}); - print(C); -} - -# Print the result for verification. -# CHECK: data = -# CHECK-NEXT: 5, -# CHECK-NEXT: data = -# CHECK-NEXT: -1, -# CHECK-NEXT: data = -# CHECK-NEXT: 0,2,4,5,7,9, -# CHECK-NEXT: data = -# CHECK-NEXT: 0,3,1,4,2,0,3,1,4, -# CHECK-NEXT: data = -# CHECK-NEXT: 3.2,13.12,6.4,16.64,9.6,4.48,12.8,8,16, \ No newline at end of file diff --git a/integration_test/compound_exps/Dense_mult_spTranspose_CSR.ta b/integration_test/compound_exps/Dense_mult_spTranspose_CSR.ta deleted file mode 100644 index 0aba55bb..00000000 --- a/integration_test/compound_exps/Dense_mult_spTranspose_CSR.ta +++ /dev/null @@ -1,28 +0,0 @@ -# RUN: export SPARSE_FILE_NAME0=%comet_integration_test_data_dir/test_rank2.mtx -# RUN: export SORT_TYPE=SEQ_QSORT -# RUN: comet-opt --convert-ta-to-it --convert-to-loops --convert-to-llvm %s &> Dense_mult_spTranspose_CSR.llvm -# RUN: mlir-cpu-runner Dense_mult_spTranspose_CSR.llvm -O3 -e main -entry-point-result=void -shared-libs=%comet_utility_library_dir/libcomet_runner_utils%shlibext | FileCheck %s - -def main() { - #IndexLabel Declarations - IndexLabel [i] = [?]; - IndexLabel [j] = [?]; - IndexLabel [k] = [5]; - - #Tensor Declarations - Tensor B([i, j], CSR); - Tensor A([k, j], Dense); - Tensor C([k, i], Dense); - - #Tensor Readfile Operation - B[i, j] = comet_read(0); - A[k, j] = 2.3; - C[k, i] = 0.0; - - #Tensor Transpose - C[k, i] = A[k, j] * transpose(B[i, j],{j,i}); - print(C); -} -# Print the result for verification. -# CHECK: data = -# CHECK-NEXT: 5.52,10.35,6.9,18.63,23.46,5.52,10.35,6.9,18.63,23.46,5.52,10.35,6.9,18.63,23.46,5.52,10.35,6.9,18.63,23.46,5.52,10.35,6.9,18.63,23.46, \ No newline at end of file diff --git a/integration_test/compound_exps/spTranspose_CSR_eltwise_CSR.ta b/integration_test/compound_exps/spTranspose_CSR_eltwise_CSR.ta deleted file mode 100644 index bdc012e3..00000000 --- a/integration_test/compound_exps/spTranspose_CSR_eltwise_CSR.ta +++ /dev/null @@ -1,35 +0,0 @@ -# RUN: export SPARSE_FILE_NAME0=%comet_integration_test_data_dir/test_rank2.mtx -# RUN: export SORT_TYPE=SEQ_QSORT -# RUN: comet-opt --opt-comp-workspace --convert-ta-to-it --convert-to-loops --convert-to-llvm %s &> spTranspose_CSR_eltwise_CSR.llvm -# RUN: mlir-cpu-runner spTranspose_CSR_eltwise_CSR.llvm -O3 -e main -entry-point-result=void -shared-libs=%comet_utility_library_dir/libcomet_runner_utils%shlibext | FileCheck %s - -def main() { - #IndexLabel Declarations - IndexLabel [i] = [?]; - IndexLabel [j] = [?]; - - #Tensor Declarations - Tensor A([i, j], CSR); - Tensor B([j, i], CSR); - Tensor C([j, i], CSR); - - #Tensor Readfile Operation - A[i, j] = comet_read(0); - B[j, i] = comet_read(0); - - #Tensor Transpose - C[j, i] = transpose(A[i, j],{j,i}) .* B[j, i]; - print(C); -} - -# Print the result for verification. -# CHECK: data = -# CHECK-NEXT: 5, -# CHECK-NEXT: data = -# CHECK-NEXT: -1, -# CHECK-NEXT: data = -# CHECK-NEXT: 0,2,4,5,7,9, -# CHECK-NEXT: data = -# CHECK-NEXT: 0,3,1,4,2,0,3,1,4, -# CHECK-NEXT: data = -# CHECK-NEXT: 1,5.74,4,13,9,5.74,16,13,25, \ No newline at end of file diff --git a/integration_test/compound_exps/spTranspose_CSR_eltwise_Dense.ta b/integration_test/compound_exps/spTranspose_CSR_eltwise_Dense.ta deleted file mode 100644 index 37ee1fac..00000000 --- a/integration_test/compound_exps/spTranspose_CSR_eltwise_Dense.ta +++ /dev/null @@ -1,35 +0,0 @@ -# RUN: export SPARSE_FILE_NAME0=%comet_integration_test_data_dir/test_rank2.mtx -# RUN: export SORT_TYPE=SEQ_QSORT -# RUN: comet-opt --convert-ta-to-it --convert-to-loops --convert-to-llvm %s &> spTranspose_CSR_eltwise_Dense.llvm -# RUN: mlir-cpu-runner spTranspose_CSR_eltwise_Dense.llvm -O3 -e main -entry-point-result=void -shared-libs=%comet_utility_library_dir/libcomet_runner_utils%shlibext | FileCheck %s - -def main() { - #IndexLabel Declarations - IndexLabel [i] = [?]; - IndexLabel [j] = [?]; - - #Tensor Declarations - Tensor A([i, j], CSR); - Tensor C([j, i], CSR); - Tensor B([j, i], Dense); - - #Tensor Readfile Operation - A[i, j] = comet_read(0); - B[j, i] = 2.3; - - #Tensor Transpose - C[j, i] = transpose(A[i, j],{j,i}) .* B[j, i]; - print(C); -} - -# Print the result for verification. -# CHECK: data = -# CHECK-NEXT: 5, -# CHECK-NEXT: data = -# CHECK-NEXT: -1, -# CHECK-NEXT: data = -# CHECK-NEXT: 0,2,4,5,7,9, -# CHECK-NEXT: data = -# CHECK-NEXT: 0,3,1,4,2,0,3,1,4, -# CHECK-NEXT: data = -# CHECK-NEXT: 2.3,9.43,4.6,11.96,6.9,3.22,9.2,5.75,11.5, \ No newline at end of file diff --git a/integration_test/compound_exps/spTranspose_CSR_mult_CSR.ta b/integration_test/compound_exps/spTranspose_CSR_mult_CSR.ta deleted file mode 100644 index e41c1489..00000000 --- a/integration_test/compound_exps/spTranspose_CSR_mult_CSR.ta +++ /dev/null @@ -1,38 +0,0 @@ -# RUN: export SPARSE_FILE_NAME0=%comet_integration_test_data_dir/test_rank2.mtx -# RUN: export SORT_TYPE=SEQ_QSORT -# RUN: comet-opt --opt-comp-workspace --convert-ta-to-it --convert-to-loops --convert-to-llvm %s &> spTranspose_CSR_mult_CSR.llvm -# RUN: mlir-cpu-runner spTranspose_CSR_mult_CSR.llvm -O3 -e main -entry-point-result=void -shared-libs=%comet_utility_library_dir/libcomet_runner_utils%shlibext | FileCheck %s - -## GOOD TEST (merge request) - -def main() { - #IndexLabel Declarations - IndexLabel [i] = [?]; - IndexLabel [j] = [?]; - IndexLabel [k] = [?]; - - #Tensor Declarations - Tensor A([i, j], CSR); - Tensor B([i, k], CSR); - Tensor C([j, k], CSR); - - #Tensor Readfile Operation - A[i, j] = comet_read(0); - B[i, k] = comet_read(0); - - #Tensor Transpose - C[j, k] = transpose(A[i, j],{j,i}) * B[i, k]; - print(C); -} - -# Print the result for verification. -# CHECK: data = -# CHECK-NEXT: 5, -# CHECK-NEXT: data = -# CHECK-NEXT: -1, -# CHECK-NEXT: data = -# CHECK-NEXT: 0,2,4,5,7,9, -# CHECK-NEXT: data = -# CHECK-NEXT: 0,3,1,4,2,0,3,1,4, -# CHECK-NEXT: data = -# CHECK-NEXT: 17.81,17.8,31.04,31,9,17.8,17.96,31,31.25, \ No newline at end of file diff --git a/integration_test/ops/scalar.ta b/integration_test/ops/scalar.ta deleted file mode 100644 index 7452037b..00000000 --- a/integration_test/ops/scalar.ta +++ /dev/null @@ -1,15 +0,0 @@ -# RUN: comet-opt --convert-to-loops --convert-to-llvm %s &> scalars.llvm -# RUN: mlir-cpu-runner scalars.llvm -O3 -e main -entry-point-result=void -shared-libs=%comet_utility_library_dir/libcomet_runner_utils%shlibext | FileCheck %s - -def main() { - var a = 5 + 1; - var b = a + 5 + 1; - var c = b / 2; - var d = c * 3; - var e = d - 1; - print(e); -} - -# Print the result for verification. -# CHECK: data = -# CHECK-NEXT: 17, \ No newline at end of file diff --git a/integration_test/ops/transpose_COO_matrix.ta b/integration_test/ops/transpose_COO_matrix.ta deleted file mode 100644 index 5e8e67da..00000000 --- a/integration_test/ops/transpose_COO_matrix.ta +++ /dev/null @@ -1,32 +0,0 @@ -# RUN: comet-opt --convert-to-loops --convert-to-llvm %s &> transpose_COO_matrix.llvm -# RUN: export SPARSE_FILE_NAME0=%comet_integration_test_data_dir/test_rank2.mtx -# RUN: export SORT_TYPE=SEQ_QSORT -# RUN: mlir-cpu-runner transpose_COO_matrix.llvm -O3 -e main -entry-point-result=void -shared-libs=%comet_utility_library_dir/libcomet_runner_utils%shlibext | FileCheck %s - -def main() { - #IndexLabel Declarations - IndexLabel [i] = [?]; - IndexLabel [j] = [?]; - - #Tensor Declarations - Tensor A([i, j], COO); - Tensor B([j, i], COO); - - #Tensor Readfile Operation - A[i, j] = comet_read(0); - - #Tensor Transpose - B[j, i] = transpose(A[i, j],{j,i}); - print(B); -} - -# CHECK: data = -# CHECK-NEXT: 0,9, -# CHECK-NEXT: data = -# CHECK-NEXT: 0,0,1,1,2,3,3,4,4, -# CHECK-NEXT: data = -# CHECK-NEXT: -1, -# CHECK-NEXT: data = -# CHECK-NEXT: 0,3,1,4,2,0,3,1,4, -# CHECK-NEXT: data = -# CHECK-NEXT: 1,4.1,2,5.2,3,1.4,4,2.5,5, \ No newline at end of file diff --git a/integration_test/ops/transpose_COO_tensor.ta b/integration_test/ops/transpose_COO_tensor.ta deleted file mode 100644 index a38476b1..00000000 --- a/integration_test/ops/transpose_COO_tensor.ta +++ /dev/null @@ -1,38 +0,0 @@ -# RUN: comet-opt --convert-to-loops --convert-to-llvm %s &> transpose_COO_tensor.llvm -# RUN: export SPARSE_FILE_NAME0=%comet_integration_test_data_dir/test_rank3.tns -# RUN: export SORT_TYPE=SEQ_QSORT -# RUN: mlir-cpu-runner transpose_COO_tensor.llvm -O3 -e main -entry-point-result=void -shared-libs=%comet_utility_library_dir/libcomet_runner_utils%shlibext | FileCheck %s - -def main() { - #IndexLabel Declarations - IndexLabel [i] = [?]; - IndexLabel [j] = [?]; - IndexLabel [k] = [?]; - - #Tensor Declarations - Tensor A([i, j, k], COO); - Tensor B([j, i, k], COO); - - #Tensor Readfile Operation - A[i, j, k] = comet_read(0); - - #Tensor Transpose - B[j, i, k] = transpose(A[i, j, k],{j, i, k}); - print(B); -} - -# Print the result for verification. -# CHECK: data = -# CHECK-NEXT: 0,3, -# CHECK-NEXT: data = -# CHECK-NEXT: 1,3,6, -# CHECK-NEXT: data = -# CHECK-NEXT: -1, -# CHECK-NEXT: data = -# CHECK-NEXT: 2,1,3, -# CHECK-NEXT: data = -# CHECK-NEXT: -1, -# CHECK-NEXT: data = -# CHECK-NEXT: 3,2,5, -# CHECK-NEXT: data = -# CHECK-NEXT: 2.11,1.3,3, \ No newline at end of file diff --git a/integration_test/ops/transpose_CSF_tensor.ta b/integration_test/ops/transpose_CSF_tensor.ta deleted file mode 100644 index 6e20ced3..00000000 --- a/integration_test/ops/transpose_CSF_tensor.ta +++ /dev/null @@ -1,38 +0,0 @@ -# RUN: comet-opt --convert-to-loops --convert-to-llvm %s &> transpose_CSF_tensor.llvm -# RUN: export SPARSE_FILE_NAME0=%comet_integration_test_data_dir/test_rank3.tns -# RUN: export SORT_TYPE=SEQ_QSORT -# RUN: mlir-cpu-runner transpose_CSF_tensor.llvm -O3 -e main -entry-point-result=void -shared-libs=%comet_utility_library_dir/libcomet_runner_utils%shlibext | FileCheck %s - -def main() { - #IndexLabel Declarations - IndexLabel [i] = [?]; - IndexLabel [j] = [?]; - IndexLabel [k] = [?]; - - #Tensor Declarations - Tensor A([i, j, k], CSF); - Tensor B([k, i, j], CSF); - - #Tensor Readfile Operation - A[i, j, k] = comet_read(0); - - #Tensor Transpose - B[k, i, j] = transpose(A[i, j, k],{k, i, j}); - print(B); -} - -# Print the result for verification. -# CHECK: data = -# CHECK-NEXT: 0,3, -# CHECK-NEXT: data = -# CHECK-NEXT: 2,3,5, -# CHECK-NEXT: data = -# CHECK-NEXT: 0,1,2,3, -# CHECK-NEXT: data = -# CHECK-NEXT: 1,2,3, -# CHECK-NEXT: data = -# CHECK-NEXT: 0,1,2,3, -# CHECK-NEXT: data = -# CHECK-NEXT: 3,1,6, -# CHECK-NEXT: data = -# CHECK-NEXT: 1.3,2.11,3, diff --git a/integration_test/ops/transpose_CSR_matrix.ta b/integration_test/ops/transpose_CSR_matrix.ta deleted file mode 100644 index 8e377a14..00000000 --- a/integration_test/ops/transpose_CSR_matrix.ta +++ /dev/null @@ -1,33 +0,0 @@ -# RUN: comet-opt --convert-to-loops --convert-to-llvm %s &> transpose_CSR.llvm -# RUN: export SPARSE_FILE_NAME0=%comet_integration_test_data_dir/test_rank2.mtx -# RUN: export SORT_TYPE=SEQ_QSORT -# RUN: mlir-cpu-runner transpose_CSR.llvm -O3 -e main -entry-point-result=void -shared-libs=%comet_utility_library_dir/libcomet_runner_utils%shlibext | FileCheck %s - -def main() { - #IndexLabel Declarations - IndexLabel [i] = [?]; - IndexLabel [j] = [?]; - - #Tensor Declarations - Tensor A([i, j], CSR); - Tensor B([j, i], CSR); - - #Tensor Readfile Operation - A[i, j] = comet_read(0); - - #Tensor Transpose - B[j, i] = transpose(A[i, j],{j,i}); - print(B); -} - -# Print the result for verification. -# CHECK: data = -# CHECK-NEXT: 5, -# CHECK-NEXT: data = -# CHECK-NEXT: -1, -# CHECK-NEXT: data = -# CHECK-NEXT: 0,2,4,5,7,9, -# CHECK-NEXT: data = -# CHECK-NEXT: 0,3,1,4,2,0,3,1,4, -# CHECK-NEXT: data = -# CHECK-NEXT: 1,4.1,2,5.2,3,1.4,4,2.5,5, diff --git a/integration_test/opts/spgemm_w_compressed_workspace.ta b/integration_test/opts/spgemm_w_compressed_workspace.ta deleted file mode 100644 index a9ee52ad..00000000 --- a/integration_test/opts/spgemm_w_compressed_workspace.ta +++ /dev/null @@ -1,39 +0,0 @@ -# Sparse matrix sparse matrix multiplication -# Sparse matrix is in CSR format. Currently workspace transformation on the IndexTree dialect works for only CSR format -# RUN: comet-opt --opt-comp-workspace --convert-ta-to-it --convert-to-loops --convert-to-llvm %s &> spgemm_w_compressed_workspace.llvm -# RUN: export SPARSE_FILE_NAME0=%comet_integration_test_data_dir/test_rank2.mtx -# RUN: export SPARSE_FILE_NAME1=%comet_integration_test_data_dir/test_rank2.mtx -# RUN: mlir-cpu-runner spgemm_w_compressed_workspace.llvm -O3 -e main -entry-point-result=void -shared-libs=%comet_utility_library_dir/libcomet_runner_utils%shlibext | FileCheck %s - - -def main() { - #IndexLabel Declarations - IndexLabel [a] = [?]; - IndexLabel [b] = [?]; - IndexLabel [c] = [?]; - - #Tensor Declarations - Tensor A([a, b], {CSR}); - Tensor B([b, c], {CSR}); - Tensor C([a, c], {CSR}); - - #Tensor Readfile Operation - A[a, b] = comet_read(0); - B[b, c] = comet_read(1); - - #Tensor Contraction - C[a, c] = A[a, b] * B[b, c]; - print(C); -} - -# Print the result for verification. -# CHECK: data = -# CHECK-NEXT: 5, -# CHECK-NEXT: data = -# CHECK-NEXT: -1, -# CHECK-NEXT: data = -# CHECK-NEXT: 0,2,4,5,7,9, -# CHECK-NEXT: data = -# CHECK-NEXT: 0,3,1,4,2,0,3,1,4, -# CHECK-NEXT: data = -# CHECK-NEXT: 6.74,7,17,17.5,9,20.5,21.74,36.4,38, \ No newline at end of file diff --git a/lib/Conversion/GpuToTriton/GpuToTritonConversion.cpp b/lib/Conversion/GpuToTriton/GpuToTritonConversion.cpp index 90c12368..5237f095 100644 --- a/lib/Conversion/GpuToTriton/GpuToTritonConversion.cpp +++ b/lib/Conversion/GpuToTriton/GpuToTritonConversion.cpp @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #include "mlir/Dialect/Affine/IR/AffineOps.h" #include "mlir/Dialect/Arith/IR/Arith.h" #include "mlir/Dialect/GPU/IR/GPUDialect.h" diff --git a/lib/Conversion/GpuToTriton/GpuToTritonPass.cpp b/lib/Conversion/GpuToTriton/GpuToTritonPass.cpp index a89872b8..3817f6ce 100644 --- a/lib/Conversion/GpuToTriton/GpuToTritonPass.cpp +++ b/lib/Conversion/GpuToTriton/GpuToTritonPass.cpp @@ -1,3 +1,23 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// #include #include diff --git a/lib/Conversion/IndexTreeToSCF/IndexTreeConversion.cpp b/lib/Conversion/IndexTreeToSCF/IndexTreeConversion.cpp index 47cdb63b..27e55e94 100644 --- a/lib/Conversion/IndexTreeToSCF/IndexTreeConversion.cpp +++ b/lib/Conversion/IndexTreeToSCF/IndexTreeConversion.cpp @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #include "comet/Dialect/IndexTree/IR/IndexTreeDialect.h" #include "comet/Dialect/IndexTree/Passes.h" #include "comet/Dialect/IndexTree/Patterns.h" diff --git a/lib/Conversion/IndexTreeToSCF/SymbolicDomainConversion.cpp b/lib/Conversion/IndexTreeToSCF/SymbolicDomainConversion.cpp index 08f711d5..6dc37a86 100644 --- a/lib/Conversion/IndexTreeToSCF/SymbolicDomainConversion.cpp +++ b/lib/Conversion/IndexTreeToSCF/SymbolicDomainConversion.cpp @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #include "comet/Dialect/IndexTree/IR/IndexTreeDialect.h" #include "comet/Dialect/Utils/Utils.h" #include "comet/Dialect/TensorAlgebra/IR/TADialect.h" diff --git a/lib/Conversion/ParallelLoopsToGpu/ParallelLoopsToGpu.cpp b/lib/Conversion/ParallelLoopsToGpu/ParallelLoopsToGpu.cpp index 76392358..e8fde301 100644 --- a/lib/Conversion/ParallelLoopsToGpu/ParallelLoopsToGpu.cpp +++ b/lib/Conversion/ParallelLoopsToGpu/ParallelLoopsToGpu.cpp @@ -1,3 +1,23 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// #include #include diff --git a/lib/Conversion/TensorAlgebraToSCF/.LowerPCToLoops.cpp b/lib/Conversion/TensorAlgebraToSCF/.LowerPCToLoops.cpp deleted file mode 100644 index 0d9be872..00000000 --- a/lib/Conversion/TensorAlgebraToSCF/.LowerPCToLoops.cpp +++ /dev/null @@ -1,341 +0,0 @@ -//===- LowerPCToLoops.cpp ------===// -// -// Copyright 2022 Battelle Memorial Institute -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this list of conditions -// and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions -// and the following disclaimer in the documentation and/or other materials provided with the distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED -// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -//===----------------------------------------------------------------------===// -// -// This file implements a lowering of some programming constructs such as for-loops, etc. -//===----------------------------------------------------------------------===// - -#include "comet/Dialect/TensorAlgebra/IR/TADialect.h" -#include "comet/Dialect/TensorAlgebra/Passes.h" -#include "comet/Dialect/IndexTree/IR/IndexTreeDialect.h" -#include "comet/Dialect/Utils/Utils.h" - -#include "mlir/Dialect/Func/IR/FuncOps.h" -#include "mlir/Pass/Pass.h" - -#include -#include - -using namespace mlir; -using namespace mlir::arith; -using namespace mlir::tensorAlgebra; -using namespace mlir::indexTree; - -#define DEBUG_TYPE "PC-lowering" - -// *********** For debug purpose *********// -// #define COMET_DEBUG_MODE -#include "comet/Utils/debug.h" -#undef COMET_DEBUG_MODE -// *********** For debug purpose *********// - -namespace -{ - struct PCToLoopsLoweringPass - : public PassWrapper> - { - MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(PCToLoopsLoweringPass) - void runOnOperation() override; - - // lowers ForLoopBeginOp and ForLoopEndOp to scf.for, one loop at a time. - // pre-condition: output from ProcessLoopOps(); - void PCToLoopsLowering(tensorAlgebra::ForLoopBeginOp op, tensorAlgebra::ForLoopEndOp op_end, std::vector &listOps); - - // find all ops to be placed inside the loop body. - std::vector ProcessLoopOps(tensorAlgebra::ForLoopBeginOp op_start, tensorAlgebra::ForLoopEndOp op_end); - - // replicates Ops for loop-body - // pre-condition: some ops require previously generated ops. - void replicateOpsForLoopBody(Location loc, OpBuilder &builder, Operation *op, Value &rhs, Value &lhs, Value &compute, Value &indices, Value &transpose); - }; -} // end anonymous namespace. - -// find all ops to be placed inside the loop body. -std::vector PCToLoopsLoweringPass::ProcessLoopOps(tensorAlgebra::ForLoopBeginOp op_start, tensorAlgebra::ForLoopEndOp op_end) -{ - comet_debug() << "START: Pre-processing to detect ops to be placed inside loop body.\n"; - comet_pdump(op_start); - - std::vector loop_blk; - - auto *B = op_start.getOperation()->getBlock(); - bool match = false; - // collect all ops to for `one` loop body - for (Operation &op : *B) - { - if (isa(&op)) - { - // check for match - if (cast(op).getIterator() == op_start.getIterator()) - { - match = true; - continue; // skip this iteration or op; - } - } - - if (isa(&op)) - { - if (cast(op) == op_end) - { - match = false; - break; // we are done with match of `one` loop-body - } - } - - if (match) - { // add to list of ops to be replicated - loop_blk.push_back(&op); - } - } - - comet_debug() << "END: Pre-processing to detect ops to be placed inside loop body.\n"; - return loop_blk; -} - -// replicates Ops for loop-body -// pre-condition: some ops require previously generated ops. -void PCToLoopsLoweringPass::replicateOpsForLoopBody(Location loc, OpBuilder &builder, Operation *op, - Value &rhs, Value &lhs, Value &compute, Value &indices, Value &transpose) -{ - IntegerType i64Type = IntegerType::get(builder.getContext(), 64); - - if (isa(op)) - { - comet_debug() << "creating TransposeOp\n"; - tensorAlgebra::TransposeOp ta_transpose_op = llvm::dyn_cast(op); - std::vector lhs_lbls_value = {ta_transpose_op.getOperand(1), ta_transpose_op.getOperand(2)}; - transpose = builder.create(loc, ta_transpose_op.getOperand(0).getType(), ta_transpose_op.getOperand(0), - lhs_lbls_value, ta_transpose_op.getIndexingMaps(), ta_transpose_op.getFormats()); - } - - // TensorSetOp goes with TransposeOp at this stage of the lowering. - if (isa(op) && transpose != NULL) - { - comet_debug() << "creating SetOp after TransposeOp\n"; - tensorAlgebra::TensorSetOp ta_set_op = llvm::dyn_cast(op); - builder.create(loc, transpose, ta_set_op.getOperand(1)); - } - - // create IndexTreeComputeRHSOp, no dependency to earlier replications - if (isa(op)) - { - indexTree::IndexTreeComputeRHSOp it_compute_rhs_op = llvm::dyn_cast(op); - ArrayAttr op_formats_ArrayAttr = it_compute_rhs_op.getAllFormats(); - ArrayAttr op_perms_ArrayAttr = it_compute_rhs_op.getAllPerms(); - - rhs = builder.create(loc, mlir::UnrankedTensorType::get(builder.getF64Type()), - it_compute_rhs_op->getOperands(), // tensors - op_perms_ArrayAttr, op_formats_ArrayAttr); - } - - // create IndexTreeComputeLHSOp, no dependency to earlier replications - if (isa(op)) - { - indexTree::IndexTreeComputeLHSOp it_compute_lhs_op = llvm::dyn_cast(op); - ArrayAttr op_formats_ArrayAttr = it_compute_lhs_op.getAllFormats(); - ArrayAttr op_perms_ArrayAttr = it_compute_lhs_op.getAllPerms(); - - lhs = builder.create(loc, mlir::UnrankedTensorType::get(builder.getF64Type()), - it_compute_lhs_op->getOperands(), /// tensors - op_perms_ArrayAttr, op_formats_ArrayAttr); - } - - /// create IndexTreeComputeOp only if rhs and lhs are ready - if (isa(op) && rhs != NULL && lhs != NULL) - { - indexTree::IndexTreeComputeOp it_compute_op = llvm::dyn_cast(op); - compute = builder.create(loc, i64Type, rhs, lhs, - it_compute_op.getCompWorkspOpt(), it_compute_op.getSemiring(), it_compute_op.getMaskType()); - } - - /// create IndexTreeIndicesOp from existing IndexTreeIndicesOp (checks condition: indices != NULL) - if (isa(op) && indices != NULL) - { - indexTree::IndexTreeIndicesOp it_indices_op = llvm::dyn_cast(op); - Value indices_op_new = builder.create(loc, i64Type, indices, it_indices_op.getIndices(), it_indices_op.getIteratorType()); - - indices = indices_op_new; /// for subsequent IndexTreeIndicesOp creation - } - - /// create the first instance of IndexTreeIndicesOp from IndexTreeComputeOp - if (isa(op) && compute != NULL && indices == NULL) - { - indexTree::IndexTreeIndicesOp it_indices_op = llvm::dyn_cast(op); - indices = builder.create(loc, i64Type, compute, it_indices_op.getIndices(), it_indices_op.getIteratorType()); - } - - if (isa(op) && indices != NULL) - { - builder.create(loc, i64Type, indices); - } -} - -/// lowers ForLoopBeginOp and ForLoopEndOp to scf.for, one loop at a time. -void PCToLoopsLoweringPass::PCToLoopsLowering(tensorAlgebra::ForLoopBeginOp op, tensorAlgebra::ForLoopEndOp op_end, std::vector &listOps) -{ - comet_debug() << "PCToLoopsLowering start\n"; - OpBuilder builder(op); - - comet_pdump(op); - comet_pdump(op_end); - - auto loc = op->getLoc(); - auto ForLoopStart = cast(op); - - /// get info of loop - auto upperBound = ForLoopStart.getMax(); - auto lowerBound = ForLoopStart.getMin(); - auto step = ForLoopStart.getStep(); - - auto loop = builder.create(op_end->getLoc(), lowerBound, upperBound, step); - comet_vdump(loop); - - auto insertPt = builder.saveInsertionPoint(); - builder.setInsertionPointToStart(loop.getBody()); - - /// loop-body: listOps contains all ops obtained thru ProcessLoopOps() - /// to be placed inside 'one' loop-body. - /// TODO(gkestor): verify all ops are covered here! - Value new_rhs_op, new_lhs_op, new_compute_op, indices_op; - Value transpose_op; - std::vector loop_bounds; /// carries loop bounds - for (unsigned int i = 0; i < listOps.size(); i++) - { - comet_pdump(listOps[i]); - - replicateOpsForLoopBody(loc, builder, listOps[i], new_rhs_op, new_lhs_op, new_compute_op, indices_op, transpose_op); - - /// nested loop - if (isa(listOps[i])) - { - ConstantIndexOp constant_index = llvm::dyn_cast(listOps[i]); - loop_bounds.push_back(builder.create(loc, constant_index.value())); - } - - /// scf::for op - /// the inner loop bodies have already been created. preserve them. - /// the loop_bounds array should have lowerBound, upperBound and step Values. - if (isa(listOps[i]) && loop_bounds.size() == 3) - { - scf::ForOp scf_for_op = llvm::dyn_cast(listOps[i]); - scf::ForOp nested_scf_for_op = builder.create(loc, loop_bounds[0], loop_bounds[1], loop_bounds[2]); - - auto insertPt_nested = builder.saveInsertionPoint(); - builder.setInsertionPointToStart(nested_scf_for_op.getBody()); - - Block *B = scf_for_op.getBody(); - Value nested_rhs_op, nested_lhs_op, nested_compute_op, nested_indices_op; - Value nested_transpose_op; - comet_debug() << "going to replicate ops inside nested loop...\n"; - for (Operation &op_for : *B) - { - replicateOpsForLoopBody(loc, builder, &op_for, nested_rhs_op, nested_lhs_op, nested_compute_op, nested_indices_op, nested_transpose_op); - } - /// need to restore the insertion point to the previous point - builder.restoreInsertionPoint(insertPt_nested); - builder.setInsertionPoint(op_end); /// TODO(gkestor): need to re-visit this for nested loops. - } - } - - /// remove old ops, since now we are done with the clone inside loop-body. - /// this is done in reverse order. - comet_debug() << "Removing ops that have been cloned\n"; - for (unsigned int i = 0; i < listOps.size(); i++) - { - comet_pdump(listOps[listOps.size() - i - 1]); - listOps[listOps.size() - i - 1]->erase(); - } - - /// need to restore the insertion point to the previous point - builder.restoreInsertionPoint(insertPt); - builder.setInsertionPoint(op_end); - - /// remove ForLoopBeginOp and ForLoopEndOp - op->erase(); - op_end->erase(); - - comet_debug() << "PCToLoopsLowering end\n"; -} - -void PCToLoopsLoweringPass::runOnOperation() -{ - comet_debug() << "start PCToLoopsLoweringPass\n"; - - func::FuncOp function = getOperation(); - - std::vector startOps; - std::vector endOps; - - /// collect all the loops (begin and ends) here in vector data-structure. e.g., - /// for-start1 (): - /// for-start2 (): - /// do_work2(); - /// end2 - /// do_work1(); - /// end1 - - /// vector: for-start1, for-start2 - /// vector: end2, end1 - - for (Block &B : function.getBody()) - { - for (Operation &op : B) - { - if (isa(&op)) - { - startOps.push_back(cast(op)); - } - if (isa(&op)) - { - endOps.push_back(cast(op)); - } - } - } - - /// if there are no for-loops, quit. - if (startOps.empty()) - return; - - /// the size of the two datastructure should be same - assert(startOps.size() == endOps.size() && "the for-begins must match the ends"); - std::vector opList; - for (unsigned int i = 0; i < startOps.size(); i++) - { - /// start with inner most loop and move outwards. - opList = ProcessLoopOps(startOps[startOps.size() - i - 1], endOps[i]); /// for-1, end-1 - PCToLoopsLowering(startOps[startOps.size() - i - 1], endOps[i], opList); - opList.clear(); /// clear for next round. - } - startOps.clear(); - endOps.clear(); - - /// debug - /// auto module = function.getOperation()->getParentOfType(); - - comet_debug() << "end PCToLoopsLoweringPass\n"; -} - -/// Create a pass for lowering programming constructs -std::unique_ptr mlir::comet::createPCToLoopsLoweringPass() -{ - return std::make_unique(); -} \ No newline at end of file diff --git a/lib/Conversion/TensorAlgebraToSCF/LowerFunc.cpp b/lib/Conversion/TensorAlgebraToSCF/LowerFunc.cpp index 93c9575a..f7b9fedb 100644 --- a/lib/Conversion/TensorAlgebraToSCF/LowerFunc.cpp +++ b/lib/Conversion/TensorAlgebraToSCF/LowerFunc.cpp @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #include "mlir/IR/BuiltinDialect.h" #include "comet/Dialect/TensorAlgebra/IR/TADialect.h" #include "comet/Dialect/TensorAlgebra/Passes.h" diff --git a/lib/Conversion/TensorAlgebraToSCF/SparseTensorConversionPass.cpp b/lib/Conversion/TensorAlgebraToSCF/SparseTensorConversionPass.cpp index dab88bc0..910cdd85 100644 --- a/lib/Conversion/TensorAlgebraToSCF/SparseTensorConversionPass.cpp +++ b/lib/Conversion/TensorAlgebraToSCF/SparseTensorConversionPass.cpp @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #include "comet/Dialect/IndexTree/IR/IndexTreeDialect.h" #include "comet/Dialect/Utils/Utils.h" #include "comet/Dialect/TensorAlgebra/IR/TADialect.h" diff --git a/lib/Conversion/TritonToCuda/TritonToCudaPass.cpp b/lib/Conversion/TritonToCuda/TritonToCudaPass.cpp index 8cfbcc77..da690ca8 100644 --- a/lib/Conversion/TritonToCuda/TritonToCudaPass.cpp +++ b/lib/Conversion/TritonToCuda/TritonToCudaPass.cpp @@ -1,3 +1,23 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// #include #include diff --git a/lib/Dialect/IndexTree/Transforms/DomainConcretization.cpp b/lib/Dialect/IndexTree/Transforms/DomainConcretization.cpp index 04e5e89d..8eb0c1a3 100644 --- a/lib/Dialect/IndexTree/Transforms/DomainConcretization.cpp +++ b/lib/Dialect/IndexTree/Transforms/DomainConcretization.cpp @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #include "mlir/Dialect/Func/IR/FuncOps.h" #include "mlir/Transforms/GreedyPatternRewriteDriver.h" #include "mlir/Dialect/MemRef/IR/MemRef.h" diff --git a/lib/Dialect/IndexTree/Transforms/IterationDomainInference.cpp b/lib/Dialect/IndexTree/Transforms/IterationDomainInference.cpp index 6b55909b..7e5cbe0a 100644 --- a/lib/Dialect/IndexTree/Transforms/IterationDomainInference.cpp +++ b/lib/Dialect/IndexTree/Transforms/IterationDomainInference.cpp @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #include "mlir/Dialect/Func/IR/FuncOps.h" #include "mlir/Dialect/Index/IR/IndexOps.h" #include "mlir/Transforms/GreedyPatternRewriteDriver.h" diff --git a/lib/Dialect/IndexTree/Transforms/SymbolicCompute.cpp b/lib/Dialect/IndexTree/Transforms/SymbolicCompute.cpp index 750aa73a..10134e87 100644 --- a/lib/Dialect/IndexTree/Transforms/SymbolicCompute.cpp +++ b/lib/Dialect/IndexTree/Transforms/SymbolicCompute.cpp @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #include "mlir/Dialect/Func/IR/FuncOps.h" #include "mlir/Transforms/GreedyPatternRewriteDriver.h" #include "mlir/Dialect/MemRef/IR/MemRef.h" diff --git a/lib/Dialect/TensorAlgebra/CMakeLists.txt b/lib/Dialect/TensorAlgebra/CMakeLists.txt index 468565f4..ef4ce65b 100644 --- a/lib/Dialect/TensorAlgebra/CMakeLists.txt +++ b/lib/Dialect/TensorAlgebra/CMakeLists.txt @@ -1,6 +1,5 @@ add_llvm_library(COMETTensorAlgebraDialect IR/TADialect.cpp - # IR/TATypes.cpp Transforms/Transforms.cpp Transforms/LinalgTransforms.cpp diff --git a/lib/Dialect/TensorAlgebra/Transforms/LinalgTransforms.cpp b/lib/Dialect/TensorAlgebra/Transforms/LinalgTransforms.cpp index 6499e1da..c89f0ce4 100644 --- a/lib/Dialect/TensorAlgebra/Transforms/LinalgTransforms.cpp +++ b/lib/Dialect/TensorAlgebra/Transforms/LinalgTransforms.cpp @@ -483,14 +483,19 @@ struct OptDenseTranspose : public ConversionPattern Builder builder(ctx); Location loc = op.getLoc(); + //auto module = op->getParentOfType(); comet_vdump(op); - auto inputType = op->getOperand(0).getType(); + auto tensorize_input = op->getOperand(0).getDefiningOp(); + auto inputMemref = tensorize_input->getOperand(0); + auto inputType = inputMemref.getType(); + + auto tensorize_output = op->getOperand(1).getDefiningOp(); + auto outputMemref = tensorize_output->getOperand(0); + comet_debug() << " Input Type:\n"; comet_vdump(inputType); - auto inputMemref = op->getOperand(0); auto inputRank = inputType.cast().getRank(); - auto outputMemref = op->getOperand(1); std::vector loops; std::vector indexIterateOrder; @@ -521,7 +526,7 @@ struct OptDenseTranspose : public ConversionPattern /// Build loop body auto load_rhs = rewriter.create(loc, inputMemref, inputIVs); comet_vdump(load_rhs); -#ifdef DEBUG_MODE_LINALGTRANSFORMS +#ifdef COMET_DEBUG_MODE comet_vdump(load_rhs); auto store_lhs = rewriter.create(loc, load_rhs, outputMemref, outputIVs); comet_vdump(store_lhs); @@ -635,9 +640,10 @@ struct OptDenseTranspose : public ConversionPattern } /// end loops.size() < 0 + rewriter.replaceAllUsesWith(op->getResult(0), outputMemref); rewriter.eraseOp(op); - /// module.dump(); + //module.dump(); return success(); } diff --git a/lib/ExecutionEngine/GpuUtils.cpp b/lib/ExecutionEngine/GpuUtils.cpp index 8436d073..fe95ebb9 100644 --- a/lib/ExecutionEngine/GpuUtils.cpp +++ b/lib/ExecutionEngine/GpuUtils.cpp @@ -1,3 +1,24 @@ +// +// Copyright 2022 Battelle Memorial Institute +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions +// and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions +// and the following disclaimer in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + #include #include #include diff --git a/lib/ExecutionEngine/blis_interface.cpp b/lib/ExecutionEngine/blis_interface.cpp index 38aee759..ada0d179 100644 --- a/lib/ExecutionEngine/blis_interface.cpp +++ b/lib/ExecutionEngine/blis_interface.cpp @@ -55,7 +55,6 @@ void bli_dgemm_x86_ukr( (strcmp("skx", arch) == 0) || (strcmp("knl", arch) == 0)) { - printf("Calling bli_dgemm_haswell_asm_6x8\n"); bli_dgemm_haswell_asm_6x8(m, n, k, alpha, a, b, beta, c, rs_c0, cs_c0, data, cntx); } else diff --git a/integration_test/CMakeLists.txt b/test/integration/CMakeLists.txt similarity index 100% rename from integration_test/CMakeLists.txt rename to test/integration/CMakeLists.txt diff --git a/integration_test/compound_exps/CSR_Dense_chain_mult_matrix.ta b/test/integration/compound_exps/CSR_Dense_chain_mult_matrix.ta similarity index 100% rename from integration_test/compound_exps/CSR_Dense_chain_mult_matrix.ta rename to test/integration/compound_exps/CSR_Dense_chain_mult_matrix.ta diff --git a/integration_test/compound_exps/CSR_mult_dTranspose.ta b/test/integration/compound_exps/CSR_mult_dTranspose.ta similarity index 100% rename from integration_test/compound_exps/CSR_mult_dTranspose.ta rename to test/integration/compound_exps/CSR_mult_dTranspose.ta diff --git a/integration_test/compound_exps/Dense_chain_mult_matrix.ta b/test/integration/compound_exps/Dense_chain_mult_matrix.ta similarity index 100% rename from integration_test/compound_exps/Dense_chain_mult_matrix.ta rename to test/integration/compound_exps/Dense_chain_mult_matrix.ta diff --git a/integration_test/compound_exps/Dense_eltwise_dTranspose.ta b/test/integration/compound_exps/Dense_eltwise_dTranspose.ta similarity index 100% rename from integration_test/compound_exps/Dense_eltwise_dTranspose.ta rename to test/integration/compound_exps/Dense_eltwise_dTranspose.ta diff --git a/integration_test/compound_exps/Dense_mult_dTranspose.ta b/test/integration/compound_exps/Dense_mult_dTranspose.ta similarity index 100% rename from integration_test/compound_exps/Dense_mult_dTranspose.ta rename to test/integration/compound_exps/Dense_mult_dTranspose.ta diff --git a/integration_test/compound_exps/dTranspose_eltwise_CSR.ta b/test/integration/compound_exps/dTranspose_eltwise_CSR.ta similarity index 100% rename from integration_test/compound_exps/dTranspose_eltwise_CSR.ta rename to test/integration/compound_exps/dTranspose_eltwise_CSR.ta diff --git a/integration_test/compound_exps/dTranspose_eltwise_Dense.ta b/test/integration/compound_exps/dTranspose_eltwise_Dense.ta similarity index 100% rename from integration_test/compound_exps/dTranspose_eltwise_Dense.ta rename to test/integration/compound_exps/dTranspose_eltwise_Dense.ta diff --git a/integration_test/compound_exps/dTranspose_mult_CSR.ta b/test/integration/compound_exps/dTranspose_mult_CSR.ta similarity index 100% rename from integration_test/compound_exps/dTranspose_mult_CSR.ta rename to test/integration/compound_exps/dTranspose_mult_CSR.ta diff --git a/integration_test/compound_exps/dTranspose_mult_Dense.ta b/test/integration/compound_exps/dTranspose_mult_Dense.ta similarity index 100% rename from integration_test/compound_exps/dTranspose_mult_Dense.ta rename to test/integration/compound_exps/dTranspose_mult_Dense.ta diff --git a/integration_test/data/tc.mtx b/test/integration/data/tc.mtx similarity index 100% rename from integration_test/data/tc.mtx rename to test/integration/data/tc.mtx diff --git a/integration_test/data/test_8x6.mtx b/test/integration/data/test_8x6.mtx similarity index 100% rename from integration_test/data/test_8x6.mtx rename to test/integration/data/test_8x6.mtx diff --git a/integration_test/data/test_rank2.mtx b/test/integration/data/test_rank2.mtx similarity index 100% rename from integration_test/data/test_rank2.mtx rename to test/integration/data/test_rank2.mtx diff --git a/integration_test/data/test_rank2_denser.mtx b/test/integration/data/test_rank2_denser.mtx similarity index 100% rename from integration_test/data/test_rank2_denser.mtx rename to test/integration/data/test_rank2_denser.mtx diff --git a/integration_test/data/test_rank2_small.mtx b/test/integration/data/test_rank2_small.mtx similarity index 100% rename from integration_test/data/test_rank2_small.mtx rename to test/integration/data/test_rank2_small.mtx diff --git a/integration_test/data/test_rank2_transpose.mtx b/test/integration/data/test_rank2_transpose.mtx similarity index 100% rename from integration_test/data/test_rank2_transpose.mtx rename to test/integration/data/test_rank2_transpose.mtx diff --git a/integration_test/data/test_rank3.tns b/test/integration/data/test_rank3.tns similarity index 100% rename from integration_test/data/test_rank3.tns rename to test/integration/data/test_rank3.tns diff --git a/integration_test/data/test_rank8.tns b/test/integration/data/test_rank8.tns similarity index 100% rename from integration_test/data/test_rank8.tns rename to test/integration/data/test_rank8.tns diff --git a/integration_test/data/wide.mtx b/test/integration/data/wide.mtx similarity index 100% rename from integration_test/data/wide.mtx rename to test/integration/data/wide.mtx diff --git a/integration_test/compound_exps/gpu/Dense_chain_mult_matrix.ta b/test/integration/gpu/Dense_chain_mult_matrix.ta similarity index 100% rename from integration_test/compound_exps/gpu/Dense_chain_mult_matrix.ta rename to test/integration/gpu/Dense_chain_mult_matrix.ta diff --git a/integration_test/ops/gpu/eltwise_add_dense_matrix.ta b/test/integration/gpu/eltwise_add_dense_matrix.ta similarity index 100% rename from integration_test/ops/gpu/eltwise_add_dense_matrix.ta rename to test/integration/gpu/eltwise_add_dense_matrix.ta diff --git a/integration_test/semiring/gpu/eltwise_monoidMin_DensexDense_oDense.ta b/test/integration/gpu/eltwise_monoidMin_DensexDense_oDense.ta similarity index 100% rename from integration_test/semiring/gpu/eltwise_monoidMin_DensexDense_oDense.ta rename to test/integration/gpu/eltwise_monoidMin_DensexDense_oDense.ta diff --git a/integration_test/semiring/gpu/eltwise_monoidMinus_DensexDense_oDense.ta b/test/integration/gpu/eltwise_monoidMinus_DensexDense_oDense.ta similarity index 100% rename from integration_test/semiring/gpu/eltwise_monoidMinus_DensexDense_oDense.ta rename to test/integration/gpu/eltwise_monoidMinus_DensexDense_oDense.ta diff --git a/integration_test/semiring/gpu/eltwise_monoidPlus_DensexDense_oDense.ta b/test/integration/gpu/eltwise_monoidPlus_DensexDense_oDense.ta similarity index 100% rename from integration_test/semiring/gpu/eltwise_monoidPlus_DensexDense_oDense.ta rename to test/integration/gpu/eltwise_monoidPlus_DensexDense_oDense.ta diff --git a/integration_test/semiring/gpu/eltwise_monoidTimes_DensexDense_oDense.ta b/test/integration/gpu/eltwise_monoidTimes_DensexDense_oDense.ta similarity index 100% rename from integration_test/semiring/gpu/eltwise_monoidTimes_DensexDense_oDense.ta rename to test/integration/gpu/eltwise_monoidTimes_DensexDense_oDense.ta diff --git a/integration_test/ops/gpu/eltwise_mult_DensexDense_oDense.ta b/test/integration/gpu/eltwise_mult_DensexDense_oDense.ta similarity index 100% rename from integration_test/ops/gpu/eltwise_mult_DensexDense_oDense.ta rename to test/integration/gpu/eltwise_mult_DensexDense_oDense.ta diff --git a/integration_test/ops/gpu/eltwise_subtract_dense_matrix.ta b/test/integration/gpu/eltwise_subtract_dense_matrix.ta similarity index 100% rename from integration_test/ops/gpu/eltwise_subtract_dense_matrix.ta rename to test/integration/gpu/eltwise_subtract_dense_matrix.ta diff --git a/integration_test/semiring/gpu/mm_SemiringPlusTimes_DensexDense_oDense.ta b/test/integration/gpu/mm_SemiringPlusTimes_DensexDense_oDense.ta similarity index 100% rename from integration_test/semiring/gpu/mm_SemiringPlusTimes_DensexDense_oDense.ta rename to test/integration/gpu/mm_SemiringPlusTimes_DensexDense_oDense.ta diff --git a/integration_test/ops/gpu/mult_dense_ij-ikj-kj.ta b/test/integration/gpu/mult_dense_ij-ikj-kj.ta similarity index 100% rename from integration_test/ops/gpu/mult_dense_ij-ikj-kj.ta rename to test/integration/gpu/mult_dense_ij-ikj-kj.ta diff --git a/integration_test/ops/gpu/mult_dense_matrix.ta b/test/integration/gpu/mult_dense_matrix.ta similarity index 100% rename from integration_test/ops/gpu/mult_dense_matrix.ta rename to test/integration/gpu/mult_dense_matrix.ta diff --git a/integration_test/ops/gpu/mult_dense_matrix_vector.ta b/test/integration/gpu/mult_dense_matrix_vector.ta similarity index 100% rename from integration_test/ops/gpu/mult_dense_matrix_vector.ta rename to test/integration/gpu/mult_dense_matrix_vector.ta diff --git a/integration_test/semiring/gpu/mv_SemiringPlusTimes_DensexDense_oDense.ta b/test/integration/gpu/mv_SemiringPlusTimes_DensexDense_oDense.ta similarity index 100% rename from integration_test/semiring/gpu/mv_SemiringPlusTimes_DensexDense_oDense.ta rename to test/integration/gpu/mv_SemiringPlusTimes_DensexDense_oDense.ta diff --git a/integration_test/ops/gpu/sum_dense_matrix.ta b/test/integration/gpu/sum_dense_matrix.ta similarity index 100% rename from integration_test/ops/gpu/sum_dense_matrix.ta rename to test/integration/gpu/sum_dense_matrix.ta diff --git a/integration_test/ops/gpu/transpose_dense_matrix.ta b/test/integration/gpu/transpose_dense_matrix.ta similarity index 100% rename from integration_test/ops/gpu/transpose_dense_matrix.ta rename to test/integration/gpu/transpose_dense_matrix.ta diff --git a/integration_test/kernels/ccsd_t1_21_loops.ta b/test/integration/kernels/ccsd_t1_21_loops.ta similarity index 100% rename from integration_test/kernels/ccsd_t1_21_loops.ta rename to test/integration/kernels/ccsd_t1_21_loops.ta diff --git a/integration_test/kernels/ccsd_t1_3_loops.ta b/test/integration/kernels/ccsd_t1_3_loops.ta similarity index 100% rename from integration_test/kernels/ccsd_t1_3_loops.ta rename to test/integration/kernels/ccsd_t1_3_loops.ta diff --git a/integration_test/kernels/ccsd_t1_4_loops.ta b/test/integration/kernels/ccsd_t1_4_loops.ta similarity index 100% rename from integration_test/kernels/ccsd_t1_4_loops.ta rename to test/integration/kernels/ccsd_t1_4_loops.ta diff --git a/integration_test/kernels/gnn.ta b/test/integration/kernels/gnn.ta similarity index 100% rename from integration_test/kernels/gnn.ta rename to test/integration/kernels/gnn.ta diff --git a/integration_test/kernels/gram_matrix.ta b/test/integration/kernels/gram_matrix.ta similarity index 100% rename from integration_test/kernels/gram_matrix.ta rename to test/integration/kernels/gram_matrix.ta diff --git a/integration_test/kernels/triangleCount_SandiaLL.ta b/test/integration/kernels/triangleCount_SandiaLL.ta similarity index 100% rename from integration_test/kernels/triangleCount_SandiaLL.ta rename to test/integration/kernels/triangleCount_SandiaLL.ta diff --git a/integration_test/kernels/triangleCount_SandiaLL_wMasking.ta b/test/integration/kernels/triangleCount_SandiaLL_wMasking.ta similarity index 100% rename from integration_test/kernels/triangleCount_SandiaLL_wMasking.ta rename to test/integration/kernels/triangleCount_SandiaLL_wMasking.ta diff --git a/integration_test/lit.cfg.py b/test/integration/lit.cfg.py similarity index 99% rename from integration_test/lit.cfg.py rename to test/integration/lit.cfg.py index 8d835470..664cd352 100644 --- a/integration_test/lit.cfg.py +++ b/test/integration/lit.cfg.py @@ -58,7 +58,7 @@ config.test_source_root = os.path.dirname(__file__) # test_exec_root: The root path where tests should be run. -config.test_exec_root = os.path.join(config.comet_obj_root, 'integration_test') +config.test_exec_root = os.path.join(config.comet_obj_root, 'integration') # Tweak the PATH to include the tools dir. llvm_config.with_environment('PATH', config.llvm_tools_dir, append_path=True) diff --git a/integration_test/lit.site.cfg.py.in b/test/integration/lit.site.cfg.py.in similarity index 96% rename from integration_test/lit.site.cfg.py.in rename to test/integration/lit.site.cfg.py.in index f0fc42d9..ce5222c4 100644 --- a/integration_test/lit.site.cfg.py.in +++ b/test/integration/lit.site.cfg.py.in @@ -58,4 +58,4 @@ import lit.llvm lit.llvm.initialize(lit_config, config) # Let the main config do the real work. -lit_config.load_config(config, "@COMET_SOURCE_DIR@/integration_test/lit.cfg.py") +lit_config.load_config(config, "@COMET_SOURCE_DIR@/test/integration/lit.cfg.py") diff --git a/integration_test/ops/eltwise_add_CSRxCSR_oCSR.ta b/test/integration/ops/eltwise_add_CSRxCSR_oCSR.ta similarity index 100% rename from integration_test/ops/eltwise_add_CSRxCSR_oCSR.ta rename to test/integration/ops/eltwise_add_CSRxCSR_oCSR.ta diff --git a/integration_test/ops/eltwise_add_dense_matrix.ta b/test/integration/ops/eltwise_add_dense_matrix.ta similarity index 100% rename from integration_test/ops/eltwise_add_dense_matrix.ta rename to test/integration/ops/eltwise_add_dense_matrix.ta diff --git a/integration_test/ops/eltwise_mult_COOxDense_oCOO.ta b/test/integration/ops/eltwise_mult_COOxDense_oCOO.ta similarity index 100% rename from integration_test/ops/eltwise_mult_COOxDense_oCOO.ta rename to test/integration/ops/eltwise_mult_COOxDense_oCOO.ta diff --git a/integration_test/ops/eltwise_mult_CSRxCSR_oCSR.ta b/test/integration/ops/eltwise_mult_CSRxCSR_oCSR.ta similarity index 100% rename from integration_test/ops/eltwise_mult_CSRxCSR_oCSR.ta rename to test/integration/ops/eltwise_mult_CSRxCSR_oCSR.ta diff --git a/integration_test/ops/eltwise_mult_CSRxDense_oCSR.ta b/test/integration/ops/eltwise_mult_CSRxDense_oCSR.ta similarity index 100% rename from integration_test/ops/eltwise_mult_CSRxDense_oCSR.ta rename to test/integration/ops/eltwise_mult_CSRxDense_oCSR.ta diff --git a/integration_test/ops/eltwise_mult_CSRxDense_oDense.ta b/test/integration/ops/eltwise_mult_CSRxDense_oDense.ta similarity index 100% rename from integration_test/ops/eltwise_mult_CSRxDense_oDense.ta rename to test/integration/ops/eltwise_mult_CSRxDense_oDense.ta diff --git a/integration_test/ops/eltwise_mult_DCSRxDense_oDCSR.ta b/test/integration/ops/eltwise_mult_DCSRxDense_oDCSR.ta similarity index 100% rename from integration_test/ops/eltwise_mult_DCSRxDense_oDCSR.ta rename to test/integration/ops/eltwise_mult_DCSRxDense_oDCSR.ta diff --git a/integration_test/ops/eltwise_mult_DCSRxDense_oDense.ta b/test/integration/ops/eltwise_mult_DCSRxDense_oDense.ta similarity index 100% rename from integration_test/ops/eltwise_mult_DCSRxDense_oDense.ta rename to test/integration/ops/eltwise_mult_DCSRxDense_oDense.ta diff --git a/integration_test/ops/eltwise_mult_DensexCSR_oDense.ta b/test/integration/ops/eltwise_mult_DensexCSR_oDense.ta similarity index 100% rename from integration_test/ops/eltwise_mult_DensexCSR_oDense.ta rename to test/integration/ops/eltwise_mult_DensexCSR_oDense.ta diff --git a/integration_test/ops/eltwise_mult_DensexDense_oDense.ta b/test/integration/ops/eltwise_mult_DensexDense_oDense.ta similarity index 100% rename from integration_test/ops/eltwise_mult_DensexDense_oDense.ta rename to test/integration/ops/eltwise_mult_DensexDense_oDense.ta diff --git a/integration_test/ops/eltwise_mult_dense_4Dtensors.ta b/test/integration/ops/eltwise_mult_dense_4Dtensors.ta similarity index 100% rename from integration_test/ops/eltwise_mult_dense_4Dtensors.ta rename to test/integration/ops/eltwise_mult_dense_4Dtensors.ta diff --git a/integration_test/ops/eltwise_subtract_CSRxCSR_oCSR.ta b/test/integration/ops/eltwise_subtract_CSRxCSR_oCSR.ta similarity index 100% rename from integration_test/ops/eltwise_subtract_CSRxCSR_oCSR.ta rename to test/integration/ops/eltwise_subtract_CSRxCSR_oCSR.ta diff --git a/integration_test/ops/eltwise_subtract_dense_matrix.ta b/test/integration/ops/eltwise_subtract_dense_matrix.ta similarity index 100% rename from integration_test/ops/eltwise_subtract_dense_matrix.ta rename to test/integration/ops/eltwise_subtract_dense_matrix.ta diff --git a/integration_test/ops/mult_DenseMatxCOO.ta b/test/integration/ops/mult_DenseMatxCOO.ta similarity index 100% rename from integration_test/ops/mult_DenseMatxCOO.ta rename to test/integration/ops/mult_DenseMatxCOO.ta diff --git a/integration_test/ops/mult_DenseMatxCSR.ta b/test/integration/ops/mult_DenseMatxCSR.ta similarity index 100% rename from integration_test/ops/mult_DenseMatxCSR.ta rename to test/integration/ops/mult_DenseMatxCSR.ta diff --git a/integration_test/ops/mult_DenseMatxDCSR.ta b/test/integration/ops/mult_DenseMatxDCSR.ta similarity index 100% rename from integration_test/ops/mult_DenseMatxDCSR.ta rename to test/integration/ops/mult_DenseMatxDCSR.ta diff --git a/integration_test/ops/mult_DenseVecxCOO.ta b/test/integration/ops/mult_DenseVecxCOO.ta similarity index 100% rename from integration_test/ops/mult_DenseVecxCOO.ta rename to test/integration/ops/mult_DenseVecxCOO.ta diff --git a/integration_test/ops/mult_DenseVecxCSR.ta b/test/integration/ops/mult_DenseVecxCSR.ta similarity index 100% rename from integration_test/ops/mult_DenseVecxCSR.ta rename to test/integration/ops/mult_DenseVecxCSR.ta diff --git a/integration_test/ops/mult_DenseVecxDCSR.ta b/test/integration/ops/mult_DenseVecxDCSR.ta similarity index 100% rename from integration_test/ops/mult_DenseVecxDCSR.ta rename to test/integration/ops/mult_DenseVecxDCSR.ta diff --git a/integration_test/ops/mult_dense_4Dtensors.ta b/test/integration/ops/mult_dense_4Dtensors.ta similarity index 100% rename from integration_test/ops/mult_dense_4Dtensors.ta rename to test/integration/ops/mult_dense_4Dtensors.ta diff --git a/integration_test/ops/mult_dense_ij-ikj-kj.ta b/test/integration/ops/mult_dense_ij-ikj-kj.ta similarity index 100% rename from integration_test/ops/mult_dense_ij-ikj-kj.ta rename to test/integration/ops/mult_dense_ij-ikj-kj.ta diff --git a/integration_test/ops/mult_dense_matrix.ta b/test/integration/ops/mult_dense_matrix.ta similarity index 100% rename from integration_test/ops/mult_dense_matrix.ta rename to test/integration/ops/mult_dense_matrix.ta diff --git a/integration_test/ops/mult_dense_matrix_vector.ta b/test/integration/ops/mult_dense_matrix_vector.ta similarity index 100% rename from integration_test/ops/mult_dense_matrix_vector.ta rename to test/integration/ops/mult_dense_matrix_vector.ta diff --git a/integration_test/ops/mult_spgemm_CSRxCSR_oCSR.ta b/test/integration/ops/mult_spgemm_CSRxCSR_oCSR.ta similarity index 100% rename from integration_test/ops/mult_spgemm_CSRxCSR_oCSR.ta rename to test/integration/ops/mult_spgemm_CSRxCSR_oCSR.ta diff --git a/integration_test/ops/mult_spgemm_CSRxCSR_oCSR_wMasking.ta b/test/integration/ops/mult_spgemm_CSRxCSR_oCSR_wMasking.ta similarity index 100% rename from integration_test/ops/mult_spgemm_CSRxCSR_oCSR_wMasking.ta rename to test/integration/ops/mult_spgemm_CSRxCSR_oCSR_wMasking.ta diff --git a/integration_test/ops/mult_spmm_COOxDense.ta b/test/integration/ops/mult_spmm_COOxDense.ta similarity index 100% rename from integration_test/ops/mult_spmm_COOxDense.ta rename to test/integration/ops/mult_spmm_COOxDense.ta diff --git a/integration_test/ops/mult_spmm_CSRxDense.ta b/test/integration/ops/mult_spmm_CSRxDense.ta similarity index 100% rename from integration_test/ops/mult_spmm_CSRxDense.ta rename to test/integration/ops/mult_spmm_CSRxDense.ta diff --git a/integration_test/ops/mult_spmm_DCSRxDense.ta b/test/integration/ops/mult_spmm_DCSRxDense.ta similarity index 100% rename from integration_test/ops/mult_spmm_DCSRxDense.ta rename to test/integration/ops/mult_spmm_DCSRxDense.ta diff --git a/integration_test/ops/mult_spmv_COOxDense.ta b/test/integration/ops/mult_spmv_COOxDense.ta similarity index 100% rename from integration_test/ops/mult_spmv_COOxDense.ta rename to test/integration/ops/mult_spmv_COOxDense.ta diff --git a/integration_test/ops/mult_spmv_CSRxDense.ta b/test/integration/ops/mult_spmv_CSRxDense.ta similarity index 100% rename from integration_test/ops/mult_spmv_CSRxDense.ta rename to test/integration/ops/mult_spmv_CSRxDense.ta diff --git a/integration_test/ops/mult_spmv_DCSRxDense.ta b/test/integration/ops/mult_spmv_DCSRxDense.ta similarity index 100% rename from integration_test/ops/mult_spmv_DCSRxDense.ta rename to test/integration/ops/mult_spmv_DCSRxDense.ta diff --git a/integration_test/ops/sum_COO.ta b/test/integration/ops/sum_COO.ta similarity index 100% rename from integration_test/ops/sum_COO.ta rename to test/integration/ops/sum_COO.ta diff --git a/integration_test/ops/sum_CSF.ta b/test/integration/ops/sum_CSF.ta similarity index 100% rename from integration_test/ops/sum_CSF.ta rename to test/integration/ops/sum_CSF.ta diff --git a/integration_test/ops/sum_CSR.ta b/test/integration/ops/sum_CSR.ta similarity index 100% rename from integration_test/ops/sum_CSR.ta rename to test/integration/ops/sum_CSR.ta diff --git a/integration_test/ops/sum_dense_matrix.ta b/test/integration/ops/sum_dense_matrix.ta similarity index 100% rename from integration_test/ops/sum_dense_matrix.ta rename to test/integration/ops/sum_dense_matrix.ta diff --git a/integration_test/ops/sum_dense_tensor.ta b/test/integration/ops/sum_dense_tensor.ta similarity index 100% rename from integration_test/ops/sum_dense_tensor.ta rename to test/integration/ops/sum_dense_tensor.ta diff --git a/integration_test/ops/transpose_dense_matrix.ta b/test/integration/ops/transpose_dense_matrix.ta similarity index 100% rename from integration_test/ops/transpose_dense_matrix.ta rename to test/integration/ops/transpose_dense_matrix.ta diff --git a/integration_test/ops/transpose_dense_tensor.ta b/test/integration/ops/transpose_dense_tensor.ta similarity index 100% rename from integration_test/ops/transpose_dense_tensor.ta rename to test/integration/ops/transpose_dense_tensor.ta diff --git a/integration_test/ops/utility_getTime.ta b/test/integration/ops/utility_getTime.ta similarity index 100% rename from integration_test/ops/utility_getTime.ta rename to test/integration/ops/utility_getTime.ta diff --git a/integration_test/ops/utility_printCOO.ta b/test/integration/ops/utility_printCOO.ta similarity index 100% rename from integration_test/ops/utility_printCOO.ta rename to test/integration/ops/utility_printCOO.ta diff --git a/integration_test/ops/utility_printCOO_lowerTri.ta b/test/integration/ops/utility_printCOO_lowerTri.ta similarity index 100% rename from integration_test/ops/utility_printCOO_lowerTri.ta rename to test/integration/ops/utility_printCOO_lowerTri.ta diff --git a/integration_test/ops/utility_printCOO_lowerTriStrict.ta b/test/integration/ops/utility_printCOO_lowerTriStrict.ta similarity index 100% rename from integration_test/ops/utility_printCOO_lowerTriStrict.ta rename to test/integration/ops/utility_printCOO_lowerTriStrict.ta diff --git a/integration_test/ops/utility_printCOO_multi.ta b/test/integration/ops/utility_printCOO_multi.ta similarity index 100% rename from integration_test/ops/utility_printCOO_multi.ta rename to test/integration/ops/utility_printCOO_multi.ta diff --git a/integration_test/ops/utility_printCOO_upperTri.ta b/test/integration/ops/utility_printCOO_upperTri.ta similarity index 100% rename from integration_test/ops/utility_printCOO_upperTri.ta rename to test/integration/ops/utility_printCOO_upperTri.ta diff --git a/integration_test/ops/utility_printCOO_upperTriStrict.ta b/test/integration/ops/utility_printCOO_upperTriStrict.ta similarity index 100% rename from integration_test/ops/utility_printCOO_upperTriStrict.ta rename to test/integration/ops/utility_printCOO_upperTriStrict.ta diff --git a/integration_test/ops/utility_printCSF_multi.ta b/test/integration/ops/utility_printCSF_multi.ta similarity index 100% rename from integration_test/ops/utility_printCSF_multi.ta rename to test/integration/ops/utility_printCSF_multi.ta diff --git a/integration_test/ops/utility_printCSR.ta b/test/integration/ops/utility_printCSR.ta similarity index 100% rename from integration_test/ops/utility_printCSR.ta rename to test/integration/ops/utility_printCSR.ta diff --git a/integration_test/ops/utility_printCSR_CSF.ta b/test/integration/ops/utility_printCSR_CSF.ta similarity index 100% rename from integration_test/ops/utility_printCSR_CSF.ta rename to test/integration/ops/utility_printCSR_CSF.ta diff --git a/integration_test/ops/utility_printCSR_lowerTri.ta b/test/integration/ops/utility_printCSR_lowerTri.ta similarity index 100% rename from integration_test/ops/utility_printCSR_lowerTri.ta rename to test/integration/ops/utility_printCSR_lowerTri.ta diff --git a/integration_test/ops/utility_printCSR_lowerTriStrict.ta b/test/integration/ops/utility_printCSR_lowerTriStrict.ta similarity index 100% rename from integration_test/ops/utility_printCSR_lowerTriStrict.ta rename to test/integration/ops/utility_printCSR_lowerTriStrict.ta diff --git a/integration_test/ops/utility_printCSR_multi.ta b/test/integration/ops/utility_printCSR_multi.ta similarity index 100% rename from integration_test/ops/utility_printCSR_multi.ta rename to test/integration/ops/utility_printCSR_multi.ta diff --git a/integration_test/ops/utility_printCSR_upperTri.ta b/test/integration/ops/utility_printCSR_upperTri.ta similarity index 100% rename from integration_test/ops/utility_printCSR_upperTri.ta rename to test/integration/ops/utility_printCSR_upperTri.ta diff --git a/integration_test/ops/utility_printCSR_upperTriStrict.ta b/test/integration/ops/utility_printCSR_upperTriStrict.ta similarity index 100% rename from integration_test/ops/utility_printCSR_upperTriStrict.ta rename to test/integration/ops/utility_printCSR_upperTriStrict.ta diff --git a/integration_test/ops/utility_printDense.ta b/test/integration/ops/utility_printDense.ta similarity index 100% rename from integration_test/ops/utility_printDense.ta rename to test/integration/ops/utility_printDense.ta diff --git a/integration_test/opts/ccsd_t1_21_ttgt.ta b/test/integration/opts/ccsd_t1_21_ttgt.ta similarity index 100% rename from integration_test/opts/ccsd_t1_21_ttgt.ta rename to test/integration/opts/ccsd_t1_21_ttgt.ta diff --git a/integration_test/opts/ccsd_t1_21_ttgt_all_opts.ta b/test/integration/opts/ccsd_t1_21_ttgt_all_opts.ta similarity index 100% rename from integration_test/opts/ccsd_t1_21_ttgt_all_opts.ta rename to test/integration/opts/ccsd_t1_21_ttgt_all_opts.ta diff --git a/integration_test/opts/ccsd_t1_21_ttgt_tiling.ta b/test/integration/opts/ccsd_t1_21_ttgt_tiling.ta similarity index 100% rename from integration_test/opts/ccsd_t1_21_ttgt_tiling.ta rename to test/integration/opts/ccsd_t1_21_ttgt_tiling.ta diff --git a/integration_test/opts/ccsd_t1_3_ttgt.ta b/test/integration/opts/ccsd_t1_3_ttgt.ta similarity index 100% rename from integration_test/opts/ccsd_t1_3_ttgt.ta rename to test/integration/opts/ccsd_t1_3_ttgt.ta diff --git a/integration_test/opts/ccsd_t1_4_ttgt.ta b/test/integration/opts/ccsd_t1_4_ttgt.ta similarity index 100% rename from integration_test/opts/ccsd_t1_4_ttgt.ta rename to test/integration/opts/ccsd_t1_4_ttgt.ta diff --git a/integration_test/opts/ccsd_t1_4_ttgt_bestperm.ta b/test/integration/opts/ccsd_t1_4_ttgt_bestperm.ta similarity index 100% rename from integration_test/opts/ccsd_t1_4_ttgt_bestperm.ta rename to test/integration/opts/ccsd_t1_4_ttgt_bestperm.ta diff --git a/integration_test/opts/chain_mult_factorize.ta b/test/integration/opts/chain_mult_factorize.ta similarity index 100% rename from integration_test/opts/chain_mult_factorize.ta rename to test/integration/opts/chain_mult_factorize.ta diff --git a/integration_test/opts/fusion.ta b/test/integration/opts/fusion.ta similarity index 100% rename from integration_test/opts/fusion.ta rename to test/integration/opts/fusion.ta diff --git a/integration_test/opts/opt_dense_transpose.ta b/test/integration/opts/opt_dense_transpose.ta similarity index 100% rename from integration_test/opts/opt_dense_transpose.ta rename to test/integration/opts/opt_dense_transpose.ta diff --git a/integration_test/semiring/eltwise_monoidMin_DensexDense_oDense.ta b/test/integration/semiring/eltwise_monoidMin_DensexDense_oDense.ta similarity index 100% rename from integration_test/semiring/eltwise_monoidMin_DensexDense_oDense.ta rename to test/integration/semiring/eltwise_monoidMin_DensexDense_oDense.ta diff --git a/integration_test/semiring/eltwise_monoidMinus_DensexDense_oDense.ta b/test/integration/semiring/eltwise_monoidMinus_DensexDense_oDense.ta similarity index 100% rename from integration_test/semiring/eltwise_monoidMinus_DensexDense_oDense.ta rename to test/integration/semiring/eltwise_monoidMinus_DensexDense_oDense.ta diff --git a/integration_test/semiring/eltwise_monoidPlus_COOxDense_oCOO.ta b/test/integration/semiring/eltwise_monoidPlus_COOxDense_oCOO.ta similarity index 100% rename from integration_test/semiring/eltwise_monoidPlus_COOxDense_oCOO.ta rename to test/integration/semiring/eltwise_monoidPlus_COOxDense_oCOO.ta diff --git a/integration_test/semiring/eltwise_monoidPlus_DensexDense_oDense.ta b/test/integration/semiring/eltwise_monoidPlus_DensexDense_oDense.ta similarity index 100% rename from integration_test/semiring/eltwise_monoidPlus_DensexDense_oDense.ta rename to test/integration/semiring/eltwise_monoidPlus_DensexDense_oDense.ta diff --git a/integration_test/semiring/eltwise_monoidTimes_COOxDense_oCOO.ta b/test/integration/semiring/eltwise_monoidTimes_COOxDense_oCOO.ta similarity index 100% rename from integration_test/semiring/eltwise_monoidTimes_COOxDense_oCOO.ta rename to test/integration/semiring/eltwise_monoidTimes_COOxDense_oCOO.ta diff --git a/integration_test/semiring/eltwise_monoidTimes_DensexDense_oDense.ta b/test/integration/semiring/eltwise_monoidTimes_DensexDense_oDense.ta similarity index 100% rename from integration_test/semiring/eltwise_monoidTimes_DensexDense_oDense.ta rename to test/integration/semiring/eltwise_monoidTimes_DensexDense_oDense.ta diff --git a/integration_test/semiring/eltwise_monoidTimes_dense_4Dtensors.ta b/test/integration/semiring/eltwise_monoidTimes_dense_4Dtensors.ta similarity index 100% rename from integration_test/semiring/eltwise_monoidTimes_dense_4Dtensors.ta rename to test/integration/semiring/eltwise_monoidTimes_dense_4Dtensors.ta diff --git a/integration_test/semiring/mm_SemiringAnyPair_CSRxCSR_oCSR.ta b/test/integration/semiring/mm_SemiringAnyPair_CSRxCSR_oCSR.ta similarity index 100% rename from integration_test/semiring/mm_SemiringAnyPair_CSRxCSR_oCSR.ta rename to test/integration/semiring/mm_SemiringAnyPair_CSRxCSR_oCSR.ta diff --git a/integration_test/semiring/mm_SemiringMinFirst_CSRxCSR_oCSR.ta b/test/integration/semiring/mm_SemiringMinFirst_CSRxCSR_oCSR.ta similarity index 100% rename from integration_test/semiring/mm_SemiringMinFirst_CSRxCSR_oCSR.ta rename to test/integration/semiring/mm_SemiringMinFirst_CSRxCSR_oCSR.ta diff --git a/integration_test/semiring/mm_SemiringMinPlus_CSRxCSR_oCSR.ta b/test/integration/semiring/mm_SemiringMinPlus_CSRxCSR_oCSR.ta similarity index 100% rename from integration_test/semiring/mm_SemiringMinPlus_CSRxCSR_oCSR.ta rename to test/integration/semiring/mm_SemiringMinPlus_CSRxCSR_oCSR.ta diff --git a/integration_test/semiring/mm_SemiringMinSecond_CSRxCSR_oCSR.ta b/test/integration/semiring/mm_SemiringMinSecond_CSRxCSR_oCSR.ta similarity index 100% rename from integration_test/semiring/mm_SemiringMinSecond_CSRxCSR_oCSR.ta rename to test/integration/semiring/mm_SemiringMinSecond_CSRxCSR_oCSR.ta diff --git a/integration_test/semiring/mm_SemiringPlusFirst_CSRxCSR_oCSR.ta b/test/integration/semiring/mm_SemiringPlusFirst_CSRxCSR_oCSR.ta similarity index 100% rename from integration_test/semiring/mm_SemiringPlusFirst_CSRxCSR_oCSR.ta rename to test/integration/semiring/mm_SemiringPlusFirst_CSRxCSR_oCSR.ta diff --git a/integration_test/semiring/mm_SemiringPlusPair_CSRxCSR_oCSR.ta b/test/integration/semiring/mm_SemiringPlusPair_CSRxCSR_oCSR.ta similarity index 100% rename from integration_test/semiring/mm_SemiringPlusPair_CSRxCSR_oCSR.ta rename to test/integration/semiring/mm_SemiringPlusPair_CSRxCSR_oCSR.ta diff --git a/integration_test/semiring/mm_SemiringPlusSecond_CSRxCSR_oCSR.ta b/test/integration/semiring/mm_SemiringPlusSecond_CSRxCSR_oCSR.ta similarity index 100% rename from integration_test/semiring/mm_SemiringPlusSecond_CSRxCSR_oCSR.ta rename to test/integration/semiring/mm_SemiringPlusSecond_CSRxCSR_oCSR.ta diff --git a/integration_test/semiring/mm_SemiringPlusTimes_COOxDense_oDense.ta b/test/integration/semiring/mm_SemiringPlusTimes_COOxDense_oDense.ta similarity index 100% rename from integration_test/semiring/mm_SemiringPlusTimes_COOxDense_oDense.ta rename to test/integration/semiring/mm_SemiringPlusTimes_COOxDense_oDense.ta diff --git a/integration_test/semiring/mm_SemiringPlusTimes_CSRxCSR_oCSR.ta b/test/integration/semiring/mm_SemiringPlusTimes_CSRxCSR_oCSR.ta similarity index 100% rename from integration_test/semiring/mm_SemiringPlusTimes_CSRxCSR_oCSR.ta rename to test/integration/semiring/mm_SemiringPlusTimes_CSRxCSR_oCSR.ta diff --git a/integration_test/semiring/mm_SemiringPlusTimes_CSRxDense_oDense.ta b/test/integration/semiring/mm_SemiringPlusTimes_CSRxDense_oDense.ta similarity index 100% rename from integration_test/semiring/mm_SemiringPlusTimes_CSRxDense_oDense.ta rename to test/integration/semiring/mm_SemiringPlusTimes_CSRxDense_oDense.ta diff --git a/integration_test/semiring/mm_SemiringPlusTimes_DCSRxDense_oDense.ta b/test/integration/semiring/mm_SemiringPlusTimes_DCSRxDense_oDense.ta similarity index 100% rename from integration_test/semiring/mm_SemiringPlusTimes_DCSRxDense_oDense.ta rename to test/integration/semiring/mm_SemiringPlusTimes_DCSRxDense_oDense.ta diff --git a/integration_test/semiring/mm_SemiringPlusTimes_DensexCOO_oDense.ta b/test/integration/semiring/mm_SemiringPlusTimes_DensexCOO_oDense.ta similarity index 100% rename from integration_test/semiring/mm_SemiringPlusTimes_DensexCOO_oDense.ta rename to test/integration/semiring/mm_SemiringPlusTimes_DensexCOO_oDense.ta diff --git a/integration_test/semiring/mm_SemiringPlusTimes_DensexCSR_oDense.ta b/test/integration/semiring/mm_SemiringPlusTimes_DensexCSR_oDense.ta similarity index 100% rename from integration_test/semiring/mm_SemiringPlusTimes_DensexCSR_oDense.ta rename to test/integration/semiring/mm_SemiringPlusTimes_DensexCSR_oDense.ta diff --git a/integration_test/semiring/mm_SemiringPlusTimes_DensexDCSR_oDense.ta b/test/integration/semiring/mm_SemiringPlusTimes_DensexDCSR_oDense.ta similarity index 100% rename from integration_test/semiring/mm_SemiringPlusTimes_DensexDCSR_oDense.ta rename to test/integration/semiring/mm_SemiringPlusTimes_DensexDCSR_oDense.ta diff --git a/integration_test/semiring/mm_SemiringPlusTimes_DensexDense_oDense.ta b/test/integration/semiring/mm_SemiringPlusTimes_DensexDense_oDense.ta similarity index 100% rename from integration_test/semiring/mm_SemiringPlusTimes_DensexDense_oDense.ta rename to test/integration/semiring/mm_SemiringPlusTimes_DensexDense_oDense.ta diff --git a/integration_test/semiring/mm_SemiringPlusTimes_dense_4Dtensors.ta b/test/integration/semiring/mm_SemiringPlusTimes_dense_4Dtensors.ta similarity index 100% rename from integration_test/semiring/mm_SemiringPlusTimes_dense_4Dtensors.ta rename to test/integration/semiring/mm_SemiringPlusTimes_dense_4Dtensors.ta diff --git a/integration_test/semiring/mv_SemiringPlusTimes_COOxDense_oDense.ta b/test/integration/semiring/mv_SemiringPlusTimes_COOxDense_oDense.ta similarity index 100% rename from integration_test/semiring/mv_SemiringPlusTimes_COOxDense_oDense.ta rename to test/integration/semiring/mv_SemiringPlusTimes_COOxDense_oDense.ta diff --git a/integration_test/semiring/mv_SemiringPlusTimes_CSRxDense_oDense.ta b/test/integration/semiring/mv_SemiringPlusTimes_CSRxDense_oDense.ta similarity index 100% rename from integration_test/semiring/mv_SemiringPlusTimes_CSRxDense_oDense.ta rename to test/integration/semiring/mv_SemiringPlusTimes_CSRxDense_oDense.ta diff --git a/integration_test/semiring/mv_SemiringPlusTimes_DCSRxDense_oDense.ta b/test/integration/semiring/mv_SemiringPlusTimes_DCSRxDense_oDense.ta similarity index 100% rename from integration_test/semiring/mv_SemiringPlusTimes_DCSRxDense_oDense.ta rename to test/integration/semiring/mv_SemiringPlusTimes_DCSRxDense_oDense.ta diff --git a/integration_test/semiring/mv_SemiringPlusTimes_DensexCOO_oDense.ta b/test/integration/semiring/mv_SemiringPlusTimes_DensexCOO_oDense.ta similarity index 100% rename from integration_test/semiring/mv_SemiringPlusTimes_DensexCOO_oDense.ta rename to test/integration/semiring/mv_SemiringPlusTimes_DensexCOO_oDense.ta diff --git a/integration_test/semiring/mv_SemiringPlusTimes_DensexCSR_oDense.ta b/test/integration/semiring/mv_SemiringPlusTimes_DensexCSR_oDense.ta similarity index 100% rename from integration_test/semiring/mv_SemiringPlusTimes_DensexCSR_oDense.ta rename to test/integration/semiring/mv_SemiringPlusTimes_DensexCSR_oDense.ta diff --git a/integration_test/semiring/mv_SemiringPlusTimes_DensexDCSR_oDense.ta b/test/integration/semiring/mv_SemiringPlusTimes_DensexDCSR_oDense.ta similarity index 100% rename from integration_test/semiring/mv_SemiringPlusTimes_DensexDCSR_oDense.ta rename to test/integration/semiring/mv_SemiringPlusTimes_DensexDCSR_oDense.ta diff --git a/integration_test/semiring/mv_SemiringPlusTimes_DensexDense_oDense.ta b/test/integration/semiring/mv_SemiringPlusTimes_DensexDense_oDense.ta similarity index 100% rename from integration_test/semiring/mv_SemiringPlusTimes_DensexDense_oDense.ta rename to test/integration/semiring/mv_SemiringPlusTimes_DensexDense_oDense.ta