show episodes
 
In this podcast, we will focus on making your life better, a plus-up, by achieving success in the three core components of life: Personal, Finance, and Career. For over 15 years, I have been in many roles, such as financial executive, board member of many non-profits, career mentor, education curriculum director, and online columnist. Regardless of what title I hold, I will always view myself as a life coach who dedicated to helping others with personal and professional skills. IG: @lifeplus ...
  continue reading
 
Jesse Felder worked for the largest firm on Wall Street, co-founded a multi-billion-dollar hedge fund firm and has been active in the markets for over 20 years. This podcast is his journey to talk with a number of superinvestors who have been an inspiration to him in an effort to understand what makes them so successful in the financial markets and in life.
  continue reading
 
Loading …
show series
 
Higher order operators are a special form of operators in torch.ops which have relaxed input argument requirements: in particular, they can accept any form of argument, including Python callables. Their name is based off of their most common use case, which is to represent higher order functions like control flow operators. However, they are also u…
  continue reading
 
The post-grad FX passes in Inductor run after AOTAutograd has functionalized and normalized the input program into separate forward/backward graphs. As such, they generally can assume that the graph in question is functionalized, except for some mutations to inputs at the end of the graph. At the end of post-grad passes, there are special passes th…
  continue reading
 
CUDA graph trees are the internal implementation of CUDA graphs used in PT2 when you say mode="reduce-overhead". Their primary innovation is that they allow the reuse of memory across multiple CUDA graphs, as long as they form a tree structure of potential paths you can go down with the CUDA graph. This greatly reduced the memory usage of CUDA grap…
  continue reading
 
AOTInductor is a feature in PyTorch that lets you export an inference model into a self-contained dynamic library, which can subsequently be loaded and used to run optimized inference. It is aimed primarily at CUDA and CPU inference applications, for situations when your model export once to be exported once while your runtime may still get continu…
  continue reading
 
Tensor subclasses allow you to add extend PyTorch with new types of tensors without having to write any C++. They have been used to implement DTensor, FP8, Nested Jagged Tensor and Complex Tensor. Recent work by Brian Hirsh means that we can compile tensor subclasses in PT2, eliminating their overhead. The basic mechanism by which this compilation …
  continue reading
 
Compiled autograd is an extension to PT2 that permits compiling the entirety of a backward() call in PyTorch. This allows us to fuse accumulate grad nodes as well as trace through arbitrarily complicated Python backward hooks. Compiled autograd is an important part of our plans for compiled DDP/FSDP as well as for whole-graph compilation.…
  continue reading
 
Define-by-run IR is how Inductor defines the internal compute of a pointwise/reduction operation. It is characterized by a function that calls a number of functions in the 'ops' namespace, where these ops can be overridden by different handlers depending on what kind of semantic analysis you need to do. The ops Inductor supports include regular ari…
  continue reading
 
Traditionally, unsigned integer support in PyTorch was not great; we only support uint8. Recently, we added support for uint16, uint32 and uint64. Bare bones functionality works, but I'm entreating the community to help us build out the rest. In particular, for most operations, we plan to use PT2 to build anything else. But if you have an eager ker…
  continue reading
 
Inductor IR is an intermediate representation that lives between ATen FX graphs and the final Triton code generated by Inductor. It was designed to faithfully represent PyTorch semantics and accordingly models views, mutation and striding. When you write a lowering from ATen operators to Inductor IR, you get a TensorBox for each Tensor argument whi…
  continue reading
 
I talk about VariableTracker in Dynamo. VariableTracker is Dynamo's representation of the Python. I talk about some recent changes, namely eager guards and mutable VT. I also tell you how to find the functionality you care about in VariableTracker (https://docs.google.com/document/d/1XDPNK3iNNShg07jRXDOrMk2V_i66u1hEbPltcsxE-3E/edit#heading=h.i6v7gq…
  continue reading
 
This episode is long overdue. I've been following the work of Asif Suria for over a decade now and it has proven to be one the best sources of investment ideas I have come across. Asif tracks and writes about everything from predictive insider trading patterns to "ubercannibals," or companies that consistently use excess free cash flow to buyback s…
  continue reading
 
My guest for this episode is Joseph Wang. Joseph is one of the most knowledgeable people I’ve come across when it comes to the world of central banking and how it intersects with markets. His experience on the open markets desk at the New York Fed gives him unique insight into the inner workings of the financial system and how it has evolved in rec…
  continue reading
 
