Go to file
wendy12022 c8b2c8ed32
Cpu backend2 (#77)
fix review

change Device::MKL to Device::INTELCPU

fix mkl linkage

fix errors according to merge from master

now can call mkl backend

fix softmax/flatten with axis from onnx.

modify README.md

fix memory refree

add env_lotus_intelcpu.sh

fix compile

merge from branch cpu_backend

fix something add gather

fix something

FIX: directory rename from "mkl" to "intelcpu"

ADD: use oneMKL dpcpp interface to implement matmul kernel.

ADD: add dpcpp as compiler for mkl, and fix warnings for clang compiling.
add dpcpp kernel for pow.

ADD: mkl kernel for pad.

ADD: slice mkl kernel.

ADD: reshape/flatten/identity mkl kernel.

ADD: split mkl kernel.

fix compile error

FIX: fix flattenObj with axis.

ADD reduce_mean mkl kernel.

Add concat mkl kernel.

bathNorm for mkl kernel.

sigmoid mkl kernel.

ADD:add mkl kernel for pooling

add more tests for softmax

Now softmax cuda kernel supports any axises.

mkl kernel for softmax

softmax

add axis to softmax operator

add mkl kernel for abs tanh

ADD: relu kernel for mkl

fix binary mkl primitives.

add mkl kernel for binary operators

fix compiler error

move stream to runtime

clang format

add MemoryFormat for tensorObj.

use post_ops for fused conv/deconv

Distinguish mkl  op_timer from cuda op timer.

add act optype to conv and deconv

add operator timer

add mkl kernel for convTransposed

minor fix for group conv

do not use cblas_sgemm_batch

CpuRuntimeObj->NativeCpuRuntimeObj

add  matmul op for mkl
2023-04-17 12:15:23 +08:00
.github/workflows fix code of bang conv (#76) 2023-03-29 15:47:32 +08:00
3rd-party test: enhance ci (#62) 2023-02-12 00:01:36 +08:00
include Cpu backend2 (#77) 2023-04-17 12:15:23 +08:00
proto Tensor serialization (#25) 2022-09-13 11:27:41 +08:00
pyinfinitensor Cpu backend2 (#77) 2023-04-17 12:15:23 +08:00
python ADD: add mkl runtime for intel cpu , and add mkl kernel for matmul/conv/convtransposed. (#61) 2023-03-27 21:28:49 +08:00
src Cpu backend2 (#77) 2023-04-17 12:15:23 +08:00
test Cpu backend2 (#77) 2023-04-17 12:15:23 +08:00
.clang-format Add: graph, tensor, and operator 2022-07-31 21:44:03 +08:00
.cmake-format.json Add: graph, tensor, and operator 2022-07-31 21:44:03 +08:00
.gitignore feat: 创建 pyinfinitensor 前端 2023-02-13 09:19:05 +08:00
.gitmodules add code for backtrace (#21) 2022-09-01 20:30:12 +08:00
CMakeLists.txt Cpu backend2 (#77) 2023-04-17 12:15:23 +08:00
LICENSE Initial commit 2022-07-27 22:40:23 +08:00
Makefile Cpu backend2 (#77) 2023-04-17 12:15:23 +08:00
README.md Cpu backend2 (#77) 2023-04-17 12:15:23 +08:00

README.md

InfiniTensor

Compilation on Lotus

Compilation for cuda

# Enter the root of InfiniTensor
source test/script/env_lotus.sh
make CUDA=ON

Compilation for intelcpu

# Enter the root of InfiniTensor
source test/script/env_lotus.sh intelcpu
mkdir build && cd build
cmake -DUSE_INTELCPU=ON -DCMAKE_CXX_COMPILER=dpcpp .. && make -j 12

Make Commands

  • make/make build: Builds the project;
  • make install-python: Builds the project then install the python frontend;
  • make test-cpp: Builds the project then run cpp unit tests;
  • make test-onnx: Run python unit tests;

Sets env: CUDA=ON to enable cuda.

CMake Options

There are several configurable CMake options, see the CMakeLists.txt file.

  • If USE_BACKTRACE is ON, libdw-dev have to be installed. See the README of backward-cpp for details.
  • If USE_PROTOBUF is ON, protobuf have to be installed. See the README of protobuf for details.
  • If USE_CUDA is ON, cuda have to be installed.

Contributor Guide

InfiniTensor development is based on the pull request on Github. Before requesting for merging, a PR should satisfy the following requirements

  1. Pass all tests.
    1. Now CI on Github will test everything that can be tested in the ci environment, including code format. So, script test/script/clang_format_inplace.sh is for formatting all code.
    2. Contributors should run ctest manually and copy its output to the PR. Use fenced code blocks (triple backquotes, i.e., ```) to avoid referencing in Github. Otherwise, # in the output is interpreted as a Github reference. Do not directly paste the ctest output in commit messages either for the same reason.
  2. Receive at least one approval from reviewers.
  3. PR title should be concise since it is going to be the commit message in the main branch after merging and squashing.

Dependencies