Welcome to Tesla Motors Club
Discuss Tesla's Model S, Model 3, Model X, Model Y, Cybertruck, Roadster and More.
Register

Neural Networks

This site may earn commission on affiliate links.
You can always convert your cuda code to openCL if you change architectures. Cuda will yield the best performance on the hardware they are using today, no reason not to use it...
CUDA might yield the best performance, but if OpenCL with AMD GPU yields performance that exceeds Tesla's needs, they would always be open to that option. My point is about the balance of power between supplier (nVidia, AMD, Intel?) and customers (Tesla, FB, Google) just so that CUDA doesn't become another X86 type monopoly.
 
  • Helpful
Reactions: Intl Professor
Apologies if it has been already discussed before. Is Tesla using CUDA platform/API to interface with the nVidia GPU processors for the Autopilot? As an investor, I find this a very crucial piece of info because the use of CUDA means Tesla is married to nVidia hardware with little or no bargaining power. Thanks.

Their current GPU hardware is an Nvidia part and they are using Nvidia libraries (written in CUDA and GPU assembly language) at the low level for that part. But the libraries they are using are just math acceleration libraries - there's nothing proprietary to Nvidia in them that is necessary to the functioning of the NN in general. If they went to an AMD GPU they would just switch over to the equivalent AMD OpenCL/assembly libraries. Or they could switch to any number of FPGAs, CPUs, or other accelerators and it wouldn't change the behavior of the NN in the least.
 
Their current GPU hardware is an Nvidia part and they are using Nvidia libraries (written in CUDA and GPU assembly language) at the low level for that part. But the libraries they are using are just math acceleration libraries - there's nothing proprietary to Nvidia in them that is necessary to the functioning of the NN in general. If they went to an AMD GPU they would just switch over to the equivalent AMD OpenCL/assembly libraries. Or they could switch to any number of FPGAs, CPUs, or other accelerators and it wouldn't change the behavior of the NN in the least.
Thanks. I am worried about the repeat of the nightmarish scenario of Mobileye demanding ownership of all the data collected through cameras. Tesla had to break relationship with them and it wasn't easy for Tesla to transition away from Mobileye solution. Only now AP 2.0/2.5 is reaching functional parity with AP1.0.
So, hypothetically speaking, if Tesla for whatever reason decides to go with AMD (GPU+ OpenCL) or Intel (CPU+FPGA), can they do it easily and quickly?
 
Apologies if it has been already discussed before. Is Tesla using CUDA platform/API to interface with the nVidia GPU processors for the Autopilot? As an investor, I find this a very crucial piece of info because the use of CUDA means Tesla is married to nVidia hardware with little or no bargaining power. Thanks.
This is not necessary true as it depends on how much of their code is general vs something that depends on a proprietary nVidia specific function that can't be replaced by an equivalent from another vendor. And even if you use OpenCL there are a lot of vendor specific extensions such that you may need to do a kernel rewrite anyways when switching hardware vendors.
 
  • Helpful
Reactions: TMSE
Thanks for this. Regarding the binocular approach and stereo references, Could Tesla use the same approach with the rear camera and the rearward looking side cameras to create depth in the drivers blind spots? If so, this could be the reason Tesla did not add more radar: They are creating depth in the blind spots with those 3 cameras.

Is there a limitation regarding positioning of two cameras in order to create depth?

There are geometric tradeoffs regarding how much effort it takes to get what degree of accuracy. And there are limitations to how much accuracy can ultimately be obtained. The front main and narrow cameras are going to be the easiest stereo pair on the car - by far. That said you can probably get depth information from the rear and repeater cameras for areas where their FOV overlap but the state of the art of that stuff is not very good today - I think mainly because nobody has put a lot of effort into making highly asymmetric long baseline stereo pairs work effectively. But the information is definitely present so you could do it if you put enough effort into it.

I'm certain Tesla is not doing that today and won't do it for quite a while. But I would hope that it eventually gets done because it seems like a really great way to supplement the car's situational awareness.
 
And to add to the "stereo" question: when AP2 first went live, there was a fair amount of evidence that only the main camera was active. But the cars still needed calibration.