My guest for this episode is Ben Hunt. This is Ben’s second appearance on the podcast. I had the pleasure of first interviewing him a few years ago and if you are not familiar with his work, I encourage you to go listen to that episode in which he discusses his background and the key concepts he utilizes in analyzing markets. It’s not at all necess…
  continue reading
 
This podcast goes over the basics of unbacked SymInts. You might want to listen to this one before listening to https://pytorch-dev-podcast.simplecast.com/episodes/zero-one-specialization Some questions we answer (h/t from Gregory Chanan): - Are unbacked symints only for export? Because otherwise I could just break / wait for the actual size. But m…
  continue reading
 
Variant Perception is an investment research firm founded on the idea that man plus machine beats machine (or man) alone. In an era dominated by passive investing and other purely quantitative strategies with relatively short look back periods on the one hand and rampant speculation in meme stocks and other moon shots on the other, nothing could be…
  continue reading
 
Known as "one of the greatest financial historians alive," Edward Chancellor has been working in the markets for three decades now; his study of finance theory, speculative bubbles and economics goes back even further. 'The Price of Time,' Edward's latest book, is clear evidence of his passion for the subject of financial history and his ability to…
  continue reading
 
Featured Cigar - E. P. Carrillo Pledge Prequel Cigar Maker: Ernesto Perez Carrillo https://en.wikipedia.org/wiki/Ernesto_Perez-Carrillo . Cigar Size and Charts https://bespokeunit.com/cigars/vitolas/ . Cigar Talk Part 1 https://podcasts.apple.com/us/podcast/season-3-episode-1-cigar-talk-with-nyu-executive-mba/id1484596168?i=1000570539812 . . Rex Ne…
  continue reading
 
What is a Cigar? What impression do you associate cigars with? Is it a wise older man reflecting on his past on a porch? Or father sharing a moment with the sons? Do you find it odd that a cigar is one of the most presented items in all major life events and celebrations but is also one of the best companions with a whisky during a heartbreak? Mark…
  continue reading
 
What are they good for? (Caches. Private fields.) C++ side support, how it’s implemented / release resources. Python side support, how it’s implemented. Weak ref tensor hazard due to resurrection. Downsides of weak references in C++. Scott Wolchok’s release resources optimization. Other episodes to listen to first: https://pytorch-dev-podcast.simpl…
  continue reading
 
