crockpotveggies
crockpotveggies on Hacker News
Deeplearning4j is written around F ordering and ND4J supports this. Admittedly, our ordering API is not obvious to the average user.
Here's an example test you can run yourself that demonstrates ordering: https://gist.github.com/raver119/92b615704ca1bf169aa23a6a6e7...
o.n.i.TensorFlowImportTest - Orders: CCC; Time: 11532 ns;
o.n.i.TensorFlowImportTest - Orders: CCF; Time: 2101 ns;
o.n.i.TensorFlowImportTest - Orders: CFC; Time: 10202 ns;
o.n.i.TensorFlowImportTest - Orders: CFF; Time: 1960 ns;
o.n.i.TensorFlowImportTest - Orders: FCC; Time: 10744 ns;
o.n.i.TensorFlowImportTest - Orders: FCF; Time: 1717 ns;
o.n.i.TensorFlowImportTest - Orders: FFC; Time: 10097 ns;
o.n.i.TensorFlowImportTest - Orders: FFF; Time: 1716 ns;
We also profiled the above test and confirmed that F -> C ordering adds significant overhead. I can share screenshots if anyone is interested.I hope that answers your question. I consider the process of extracting records, transforming them, and loading them for training to be "ETL". I understand ETL also applies to other data consumption.
*I should also note that if you wanted to use datavec for ETL and do not wish to train a deep learning model, it is quite useful for columnar data.
It's very difficult to train on multiple GPUs while maintaining performance of ETL. ETL is a scary hidden bottleneck.
I'm very interested to see how Eclipse can continue to push development. I think the people who will especially benefit from this are devops/production teams operationalizing data science.