Do we know what else is being calibrated? Assuming this step is pre-NN?

No idea. I'm working from physics and information principles and the network architectures. All the direct evidence comes from @verygreen.
 
  • Like
Reactions: J1mbo
Thanks. I am worried about the repeat of the nightmarish scenario of Mobileye demanding ownership of all the data collected through cameras. Tesla had to break relationship with them and it wasn't easy for Tesla to transition away from Mobileye solution. Only now AP 2.0/2.5 is reaching functional parity with AP1.0.
So, hypothetically speaking, if Tesla for whatever reason decides to go with AMD (GPU+ OpenCL) or Intel (CPU+FPGA), can they do it easily and quickly?
The difference with the Mobileye situation is that in that case you had very high level functions that Tesla had to write replacements for. I think from all the evidence we have seen so far (at least for the AP part, we haven't seen the FSD parts yet), those functions are being replaced with in-house Tesla functions, not with something from a nVidia library.
 
Thanks. I am worried about the repeat of the nightmarish scenario of Mobileye demanding ownership of all the data collected through cameras. Tesla had to break relationship with them and it wasn't easy for Tesla to transition away from Mobileye solution. Only now AP 2.0/2.5 is reaching functional parity with AP1.0.
So, hypothetically speaking, if Tesla for whatever reason decides to go with AMD (GPU+ OpenCL) or Intel (CPU+FPGA), can they do it easily and quickly?

That won't happen - they can switch pretty easily.
 
Yes, and Tesla is rumored to be designing their own NN silicon, so when they next switch, it’ll be to their own chips if the rumor is true and they are successful.

I totally agree. I think I posted some stuff a while back about how much performance gain you can get from a dedicated stochastic array chip like google did with their first generation TPU. NN dataflow is a-priori determined, unlike programs that have conditional branches, so the optimal chip architecture for it is very different from what you see going into chips and gpus and most of the really fast silicon out there today. Not a little different - really different. That's the main reason google could knock together that simple, but large, chip and have such amazing performance right out of the gate.

Because IC incumbents like AMD/Intel/Nvidia have such a strong incentive to leverage their existing IP they are not going to do anything that's a clean sheet design. They don't want to be competing with startups on an even playing field if they can avoid it. That creates this moment in time we have today where a company can get a decent team together and make a custom IC that outperforms the best that the incumbents can offer. Right now it makes perfect sense for Tesla to make their own chip. It's doable at reasonable cost, it makes them more independent, and gives their cars even more proprietary content. It's a powerful way to extend the differentiation that they have today well into the future.

Frankly, you'd have to be stupid to *not* do it right now.
 

We'll see. In the beginning Nervana's secret sauce had more to do with software that maps data analytics onto their platform hardware than anything else - they weren't originally a neural network company. But they did really novel, creative, and unproven stuff. But since they got bought out it seems like Intel is using Nervana to sell cloud infrastructure to people who want to do analytics at fortune 1000 companies. Whether they will try to seriously try to break out of being a pure CPU company, or whether they will use Nervana, MobileEye and so forth as a marketing tool to try to appear relevant remains to be seen.

I've seen Intel fail at this game so many times that I'm pretty skeptical about their efforts in deep learning hardware. They've bought zillions of startups over the years and branched into lots of different areas, but in the end they always go back to CPUs and big-iron servers because that's where they make real money. Kind of like Microsoft who, despite the biggest private research budget out there has never managed to make serious money on anything except Windows and Office. But Intel has the best chip designers and by far the best chip fab technology. If they really wanted to they could own any chip market, though paradoxically they might end up making less money if they actually did that. And those guys are all about making money.
 
Here’s a better article about Intel’s upcoming neuromorphic AI chip, Loihi.

Why Intel built a neuromorphic chip | ZDNet

I’m actually pretty jazzed about the Intel chip. I’ve been following the SpiNNaker project for several years, and the Intel effort seems to be a much better funded version of it. No one uses spiking neural nets for commercial applications yet, but it has the potential to be a game changer.
 
  • Informative
Reactions: Intl Professor
Interesting links! Here’s a look at Google’s AI chip. Google developed it in 15 months. I wonder how long it will take Tesla to develop theirs?

An in-depth look at Google’s first Tensor Processing Unit (TPU) | Google Cloud Big Data and Machine Learning Blog | Google Cloud Platform

Nice find! I hadn't seen that article - it's a nice explanation.

Rule of thumb for developing a new chip that's at a small node is a 9 months for design and 9 months for fabrication (from tape out to working chips in sample quantities). But a big question right now is just what do you put inside the chip. One thing holding back the new NN chips right now is that the state of the art changes so fast that by the time you get your silicon back it's no longer on the cutting edge. Just two weeks ago a group discovered a new activation function that's even better than RELU - be a shame to miss out on something like that. I think that's preventing a lot of people from pulling the trigger, but somehow I think Tesla would probably pull the trigger and just go with it. They seem like that kind of company.
 
First, this recent comic is very timely: Sandra and Woo » [0934] Call Me A Skeptic | The comedy webcomic

The info in this thread is great, but I just wanted to look at the big picture and possibly clear up any misconceptions. So far, the only thing all production NNs do is identify patterns. The Tesla and Mobileye NNs identify lane markers, signposts, cars, etc. What they don't do is a very long list. They don't give the car steering and accelerator inputs, that's done by traditional programming. They don't "understand" what they are looking at.

Several years ago, IBM had a typical IBM PR announcement where they said their latest BlueGene computer simulated the brain of a cat. You might think that means they had a working neural net that was as smart as a cat brain. But what they had actually done was to program the same number of simulated neurons and synapses that is in a cat's cortex, gave it completely random weights and connections, and then ran it, and I think it still ran much slower that a cat's cortex would have. But the point is, they still had ZERO idea of how to actually construct a working cat's brain.

As far as actual artificial intelligence goes, we aren't that much farther along today. For instance, we have no idea how the brain understands and processes language. Reasoning? Ha!

We are at the point in AI research where people are still trying to perfect and understand the basics of how a single processing unit works (neuron or other), while using that very imperfect knowledge to do some pretty simple things.

There are groups that are tackling the bigger issues of how do you assemble these NNs into something that resembles human intelligence. Numenta is one research group, and their latest paper gives you an idea of where they are: Numenta.com • A Theory of How Columns in the Neocortex Enable Learning the Structure of the World
 
....
The info in this thread is great, but I just wanted to look at the big picture and possibly clear up any misconceptions.

As far as actual artificial intelligence goes, we aren't that much farther along today. For instance, we have no idea how the brain understands and processes language. Reasoning? Ha! ...
I do not think that AI has to duplicate human brain.
 
  • Like
Reactions: J1mbo
If it's still a crash mitigation system (like AP1) it's only designed to reduce the severity of the crash. So the example case you described was not a false negative at all.

AEB wasn't just a crash mitigation system even in AP1. The NHTSA report into the Florida crash gave quite a lot of detail on the behaviour of AP1, in particular as well as the two well-known modes of operation:
  • Collision warning - the car detects a potential (but not yet inevitable) collision and sounds a warning but does not intervene.
  • AEB - the car detects an inevitable collision and apples the brakes to mitigate it.
There's a third mode:
  • The car has detected a potential (avoidable) collision and the driver starts to depress the brake pedal: the AEB immediately converts that into a 100% brake application.
 
Wow this thread took off while I was away! Trying to process all of this now... @jimmy_d thanks for invaluable input as always.

Listen, it seems everyone is in agreement that Tesla's NN is "just" doing image classification stuff - recognizing objects and sending information about the world to some other software processes in the car. But how does that actually work? What SW is responsible for the actual decision making; if to brake, if to steer, if to accelerate?

Say the radar pings a car, cameras confirm. APE concludes it's a car ahead of you. Great success. But what does APE do next? Does it talk directly with Bosch's iBooster, the power steering, the inverter, or is there an intermediary? Is that the gateway? Can someone explain this? @verygreen?
 
  • Like
Reactions: strangecosmos