Mike Ruberry has an RFC about stride-agnostic operator semantics (https://github.com/pytorch/pytorch/issues/78050), so let's talk about strides. What are they? How are they used to implement views and memory format? How do you handle them properly when writing kernels? In what sense are strides overspecified, and therefore, not worth slavishly reim…
  continue reading
 
For over 35 years now, Fred Hickey has consistently performed in-depth research into a wide variety of individual stocks and what drives them over the full market cycle. What's more, during that entire span he's distilled his findings into concise and actionable research for subscribers to his newsletter, The High Tech Strategist. In the process, h…
  continue reading
 
AOTAutograd is a cool new feature in functorch for capturing both forward and backward traces of PyTorch operators, letting you run them through a compiler and then drop the compiled kernels back into a normal PyTorch eager program. Today, Horace joins me to tell me how it works, what it is good to use for, and what our future plans for it are.…
  continue reading
 
Sherlock recently joined the PyTorch team, having previously worked on ONNX Runtime at Microsoft, and Sherlock’s going to ask me some questions about the dispatcher, and I’m going to answer them. We talked about the history of the dispatcher, how to override dispatching order, multiple dispatch, how to organize various dispatch keys and torch funct…
  continue reading
 
PyTorch recently moved all of its CI from CircleCI to GitHub Actions. There were a lot of improvements in the process, making my old podcast about CI obsolete! Today, Eli Uriegas joins me to talk about why we moved to GitHub Actions, how the new CI system is put together, and what some cool features about our new CI.…
  continue reading
 
This is the third conversation with Diego Parrilla I have published as a podcast but the fourth time I have actually recorded a discussion of ours. The first time Diego was kind of enough to share many of the facets of his investment process, I found only afterwards that, due to a technology issue, the audio recording was sadly unusable. So I was v…
  continue reading
 
PyTorch’s torch API is the Python API everyone knows and loves, but there’s also another API, the ATen API, which most of PyTorch’s internal subsystems are built on. How to tell them apart? What implications do these have on our graph mode IR design? Also, a plug for PrimTorch, a new set of operators, not designed for eager mode, that is supposed t…
  continue reading
 
For long-time Superinvestors listeners, Kiril Sokoloff needs no introduction. Last summer, he was kind enough to host me at his home in Sun Valley, Idaho where we discussed much of the framework that makes up the foundation of Kiril's research and investment process. In this conversation, he shares how he applies this framework to the inflation deb…
  continue reading
 
Todd Harrison is truly one of the good guys on Wall Street. After a career that took him from the Morgan Stanley options trading desk to running a major hedge fund and then starting a financial media business, Todd founded CB1 Capital several years ago. The firm, an investment adviser and manager, was born out of Todd's belief in cannabis as a rela…
  continue reading
 
PyTorch is in the business of shipping numerical software that can run fast on your CUDA-enabled NVIDIA GPU, but it turns out there is a lot of heterogeneity in NVIDIA’s physical GPU offering and when it comes to what is fast and what is slow, what specific GPU you have on hand matters quite a bit. Yet there are literally hundreds of distinct NVIDI…
  continue reading
 
A lot of recent work going in PyTorch is all about adding new and interesting Tensor subclasses, and this all leads up to the question of, what exactly is OK to make a tensor subclass? One answer to this question comes from an old principle from Barbara Liskov called the Liskov substitution principle, which informally can be stated as S is a subtyp…
  continue reading
 
In this episode I talk about reduced precision floating point formats float16 (aka half precision) and bfloat16. I'll discuss what floating point numbers are, how these two formats vary, and some of the practical considerations that arise when you are working with numeric code in PyTorch that also needs to work in reduced precision. Did you know th…
  continue reading
 
Today I'm going to talk about a famous issue in PyTorch, DataLoader with num_workers > 0 causes memory leak (https://github.com/pytorch/pytorch/issues/13246). This bug is a good opportunity to talk about DataSet/DataLoader design in PyTorch, fork and copy-on-write memory in Linux and Python reference counting; you have to know about all of these th…
  continue reading
 
PyTorch operates on its input data in a batched manner, typically processing multiple batches of an input at once (rather than once at a time, as would be the case in typical programming). In this podcast, we talk a little about the implications of batching operations in this way, and then also about how PyTorch's API is structured for batching (hi…
  continue reading
 
Python is a single dispatch OO language, but there are some operations such as binary magic methods which implement a simple form of multiple dispatch. torch_function__ (through its Numpy predecessor __array_function) generalizes this mechanism so that invocations of torch.add with different subclasses work properly. This podcast describes how this…
  continue reading
 
Writing multithreading code has always been a pain, and in PyTorch there are buckets and buckets of multithreading related issues you have to be aware about and deal with when writing code that makes use of it. We'll cover how you interface with multithreading in PyTorch, what goes into implementing those interfaces (thread pools!) and also some mi…
  continue reading
 
Jim Stack has been assiduously studying markets in an effort to develop and hone a full-cycle investment discipline since he was first introduced to stock market risk back in the 1973-74 bear market. That experience instilled in him the modicum of skepticism needed to successfully navigate major market turning points, both tops and bottoms, as well…
  continue reading
 
CUDA is asynchronous, CPU is synchronous. Making them play well together can be one of the more thorny and easy to get wrong aspects of the PyTorch API. I talk about why non_blocking is difficult to use correctly, a hypothetical "asynchronous CPU" device which would help smooth over some of the API problems and also why it used to be difficult to i…
  continue reading
 
We talk about gradcheck, the property based testing mechanism that we use to verify the correctness of analytic gradient formulas in PyTorch. I'll talk a bit about testing in general, property based testing and why gradcheck is a particularly useful property based test. There will be some calculus, although I've tried to keep the math mostly to int…
  continue reading
 
David Hay has been managing money for over 40 years using a tried and true approach steeped in classic value investing paired with an appreciation for technical analysis that can only be developed through vast experience in the markets. What's more, David also has a unique ability to balance a healthy respect for risk management with an openness to…
  continue reading
 
torch.use_deterministic_algorithms lets you force PyTorch to use deterministic algorithms. It's very useful for debugging! There are some errors in the recording: the feature is called torch.use_deterministic_algorithms, and there is not actually a capability to warn (this was in an old version of the PR but taken out), we just error if you hit non…
  continue reading
 
Reference counting is a common memory management technique in C++ but PyTorch does its reference counting in a slightly idiosyncratic way using intrusive_ptr. We'll talk about why intrusive_ptr exists, the reason why refcount bumps are slow in C++ (but not in Python), what's up with const Tensor& everywhere, why the const is a lie and how TensorRef…
  continue reading
 
Loading …

Quick Reference Guide