# Rust ML WG Meeting 00016
## Meeting Info
Date: 20201215
Start time: 1600 ET
Zoom link: https://1password.zoom.us/j/98269163669?pwd=U2E4TDltOHM5Vk00azJ4QnF4YVJaZz09
- Meeting ID: 982 6916 3669
- Passcode: 485260
## Participants
- chrism
- jeremy thompson
- william moses (Billy)
- https://github.com/wsmoses
- ivano donadi
- lorenz
- andraz tori
- manuel
-
## Agenda
- Short update on Fwumious Wabbit (by Andraz)
- chrism wrote a small prototype for itegrating a convolutional with fully-connected layer
- Still double-checking that the backwards pass between the two layers types are working (has been talking with Benard, who leads juice devel)
- Could use another set of eyes on the linear algebra if anyone's interested before moving
## Minutes
- just chatting about chrism's work and other people's interests as a pre-show :)
### Chrism small prototype for integrating fully-connected convolutional layer
- [tsuga](https://github.com/quietlychris/tsuga)
- generalizing away from fully-connected layers into convolution layers
- can do horizontal line detection
- with sliding window and matrix multiplation
- working on adding convolutonal layers
- next step
- move way from NIST into CIFAR10
- less confident about backwards passes
- needs some eyes on the linear alegabra for the backward passes from fully-connected into convolutional layer
- Could you take an input and put through edge detection
- the output layer should be the total number of pixels and then converge to 1
- single kernel and sincel convolutional layer
### Update on Fwumious Wabbit from Andraz
- continung development
- two new features
- from java to rust code directly JNI bindings
- [flapigen](https://crates.io/crates/flapigen)
- rework that will enable hogwild model loading
- hogwild loading of models
- training for deep models in parallel
### Enzyme automatic differenation from Billy
- https://github.com/wsmoses/Enzyme
- lorenz
- integrate that into the Rust ecosystem
- creating bindings to enzyme
- in a `build.rs` file
- still creating the bindings and reading the llvm code
- type trees problem
- special case of -1
- enzyme wants to know the types of data (e.g. float vs double)
- type trees are
- type prop rules, for any given instruction in llvm (adding to types together means the resulting type is of the same time)
- from the Rust types, what are the corresponding type tree equivilant
- this is a repeating type
- positive offset is a subtree is exactly what the types are
- -1 means for example double array and every x bytes is a double
- Billy
- working on parallelism
- GPU and CPU parallelism
- has working parallelism for CUDA mostly working
- Hijack the linker from LTO -> LLVM
- ideal
- dynamically load into `rustc` (or custom codegen pass)
- modify or fork the codegen pass that allows lowering of the automactially diff tree function
- if you dynmically load enzyme, it will autmocally insert enzyme into the pass pipeline
- co-author on eyzme is one of the main contributors of julia and julia supports the codegen pass
### linfa update from lorenz
- not a lot since last meeting
- updated decision tree
- moved to new CI infrastructure
- added code coverage tool
### Chris asked about how linfa datasets are handled with test data
- How do other ecosystems package their testing data?
- linfa is using tarballs
- use include macro compile who dataset into project
- then publish project
- git submodules possibly
- don't forget to do `git submodules --recursive`
- or else you'll clone the repo but not the included modules
- any interest in using a `pytorch` model where you download and cache the data locally?
- need hasn't really shown up to put together
### Billy asked if the WG is Looking into any Bayesian models at all?
- probabilitic programming
- not really yet ecosystem is fairly young
### Chrism talking about St. Claire license
- https://github.com/quietlychris/st-claire-license
- looking for feedback
- any feedback :)
-
## Actions
- ~~Add https://github.com/wsmoses to tsuga~~
- feedback about the St. Clair license
- next meeting tenatively 20210105 possibly 20200112 due to Holidays