Hi👋, I’m Chenghua Wang, currently a postgraduate CS student at BUPT.

  • I’m interested in AI&Sys.
  • I’ve struggled for almost one and half years on computer vision(Dehazing, Multi-label classification. July 1 2021 -> Dec 31 2022)

contact me: chenghua.wang.edu@gmail.com

Research Interests

  • Machine Learning Infrastructure

    • ML Compiler
      • NNCV(ZJGSU, BS dissertation), it contains an Aten-lang auto-parallel language(using Polyhedra Algorithms) and a set of deep learning compilation pipelines(Based on MLIR).
    • Distributed and Parallel
    • System Design
  • Computer Vision

    • low-level tasks(ZJGSU, Image dehazing)
    • multi-label multi-class classification
    • object detection

Research Experience

  • Multimedia And Computer Vision Laboratory, ZJGSU. July 1 2021 -> Dec 31 2022.
    • Image Dehazing
    • Medical Image Processing(Palm-print, multi-class multi-label classification)

Projects

[Projects(click to expand)]
  • nncv

    Neural Network inference&compile toolchain for Computer Vision.

    A Project of my BS dissertation

    • An Aten language support Polyhedral model for CPU(X86 with AVX2) target.
    • A small pipeline which use tiling and vectorization method to optimize model from torch.
    • Support X86(with AVX2) and partial Tensor Core instruction.

    using command below to compile a model from torch:

    $nncv-c -target HostWParallel -split-params res18.mlir -o optimized.mlir
    

    call from C++ side:

    #include "libnncv/DataType.hpp"
    #include "libnncv/SystemIo.hpp"
    using namespace nncv::rt;
    MemRefFlatArray params(dataType::kFloat32);
    params.read("model.bin")
    optimized_res18_forward(/*dst*/..., /*src*/..., params.get());
    
  • mgloria

    A Matrix lib based on SIMD and expression template(Lazy Compute). On CPU/GPU. Currently, GPU functionality is not fully implemented

    #include "mgloria/core.hpp"
    
    inline void __test_tensor_basic_OP__() {
      using namespace mgloria;
    
      InitTensorComputeMachine<CPU>(0);
    
      struct ReLU {
        MGLORIA_INLINE_NORMAL static float Do(float t) {
          if (t > 0.f) return t;
          return 0.f;
        }
      };
    
      auto __stream__ = NewStream<CPU>(0);
    
      Tensor<CPU, 3> A = NewTensor(makeShape3d(2, 3, 5), true, 2.f, true, __stream__);
      Tensor<CPU, 3> B = NewTensor(makeShape3d(2, 3, 5), true, 1.f, true, __stream__);
      Tensor<CPU, 3> C = NewTensor(makeShape3d(2, 3, 5), true, 5.f, true, __stream__);
    
      A = B + C;
      // A = expr::implicit_dot(B, C);
      A = expr::Func<ReLU>(A);
    
      std::cout << A;
      std::cout << B;
      std::cout << C;
      FreeStream(__stream__);
      ShutdownTensorComputeMachine<CPU>(0);
    }
    
  • covalent bond

    A tool for managing distributed database, gathering/cleaning data, etc. covalentBond(cb) using Op graph concept to allow users to easily build query logic and data manipulation logic. We took a lot of inspiration from torch and bound most of cb’s operators in lua, making it very easy for users to construct and overload the basic behavior of graphs. This project is for 2022-2023 Fall, SE lecture.

  • daydream engine

    A render lib. Compatible with ShaderToy, can switch between 2d and 3d rendering modes. For 2022-2023 Fall, CG lecture. This lib is shown as a 3d editor below(this editor is also a part of daydream lib):

  • keep-moving-forward

    Some notes of papars I read, and some tech report. Including topics: Distributed system, Machine learning system(compiler), HPC, AI

  • image-dehazing-the-end

    A tech report of my image dehazing research from Jan 1 2022 to Dec 31 2022

    pic 1(a) real-world id=3
    pic 1(b) dehazed id=3
    pic 2(a) real-world id=5
    pic 2(b) dehazed id=5
    pic 3(a) real-world id=104
    pic 3(b) dehazed id=104

    pic 4(a) real-world id=8

    pic 4(b) dehazed id=8

    pic 5(a) real-world id=12

    pic 5(b) dehazed id=12

Languages & Skills

Languages used: c, c++, python, golang, asm(x86, risc-v), cuda, glsl, lua, dart

Skills: MLIR, pytorch, paddlepaddle, opencv, opengl, mysql, redis, flutter, nginx, django

Top Langs