Lesson 13 (2019) discussion and wiki

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).

6 Likes

How long do you think will take for “swift” be ready for use for real production projects ?

4 Likes

What’s the roadmap/relationship for S4TF regarding mainstream Swift? Is there a world in which S4TF is just Swift in a few years?

3 Likes

Maybe it’s me but swift reminds me of scala, R and python. ALL TOGETHER! Woah!

3 Likes

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.

2 Likes

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. :slight_smile:

6 Likes

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.

8 Likes

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.

1 Like

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.

1 Like

Does Swift support any debugger within Jupyter similar to ipdb for Python to set breakpoints and view stack traces?

3 Likes

Deep thinking going on between Jeremy and Chris there :joy:

S4TF is definitely going places

1 Like

Does the jupyter notebook compile each cell separately?

You have the compiler that helps, but sadly no debugger :frowning:

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.

2 Likes

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.)

6 Likes