lgarithm / crystalnet

crystalnet -- a mini core AI library (being refactored, see https://github.com/lgarithm/stdnn-ops)
MIT License
16 stars 3 forks source link

[road map] split the core library #73

Open lgarithm opened 6 years ago

lgarithm commented 6 years ago

In a future (not near so far), the core library will be spitted into

a library for basic tensor data type

https://github.com/lgarithm/stdtensor

a library for computation graph

https://github.com/lgarithm/nn-graph-experimental

a library for operators

https://github.com/lgarithm/stdnn-ops

The GPU implementation of this library can be just a simple wrapper around cudnn thrust and cutlass.

https://github.com/lgarithm/stdnn-ops-cuda

all of them should provide both C APIs (for embedded system) and C++ APIs.

lgarithm commented 6 years ago

The tensor library should have

lgarithm commented 6 years ago

To provide C API, we need to have dynamic types, too. Therefore we gonna to introduce the following 6 categories of data types.

  owner ref view
dynamic tensor_t tensor_ref_t tensor_view_t
static std::tensor<R, r> std::tensor_ref<R, r> std::tensor_view<R, r>

where R is the scaler type (float, double), r is the rank of tensor.

lgarithm commented 6 years ago

@luomai compling eager mode in C++ https://github.com/lgarithm/stdnn-ops/blob/dev/examples/example_layer_mlp.cpp