S4TF is designed to support many types of accelerators, including NVIDIA GPUs, Cloud TPUs, and more. Additional platforms in the short term will come from hardware support added to compiler technologies like: XLA (in the short term) and MLIR (in the long term).
How long do you think will take for “swift” be ready for use for real production projects ?
What’s the roadmap/relationship for S4TF regarding mainstream Swift? Is there a world in which S4TF is just Swift in a few years?
Maybe it’s me but swift reminds me of scala, R and python. ALL TOGETHER! Woah!
It is used in production a lot, though not for machine learning. S4TF is still very young and immature so give it a year before it can be used in production.
We have seen a number of community members take up Swift for TensorFlow for their own projects. Check out (and join!) the lively mailing list swift@tensorflow.org for additional details.
We’re intentionally investing time and effort and energy in developing the right abstractions. And we think the best way to do this is to do it in the open with the community. As a result, we’ve open sourced the project very early in its lifecycle. It’s definitely not yet ready for production use.
How to join the mailing list?
Swift for TensorFlow is composed of a large number of sub-components. When it makes sense, we intentionally upstream our language improvements to contribute back to the community. For example, check out the ongoing work by @rxwei and @dan-zheng to upstream support for Static Callable. There have been a number of others contributions already upstream (e.g. Additive Arithmetic, Dynamic member lookup, and Dynamic Callable). Some other things are separate projects (such as @marcrasi’s Swift kernel for Jupyter), which are designed to be useful whether you’re using Swift for TensorFlow, or just Swift.
Any timeline on where the “radical changes” of TF will be ready?
is there an advantage to ever calling something a constant?
It’s going to allow the compiler to make optimizations around it. So if you’re sure your thing won’t change, declare it with let.
If you re-run the cell does it still work with let consts? Or somehow redefine it?
It redefines the let constants. Note that it won’t work if you have to let
statements in the same cell with the same variable.
Does Swift support any debugger within Jupyter similar to ipdb for Python to set breakpoints and view stack traces?
Deep thinking going on between Jeremy and Chris there
S4TF is definitely going places
Does the jupyter notebook compile each cell separately?
You have the compiler that helps, but sadly no debugger
Should be a cat beside a dog.
If you run a cell that re-defines something with a let
or a var
, it’ll override the original definition.
When marking things constant, you are making a promise to not change them. This allows compilers to make certain optimizations, and it helps you avoid bugs introduced by you, future you, or someone else. (There are a number of other things in the language that are designed to help “define away” bugs, such as value semantics.)