---
# System prepended metadata

title: Rust ML WG Meeting 00016

---


# 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 