1
00:00:00,000 --> 00:00:02,840
All right, let's dive into neuromorphic programming.

2
00:00:02,840 --> 00:00:05,840
Emerging directions for brain-inspired hardware.

3
00:00:06,720 --> 00:00:09,840
You know, it's all about figuring out how to program

4
00:00:09,840 --> 00:00:11,480
those brain-inspired computers.

5
00:00:11,480 --> 00:00:13,080
Yeah, those brain-inspired computers

6
00:00:13,080 --> 00:00:15,640
everyone's talking about really are fascinating.

7
00:00:15,640 --> 00:00:17,720
They're designed to process information more

8
00:00:17,720 --> 00:00:18,560
like our brains do.

9
00:00:18,560 --> 00:00:21,040
Yeah, potentially revolutionizing computing.

10
00:00:21,040 --> 00:00:23,680
But as this paper points out,

11
00:00:23,680 --> 00:00:26,040
figuring out how to actually program them

12
00:00:26,040 --> 00:00:27,560
is a huge challenge.

13
00:00:27,560 --> 00:00:29,440
Right, it's a huge E challenge.

14
00:00:29,440 --> 00:00:32,520
Because we can't just rely on the traditional methods we use.

15
00:00:32,520 --> 00:00:35,520
The traditional methods for programming regular computers

16
00:00:35,520 --> 00:00:37,160
just won't cut it.

17
00:00:37,160 --> 00:00:38,720
Okay, so why is that?

18
00:00:38,720 --> 00:00:41,840
Well, the paper highlights five key differences.

19
00:00:41,840 --> 00:00:43,920
Five key differences between traditional

20
00:00:43,920 --> 00:00:45,240
and brain-inspired computers.

21
00:00:45,240 --> 00:00:46,080
Yeah.

22
00:00:46,080 --> 00:00:47,600
But I think for our deep dive today,

23
00:00:47,600 --> 00:00:50,160
we should focus on the two that are most mind-boggling

24
00:00:50,160 --> 00:00:52,840
and really impact how we have to think about programming.

25
00:00:52,840 --> 00:00:54,040
Sounds good to me.

26
00:00:54,040 --> 00:00:56,040
So, let's start with plasticity.

27
00:00:56,040 --> 00:00:56,880
Okay.

28
00:00:56,880 --> 00:00:58,920
In traditional computers, the hardware stays the same

29
00:00:58,920 --> 00:01:00,440
no matter what program is running.

30
00:01:00,440 --> 00:01:04,160
But brain-inspired computers are different.

31
00:01:04,160 --> 00:01:05,040
Different how?

32
00:01:05,040 --> 00:01:08,960
They actually physically change during operation.

33
00:01:08,960 --> 00:01:09,800
Whoa!

34
00:01:09,800 --> 00:01:13,520
Imagine a computer that rewires itself as it learns.

35
00:01:13,520 --> 00:01:14,520
That's wild.

36
00:01:14,520 --> 00:01:16,520
How do we even begin to control that?

37
00:01:16,520 --> 00:01:18,160
That's one of the big questions researchers

38
00:01:18,160 --> 00:01:19,000
are grappling with.

39
00:01:19,000 --> 00:01:19,840
Yeah.

40
00:01:19,840 --> 00:01:22,680
It leads us to the second key difference, stochasticity.

41
00:01:22,680 --> 00:01:23,840
Stochasticity.

42
00:01:23,840 --> 00:01:24,960
In traditional computers,

43
00:01:24,960 --> 00:01:26,720
we want everything to be predictable.

44
00:01:26,720 --> 00:01:27,720
Yeah, you give an input,

45
00:01:27,720 --> 00:01:29,080
you get a specific output.

46
00:01:29,080 --> 00:01:29,920
Right.

47
00:01:29,920 --> 00:01:33,640
But brain-inspired systems are inherently noisy.

48
00:01:33,640 --> 00:01:34,720
Noisy.

49
00:01:34,720 --> 00:01:35,960
There's randomness built in.

50
00:01:35,960 --> 00:01:37,680
So, it's like trying to program a computer

51
00:01:37,680 --> 00:01:38,960
that has a mind of its own.

52
00:01:38,960 --> 00:01:39,960
Well, kind of.

53
00:01:39,960 --> 00:01:40,800
Yeah.

54
00:01:40,800 --> 00:01:43,280
Making decisions based on probability rather than strict rules.

55
00:01:43,280 --> 00:01:44,120
Exactly.

56
00:01:44,120 --> 00:01:45,560
Debugging that must be a nightmare.

57
00:01:45,560 --> 00:01:46,600
You can say that.

58
00:01:46,600 --> 00:01:50,560
So, these two differences, plasticity and stochasticity,

59
00:01:50,560 --> 00:01:52,720
really force us to rethink

60
00:01:52,720 --> 00:01:54,880
what it even means to program a computer.

61
00:01:54,880 --> 00:01:55,720
Exactly.

62
00:01:55,720 --> 00:01:57,440
Our usual approach is to give the computer

63
00:01:57,440 --> 00:01:59,360
a step-by-step list of instructions.

64
00:01:59,360 --> 00:02:01,200
Yeah, that's the traditional way.

65
00:02:01,200 --> 00:02:02,560
But if the hardware's changing

66
00:02:02,560 --> 00:02:04,200
and there's randomness involved,

67
00:02:04,200 --> 00:02:06,880
those instructions might not have the intended effect.

68
00:02:06,880 --> 00:02:07,720
Right.

69
00:02:07,720 --> 00:02:09,920
This paper argues that we need to move away

70
00:02:09,920 --> 00:02:14,000
from that traditional command and control style of programming

71
00:02:14,000 --> 00:02:16,600
and embrace new approaches that are more aligned

72
00:02:16,600 --> 00:02:18,360
with how brains work.

73
00:02:18,360 --> 00:02:20,360
So, what are some of those approaches?

74
00:02:20,360 --> 00:02:22,160
Well, the paper mentions a whole bunch of them.

75
00:02:22,160 --> 00:02:23,000
It does.

76
00:02:23,000 --> 00:02:25,680
Before we dive into specific methods,

77
00:02:25,680 --> 00:02:28,800
I think it's helpful to understand this overarching idea

78
00:02:28,800 --> 00:02:30,200
the author's present.

79
00:02:31,200 --> 00:02:33,120
Computing with physical systems.

80
00:02:33,120 --> 00:02:34,720
Computing with physical systems.

81
00:02:34,720 --> 00:02:36,560
It suggests that we need to consider

82
00:02:36,560 --> 00:02:38,920
the physical properties of the hardware

83
00:02:38,920 --> 00:02:41,040
as an integral part of the computation.

84
00:02:41,040 --> 00:02:43,200
So, we can't just treat the brain-inspired computer

85
00:02:43,200 --> 00:02:44,160
as a black box.

86
00:02:44,160 --> 00:02:45,640
We can't just feed it instructions

87
00:02:45,640 --> 00:02:47,200
and expect predictable outcomes.

88
00:02:47,200 --> 00:02:48,040
Right.

89
00:02:48,040 --> 00:02:50,160
We need to understand how its physical structure

90
00:02:50,160 --> 00:02:53,320
and dynamics are shaping the computation itself.

91
00:02:53,320 --> 00:02:55,280
It's like the difference between playing a piano

92
00:02:55,280 --> 00:02:56,600
and listening to a recording.

93
00:02:56,600 --> 00:02:57,440
Yes.

94
00:02:57,440 --> 00:02:59,480
With a recording, the music is fixed.

95
00:02:59,480 --> 00:03:02,000
But with a piano, the sound you produce

96
00:03:02,000 --> 00:03:04,360
depends on how you interact with the physical instrument.

97
00:03:04,360 --> 00:03:05,200
Exactly.

98
00:03:05,200 --> 00:03:06,440
It's a great analogy.

99
00:03:06,440 --> 00:03:08,760
So, in neuromorphic computing,

100
00:03:08,760 --> 00:03:11,760
the program isn't just a set of instructions.

101
00:03:11,760 --> 00:03:14,480
It's more like a description of how the computation

102
00:03:14,480 --> 00:03:16,560
will emerge from the physical interactions

103
00:03:16,560 --> 00:03:18,360
within the system.

104
00:03:18,360 --> 00:03:19,800
And that leads to a whole new way

105
00:03:19,800 --> 00:03:21,960
of thinking about programming languages.

106
00:03:21,960 --> 00:03:22,800
Right.

107
00:03:22,800 --> 00:03:24,120
Because in traditional programming,

108
00:03:24,120 --> 00:03:27,160
we use languages to write those step-by-step instructions.

109
00:03:27,160 --> 00:03:28,000
Exactly.

110
00:03:28,000 --> 00:03:30,640
But if we're not giving explicit instructions anymore,

111
00:03:30,640 --> 00:03:33,160
then what role do programming languages play?

112
00:03:33,160 --> 00:03:34,000
Yeah.

113
00:03:34,000 --> 00:03:35,720
What role do they play in this new framework?

114
00:03:35,720 --> 00:03:38,560
Well, the authors use the term programming language

115
00:03:38,560 --> 00:03:40,640
in a much broader sense.

116
00:03:40,640 --> 00:03:41,480
Broader how?

117
00:03:41,480 --> 00:03:44,000
It could be any formal language that allows us

118
00:03:44,000 --> 00:03:45,960
to communicate with the physical system

119
00:03:45,960 --> 00:03:48,720
and shape how the computation unfolds.

120
00:03:48,720 --> 00:03:50,840
So, instead of thinking of programming languages,

121
00:03:50,840 --> 00:03:53,040
it's just ways to write instructions.

122
00:03:53,040 --> 00:03:55,280
We need to consider them as ways to describe

123
00:03:55,280 --> 00:03:57,800
the computation that will emerge from the physical system.

124
00:03:57,800 --> 00:03:58,640
Precisely.

125
00:03:58,640 --> 00:04:02,080
And this leads us to a discussion of programming paradigms.

126
00:04:02,080 --> 00:04:03,440
Programming paradigm.

127
00:04:03,440 --> 00:04:06,080
The different approaches we can take to programming

128
00:04:06,080 --> 00:04:08,200
based on certain principles or theories.

129
00:04:08,200 --> 00:04:09,040
Okay.

130
00:04:09,040 --> 00:04:10,400
So, let's unpack some of those paradigms.

131
00:04:10,400 --> 00:04:11,240
Right.

132
00:04:11,240 --> 00:04:12,440
The paper talks about a whole bunch of them,

133
00:04:12,440 --> 00:04:14,840
from the familiar to the downright futuristic.

134
00:04:14,840 --> 00:04:15,680
It does.

135
00:04:15,680 --> 00:04:18,520
It covers traditional paradigms like imperative programming.

136
00:04:18,520 --> 00:04:19,640
Imperative programming.

137
00:04:19,640 --> 00:04:22,360
Where you give the computer a sequence of commands.

138
00:04:22,360 --> 00:04:23,000
Right.

139
00:04:23,000 --> 00:04:24,200
Declarative programming.

140
00:04:24,200 --> 00:04:25,360
Declarative programming.

141
00:04:25,360 --> 00:04:27,840
Where you describe the desired outcome.

142
00:04:27,840 --> 00:04:28,400
Okay.

143
00:04:28,400 --> 00:04:30,560
Rather than the specific steps.

144
00:04:30,560 --> 00:04:31,000
Yeah.

145
00:04:31,000 --> 00:04:33,000
But then it gets really interesting when it dives

146
00:04:33,000 --> 00:04:34,640
into automated programming.

147
00:04:34,640 --> 00:04:35,880
Automated programming.

148
00:04:35,880 --> 00:04:36,200
Yeah.

149
00:04:36,200 --> 00:04:38,480
That sounds like something straight out of a sci-fi movie.

150
00:04:38,480 --> 00:04:39,440
It kind of is.

151
00:04:39,440 --> 00:04:41,880
Are we talking about computers that program themselves?

152
00:04:41,880 --> 00:04:43,920
In a way, yes.

153
00:04:43,920 --> 00:04:47,080
Automated programming involves using algorithms

154
00:04:47,080 --> 00:04:48,680
to generate programs.

155
00:04:48,680 --> 00:04:49,560
Okay.

156
00:04:49,560 --> 00:04:53,080
Often based on a set of specifications or examples.

157
00:04:53,080 --> 00:04:55,080
So, the computer is doing the programming.

158
00:04:55,080 --> 00:04:56,480
In a sense, yes.

159
00:04:56,480 --> 00:04:57,480
That's wild.

160
00:04:57,480 --> 00:05:01,200
The paper highlights techniques like metaprogramming,

161
00:05:01,200 --> 00:05:03,760
program synthesis, constraint programming,

162
00:05:03,760 --> 00:05:05,280
and inductive programming.

163
00:05:05,280 --> 00:05:08,200
So, it's a way to let the computer take on more

164
00:05:08,200 --> 00:05:10,120
of the heavy lifting in the programming process.

165
00:05:10,120 --> 00:05:11,080
Exactly.

166
00:05:11,080 --> 00:05:11,360
Okay.

167
00:05:11,360 --> 00:05:12,520
So, that's automated programming.

168
00:05:12,520 --> 00:05:13,640
Right.

169
00:05:13,640 --> 00:05:16,800
What other paradigm shifting approaches

170
00:05:16,800 --> 00:05:18,320
does this paper explore?

171
00:05:18,320 --> 00:05:21,800
Well, one that's particularly relevant to neuromorphic

172
00:05:21,800 --> 00:05:23,800
computing is machine learning.

173
00:05:23,800 --> 00:05:25,120
Machine learning.

174
00:05:25,120 --> 00:05:26,240
Everyone's talking about it these days.

175
00:05:26,240 --> 00:05:26,840
It seems like it.

176
00:05:26,840 --> 00:05:29,760
How does it fit into this brain-inspired world?

177
00:05:29,760 --> 00:05:31,640
Well, machine learning can be seen

178
00:05:31,640 --> 00:05:33,760
as a type of automated programming.

179
00:05:33,760 --> 00:05:34,280
Okay.

180
00:05:34,280 --> 00:05:37,560
Instead of explicitly programming every step,

181
00:05:37,560 --> 00:05:40,960
we provide the system with data.

182
00:05:40,960 --> 00:05:43,640
And let it learn the desired behavior.

183
00:05:43,640 --> 00:05:46,560
So, in the context of neuromorphic computing,

184
00:05:46,560 --> 00:05:49,880
we're essentially training the brain-inspired computer

185
00:05:49,880 --> 00:05:51,720
to perform the desired computation.

186
00:05:51,720 --> 00:05:52,240
Needs.

187
00:05:52,240 --> 00:05:55,120
Much like we train our own brains to learn new skills.

188
00:05:55,120 --> 00:05:56,080
That's a good way to put it.

189
00:05:56,080 --> 00:05:58,440
So, we're teaching the computer instead of programming it.

190
00:05:58,440 --> 00:05:58,920
Yes.

191
00:05:58,920 --> 00:06:02,560
And the paper talks about various machine learning

192
00:06:02,560 --> 00:06:05,280
paradigms that are relevant here, including supervised

193
00:06:05,280 --> 00:06:08,520
learning, reinforcement learning, and, of course, deep learning.

194
00:06:08,520 --> 00:06:09,440
Deep learning.

195
00:06:09,440 --> 00:06:11,400
The rock star of the AI world.

196
00:06:11,400 --> 00:06:12,000
Right.

197
00:06:12,000 --> 00:06:15,480
But adapting deep learning for neuromorphic systems

198
00:06:15,480 --> 00:06:17,200
presents unique challenges.

199
00:06:17,200 --> 00:06:19,360
Because of those key differences we talked about earlier.

200
00:06:19,360 --> 00:06:20,080
Exactly.

201
00:06:20,080 --> 00:06:22,600
Plasticity and stochasticity.

202
00:06:22,600 --> 00:06:25,280
So, we can't just take the deep learning algorithms that

203
00:06:25,280 --> 00:06:27,280
work so well in traditional computing.

204
00:06:27,280 --> 00:06:30,880
And apply them directly to neuromorphic systems.

205
00:06:30,880 --> 00:06:31,520
Right.

206
00:06:31,520 --> 00:06:32,560
Not quite.

207
00:06:32,560 --> 00:06:34,040
There's got to be some adaptation.

208
00:06:34,040 --> 00:06:35,480
There's a lot of research going on

209
00:06:35,480 --> 00:06:39,000
to figure out how to adapt deep learning for these brain-inspired

210
00:06:39,000 --> 00:06:39,760
computers.

211
00:06:39,760 --> 00:06:41,920
So, we're just scratching the surface of understanding

212
00:06:41,920 --> 00:06:44,640
how to harness the power of deep learning

213
00:06:44,640 --> 00:06:46,000
in the neuromorphic world.

214
00:06:46,000 --> 00:06:47,280
Yeah, I'd say so.

215
00:06:47,280 --> 00:06:49,520
What other approaches are being explored?

216
00:06:49,520 --> 00:06:52,280
The paper also discusses some non-digital programming

217
00:06:52,280 --> 00:06:54,880
methods that are really interesting, especially

218
00:06:54,880 --> 00:06:58,400
for the types of hardware often used in neuromorphic systems.

219
00:06:58,400 --> 00:06:58,960
OK.

220
00:06:58,960 --> 00:07:01,120
These methods borrow ideas from fields

221
00:07:01,120 --> 00:07:03,920
like control engineering and signal processing.

222
00:07:03,920 --> 00:07:06,280
So, we're looking beyond the traditional world of computer

223
00:07:06,280 --> 00:07:09,640
science to tackle the challenges of neuromorphic programming.

224
00:07:09,640 --> 00:07:12,000
It's a truly interdisciplinary field.

225
00:07:12,000 --> 00:07:14,880
It requires drawing on a wide range of expertise.

226
00:07:14,880 --> 00:07:16,360
This is all so fascinating.

227
00:07:16,360 --> 00:07:18,120
It feels like we're standing on the precipice

228
00:07:18,120 --> 00:07:19,800
of a whole new era of computing.

229
00:07:19,800 --> 00:07:20,920
It does, doesn't it?

230
00:07:20,920 --> 00:07:23,120
But we're also just beginning to understand

231
00:07:23,120 --> 00:07:25,880
how to program these incredible machines.

232
00:07:25,880 --> 00:07:27,000
That's the beauty of it.

233
00:07:27,000 --> 00:07:28,880
There's so much left to explore.

234
00:07:28,880 --> 00:07:29,480
There is.

235
00:07:29,480 --> 00:07:31,400
In the next part of our deep dive,

236
00:07:31,400 --> 00:07:33,480
we'll delve into some specific approaches

237
00:07:33,480 --> 00:07:36,720
to neuromorphic programming that the paper highlights

238
00:07:36,720 --> 00:07:38,320
as particularly promising.

239
00:07:38,320 --> 00:07:39,280
I can't wait.

240
00:07:39,280 --> 00:07:42,520
Welcome back to our deep dive into neuromorphic programming.

241
00:07:42,520 --> 00:07:44,320
I'm ready to get into the nitty gritty.

242
00:07:44,320 --> 00:07:46,920
Last time we explored why programming,

243
00:07:46,920 --> 00:07:49,880
these brain-inspired computers, is so different.

244
00:07:49,880 --> 00:07:50,160
Right.

245
00:07:50,160 --> 00:07:51,280
It's a whole new world.

246
00:07:51,280 --> 00:07:53,600
Now, let's look at some specific approaches.

247
00:07:53,600 --> 00:07:53,840
OK.

248
00:07:53,840 --> 00:07:55,120
Let's get concrete.

249
00:07:55,120 --> 00:07:57,880
Researchers are exploring these to tackle this challenge.

250
00:07:57,880 --> 00:07:58,920
Oh, where do we start?

251
00:07:58,920 --> 00:08:01,440
Let's begin with neuromorphic co-design.

252
00:08:01,440 --> 00:08:02,280
Co-design.

253
00:08:02,280 --> 00:08:05,480
It's not strictly a programming paradigm,

254
00:08:05,480 --> 00:08:09,680
but rather a fundamental approach to designing these systems.

255
00:08:09,680 --> 00:08:11,600
So what exactly does that involve?

256
00:08:11,600 --> 00:08:13,960
It's all about closely integrating

257
00:08:13,960 --> 00:08:16,520
the development of both the hardware and the software.

258
00:08:16,520 --> 00:08:17,160
Together.

259
00:08:17,160 --> 00:08:19,200
Ensuring they work together seamlessly

260
00:08:19,200 --> 00:08:20,800
for a specific application.

261
00:08:20,800 --> 00:08:21,240
OK.

262
00:08:21,240 --> 00:08:24,120
Remember these brain-inspired computers?

263
00:08:24,120 --> 00:08:27,120
They use their physical properties for computation?

264
00:08:27,120 --> 00:08:30,120
So the hardware design is crucial to how we program them.

265
00:08:30,120 --> 00:08:30,880
That's right.

266
00:08:30,880 --> 00:08:32,560
It's like an architect designing a building.

267
00:08:32,560 --> 00:08:33,360
Yeah, like an architect.

268
00:08:33,360 --> 00:08:35,320
I can't just draw up a fancy blueprint.

269
00:08:35,320 --> 00:08:35,720
Right.

270
00:08:35,720 --> 00:08:39,200
They need to consider the materials, the location.

271
00:08:39,200 --> 00:08:40,760
And how everything will fit together.

272
00:08:40,760 --> 00:08:41,680
That's a great analogy.

273
00:08:41,680 --> 00:08:44,920
So co-design seems perfect for specialized applications.

274
00:08:44,920 --> 00:08:47,080
It has been very successful in developing

275
00:08:47,080 --> 00:08:49,240
specialized neuromorphic chips.

276
00:08:49,240 --> 00:08:52,760
Chips that excel at tasks like recognizing patterns?

277
00:08:52,760 --> 00:08:53,400
Yes.

278
00:08:53,400 --> 00:08:55,040
Or processing sensory data?

279
00:08:55,040 --> 00:08:56,520
Almost like artificial senses.

280
00:08:56,520 --> 00:08:57,080
Exactly.

281
00:08:57,080 --> 00:09:01,000
OK, so co-design seems perfect for specialized applications.

282
00:09:01,000 --> 00:09:03,920
But what about creating software that can adapt?

283
00:09:03,920 --> 00:09:05,480
It's a different neuromorphic system.

284
00:09:05,480 --> 00:09:08,840
To tackle a wider range of problems.

285
00:09:08,840 --> 00:09:10,760
That's where machine learning methods come in.

286
00:09:10,760 --> 00:09:11,680
Machine learning.

287
00:09:11,680 --> 00:09:13,400
Remember how we talk about machine learning?

288
00:09:13,400 --> 00:09:15,840
Yeah, letting the computer learn from data.

289
00:09:15,840 --> 00:09:18,240
Instead of giving it explicit instruction.

290
00:09:18,240 --> 00:09:20,040
It's like teaching a computer to ride a bike

291
00:09:20,040 --> 00:09:21,320
by letting it practice.

292
00:09:21,320 --> 00:09:21,920
Exactly.

293
00:09:21,920 --> 00:09:24,080
Instead of giving it a physics lecture.

294
00:09:24,080 --> 00:09:26,600
This approach is becoming increasingly popular

295
00:09:26,600 --> 00:09:28,040
in neuromorphic computing.

296
00:09:28,040 --> 00:09:28,960
Especially with what?

297
00:09:28,960 --> 00:09:33,400
Especially with the rise of spiking neural networks or SNNs.

298
00:09:33,400 --> 00:09:34,080
SNNs.

299
00:09:34,080 --> 00:09:34,960
Right.

300
00:09:34,960 --> 00:09:36,200
We touched on those before.

301
00:09:36,200 --> 00:09:38,520
Yes, they are those brain-like networks.

302
00:09:38,520 --> 00:09:40,000
They're the ones that communicate using

303
00:09:40,000 --> 00:09:41,640
spikes of electrical activity.

304
00:09:41,640 --> 00:09:44,120
Mimicking how real neurons work.

305
00:09:44,120 --> 00:09:44,640
OK.

306
00:09:44,640 --> 00:09:48,400
SNNs have the potential to be much more energy efficient.

307
00:09:48,400 --> 00:09:49,520
More efficient than what?

308
00:09:49,520 --> 00:09:51,400
Then the artificial neural networks

309
00:09:51,400 --> 00:09:53,720
used in traditional deep learning.

310
00:09:53,720 --> 00:09:54,360
Interesting.

311
00:09:54,360 --> 00:09:56,400
And they're much better at processing information

312
00:09:56,400 --> 00:09:57,960
that changes over time.

313
00:09:57,960 --> 00:10:01,280
So SNNs are like the next generation of neural networks.

314
00:10:01,280 --> 00:10:03,960
Taking inspiration directly from the brain's own communication

315
00:10:03,960 --> 00:10:04,440
system.

316
00:10:04,440 --> 00:10:05,440
OK, I see.

317
00:10:05,440 --> 00:10:07,720
Researchers are exploring different machine learning

318
00:10:07,720 --> 00:10:10,400
methods that work well with these spiking networks.

319
00:10:10,400 --> 00:10:13,400
Going beyond just adapting traditional deep learning

320
00:10:13,400 --> 00:10:14,240
techniques.

321
00:10:14,240 --> 00:10:15,240
Precisely.

322
00:10:15,240 --> 00:10:18,760
So we can't just copy and paste from the traditional world

323
00:10:18,760 --> 00:10:19,560
of AI.

324
00:10:19,560 --> 00:10:21,520
We need to develop methods tailored

325
00:10:21,520 --> 00:10:23,280
to these unique SNNs.

326
00:10:23,280 --> 00:10:24,000
I don't.

327
00:10:24,000 --> 00:10:28,720
And one particularly fascinating area is online learning.

328
00:10:28,720 --> 00:10:29,400
Online learning.

329
00:10:29,400 --> 00:10:30,200
What does that mean?

330
00:10:30,200 --> 00:10:33,280
It's all about allowing brain inspired computers

331
00:10:33,280 --> 00:10:35,680
to learn and adapt continuously.

332
00:10:35,680 --> 00:10:36,440
Continuous.

333
00:10:36,440 --> 00:10:38,240
As they interact with the world.

334
00:10:38,240 --> 00:10:41,720
So no more training offline with massive data sets.

335
00:10:41,720 --> 00:10:42,360
Exactly.

336
00:10:42,360 --> 00:10:45,360
So instead of teaching a network, everything up front.

337
00:10:45,360 --> 00:10:46,880
We let it learn on the fly.

338
00:10:46,880 --> 00:10:49,800
Kind of like how our own brains constantly adapt

339
00:10:49,800 --> 00:10:50,920
to new experiences.

340
00:10:50,920 --> 00:10:51,640
Exactly.

341
00:10:51,640 --> 00:10:53,840
And one promising way to implement this.

342
00:10:53,840 --> 00:10:55,000
Just through plasticity.

343
00:10:55,000 --> 00:10:55,800
Plasticity, right?

344
00:10:55,800 --> 00:10:58,080
Remember how we talked about brain inspired computers

345
00:10:58,080 --> 00:11:00,000
physically changing during operation?

346
00:11:00,000 --> 00:11:01,320
Yeah, they're rewiring themselves.

347
00:11:01,320 --> 00:11:03,480
Well, plasticity refers to their ability

348
00:11:03,480 --> 00:11:06,160
to modify their own structure and connection.

349
00:11:06,160 --> 00:11:06,880
Their connections.

350
00:11:06,880 --> 00:11:08,840
In response to new information.

351
00:11:08,840 --> 00:11:11,880
Almost like rewiring their circuits as they learn.

352
00:11:11,880 --> 00:11:12,440
Exactly.

353
00:11:12,440 --> 00:11:13,960
So we're not just training the network.

354
00:11:13,960 --> 00:11:16,760
We're letting it re-architect itself as it learns.

355
00:11:16,760 --> 00:11:17,720
That's mind blowing.

356
00:11:17,720 --> 00:11:21,160
The challenge, of course, is guiding that rewiring process.

357
00:11:21,160 --> 00:11:21,640
Oh, way back.

358
00:11:21,640 --> 00:11:24,360
To make sure the system learns what we want it to learn.

359
00:11:24,360 --> 00:11:25,000
Right.

360
00:11:25,000 --> 00:11:28,240
Researchers are using techniques like evolutionary algorithm.

361
00:11:28,240 --> 00:11:29,400
Evolutionary algorithm.

362
00:11:29,400 --> 00:11:30,360
And meta learning.

363
00:11:30,360 --> 00:11:30,840
OK.

364
00:11:30,840 --> 00:11:33,720
To figure out the best plasticity rules.

365
00:11:33,720 --> 00:11:34,480
Plasticity rules.

366
00:11:34,480 --> 00:11:36,880
That govern how the system modifies itself.

367
00:11:36,880 --> 00:11:41,360
OK, so online learning through plasticity is one path.

368
00:11:41,360 --> 00:11:43,360
What other approaches are out there?

369
00:11:43,360 --> 00:11:46,960
Another fascinating avenue is the use of evolutionary methods.

370
00:11:46,960 --> 00:11:48,040
Evolutionary methods.

371
00:11:48,040 --> 00:11:49,720
You know how natural selection has

372
00:11:49,720 --> 00:11:52,280
shaped the incredible diversity and complexity of life

373
00:11:52,280 --> 00:11:52,800
on Earth?

374
00:11:52,800 --> 00:11:53,040
Right.

375
00:11:53,040 --> 00:11:54,360
Survival of the fittest and all that.

376
00:11:54,360 --> 00:11:55,080
Exactly.

377
00:11:55,080 --> 00:11:57,280
So instead of designing a solution ourselves.

378
00:11:57,280 --> 00:11:59,920
We're setting up a sort of digital ecosystem

379
00:11:59,920 --> 00:12:03,520
where solutions can evolve organically.

380
00:12:03,520 --> 00:12:06,240
So a survival of the fittest but for neural networks.

381
00:12:06,240 --> 00:12:07,560
That's a great way to put it.

382
00:12:07,560 --> 00:12:09,120
And over many generations.

383
00:12:09,120 --> 00:12:12,400
The algorithm discovers incredibly efficient and effective

384
00:12:12,400 --> 00:12:13,760
network architectures.

385
00:12:13,760 --> 00:12:14,400
Exactly.

386
00:12:14,400 --> 00:12:16,440
And this approach doesn't require the network

387
00:12:16,440 --> 00:12:17,640
to be differentiable.

388
00:12:17,640 --> 00:12:21,600
Meaning it can be applied to a broader range of SNN models.

389
00:12:21,600 --> 00:12:22,080
OK.

390
00:12:22,080 --> 00:12:24,000
Including some that are difficult to train

391
00:12:24,000 --> 00:12:26,560
with traditional deep learning techniques.

392
00:12:26,560 --> 00:12:28,280
This is all incredibly fascinating.

393
00:12:28,280 --> 00:12:30,360
But I have to admit it's a lot to keep up with.

394
00:12:30,360 --> 00:12:30,920
I know.

395
00:12:30,920 --> 00:12:32,320
There are so many approaches.

396
00:12:32,320 --> 00:12:35,240
Podesign, machine learning, online learning.

397
00:12:35,240 --> 00:12:37,360
Plasticity, evolutionary methods.

398
00:12:37,360 --> 00:12:39,560
It feels like we need a whole new dictionary just to talk

399
00:12:39,560 --> 00:12:41,680
about neuromorphic programming.

400
00:12:41,680 --> 00:12:45,400
It's a rapidly evolving field with its own unique concepts

401
00:12:45,400 --> 00:12:46,360
and terminology.

402
00:12:46,360 --> 00:12:46,800
Right.

403
00:12:46,800 --> 00:12:49,200
But the key takeaway is that we're moving away

404
00:12:49,200 --> 00:12:51,560
from the old way of programming.

405
00:12:51,560 --> 00:12:53,600
The old command and control way.

406
00:12:53,600 --> 00:12:55,960
Where we dictate every step to the computer.

407
00:12:55,960 --> 00:12:57,440
Instead, we're embracing approaches

408
00:12:57,440 --> 00:12:59,400
that allow the computation to emerge.

409
00:12:59,400 --> 00:13:00,920
From the dynamic interactions.

410
00:13:00,920 --> 00:13:04,160
From the interactions within these brain inspired systems.

411
00:13:04,160 --> 00:13:07,080
It's a paradigm shift in how we think about computation

412
00:13:07,080 --> 00:13:07,600
itself.

413
00:13:07,600 --> 00:13:08,560
It really is.

414
00:13:08,560 --> 00:13:12,320
And this shift is leading to some truly ingenious approaches

415
00:13:12,320 --> 00:13:13,120
to programming.

416
00:13:13,120 --> 00:13:14,000
Let's let's next.

417
00:13:14,000 --> 00:13:15,840
In the next part of our deep dive,

418
00:13:15,840 --> 00:13:18,120
we'll explore even more of these approaches.

419
00:13:18,120 --> 00:13:18,560
Really?

420
00:13:18,560 --> 00:13:22,040
Something called spiking neuromorphic algorithms.

421
00:13:22,040 --> 00:13:22,400
OK.

422
00:13:22,400 --> 00:13:24,680
And the concept of higher abstractions.

423
00:13:24,680 --> 00:13:26,160
Stay tuned, listeners.

424
00:13:26,160 --> 00:13:28,680
Because we're just scratching the surface

425
00:13:28,680 --> 00:13:32,080
of this exciting journey into the future of computing.

426
00:13:32,080 --> 00:13:35,040
Welcome back, listeners, for the final part of our deep dive

427
00:13:35,040 --> 00:13:38,440
into the fascinating world of neuromorphic programming.

428
00:13:38,440 --> 00:13:41,400
We've explored why programming these brain inspired

429
00:13:41,400 --> 00:13:43,640
computers is such a unique challenge.

430
00:13:43,640 --> 00:13:45,120
And we've looked at some high level

431
00:13:45,120 --> 00:13:46,360
approaches for tackling it.

432
00:13:46,360 --> 00:13:46,600
Right.

433
00:13:46,600 --> 00:13:49,520
Now let's get even more concrete and see how some of these ideas

434
00:13:49,520 --> 00:13:50,680
are being put into practice.

435
00:13:50,680 --> 00:13:51,080
OK.

436
00:13:51,080 --> 00:13:51,560
Let's do it.

437
00:13:51,560 --> 00:13:54,640
We'll explore spiking neuromorphic algorithms.

438
00:13:54,640 --> 00:13:56,520
Spiking neuromorphic algorithms.

439
00:13:56,520 --> 00:13:58,760
And the concept of higher abstractions.

440
00:13:58,760 --> 00:13:59,920
Higher abstractions.

441
00:13:59,920 --> 00:14:02,120
Both of which are key to unlocking

442
00:14:02,120 --> 00:14:04,040
the true potential of these systems.

443
00:14:04,040 --> 00:14:04,280
OK.

444
00:14:04,280 --> 00:14:07,520
Let's start with these spiking neuromorphic algorithms,

445
00:14:07,520 --> 00:14:08,320
or SNAs.

446
00:14:08,320 --> 00:14:09,160
OK.

447
00:14:09,160 --> 00:14:10,480
What makes them so special?

448
00:14:10,480 --> 00:14:13,480
SNAs are algorithms specifically designed

449
00:14:13,480 --> 00:14:16,480
to work with the unique way spiking neural networks

450
00:14:16,480 --> 00:14:17,240
compute.

451
00:14:17,240 --> 00:14:19,360
So they're tailored for SNNs.

452
00:14:19,360 --> 00:14:19,800
Yes.

453
00:14:19,800 --> 00:14:23,360
Remember SNNs use spikes of electrical activity

454
00:14:23,360 --> 00:14:24,120
to communicate.

455
00:14:24,120 --> 00:14:25,880
Just like real neurons in the brain.

456
00:14:25,880 --> 00:14:28,560
Well, SNAs capitalize on these spikes

457
00:14:28,560 --> 00:14:31,560
to perform computations in a way that traditional algorithms

458
00:14:31,560 --> 00:14:32,760
simply can't.

459
00:14:32,760 --> 00:14:35,600
So SNAs are like a custom design toolkit

460
00:14:35,600 --> 00:14:37,800
for speaking the language of the brain.

461
00:14:37,800 --> 00:14:38,960
Yeah, you could say that.

462
00:14:38,960 --> 00:14:41,960
Taking advantage of those precise spikes of activity.

463
00:14:41,960 --> 00:14:42,480
Exactly.

464
00:14:42,480 --> 00:14:45,360
They leverage the timing and dynamics of these spikes.

465
00:14:45,360 --> 00:14:45,840
OK.

466
00:14:45,840 --> 00:14:49,080
To do things that are either very difficult or impossible

467
00:14:49,080 --> 00:14:50,560
for traditional algorithms.

468
00:14:50,560 --> 00:14:52,720
Can you give us some examples of what these SNAs can do?

469
00:14:52,720 --> 00:14:54,480
What kind of problems can they solve?

470
00:14:54,480 --> 00:14:57,240
The paper mentioned some really fascinating applications.

471
00:14:57,240 --> 00:14:59,400
For instance, researchers have developed SNAs

472
00:14:59,400 --> 00:15:02,600
that can perform calculations on sets of numbers.

473
00:15:02,600 --> 00:15:05,600
Nibbulate graphs, solve constraint satisfaction

474
00:15:05,600 --> 00:15:09,040
problems, and even model physical phenomena

475
00:15:09,040 --> 00:15:10,320
like the spread of heat.

476
00:15:10,320 --> 00:15:12,200
That's a pretty diverse set of applications.

477
00:15:12,200 --> 00:15:12,720
It is.

478
00:15:12,720 --> 00:15:15,600
And as we develop more sophisticated SNAs,

479
00:15:15,600 --> 00:15:18,160
we'll unlock even more of the computational power

480
00:15:18,160 --> 00:15:20,120
of these brain inspired systems.

481
00:15:20,120 --> 00:15:22,320
It sounds like SNAs have the potential

482
00:15:22,320 --> 00:15:24,960
to revolutionize many different fields.

483
00:15:24,960 --> 00:15:25,880
They absolutely do.

484
00:15:25,880 --> 00:15:26,380
OK.

485
00:15:26,380 --> 00:15:29,760
So SNAs sound incredibly powerful and versatile.

486
00:15:29,760 --> 00:15:30,160
Yeah.

487
00:15:30,160 --> 00:15:32,440
But I imagine they're also pretty complex

488
00:15:32,440 --> 00:15:33,920
to design and implement.

489
00:15:33,920 --> 00:15:35,200
Well, they can be.

490
00:15:35,200 --> 00:15:39,520
Is there any way to make programming with SNNs more

491
00:15:39,520 --> 00:15:40,280
accessible?

492
00:15:40,280 --> 00:15:41,120
More accessible.

493
00:15:41,120 --> 00:15:43,880
Especially for those of us who aren't neuroscientists

494
00:15:43,880 --> 00:15:46,080
or computer engineering wizards.

495
00:15:46,080 --> 00:15:47,120
That's a great question.

496
00:15:47,120 --> 00:15:49,840
And it brings us to the idea of higher abstractions.

497
00:15:49,840 --> 00:15:50,960
Higher abstractions.

498
00:15:50,960 --> 00:15:52,200
Think about it like this.

499
00:15:52,200 --> 00:15:55,160
When you write a program in a high level language,

500
00:15:55,160 --> 00:15:56,000
like Python.

501
00:15:56,000 --> 00:15:56,400
Python.

502
00:15:56,400 --> 00:15:56,760
OK.

503
00:15:56,760 --> 00:15:58,960
You don't have to worry about the low level details

504
00:15:58,960 --> 00:16:01,080
of how the computer's processor actually

505
00:16:01,080 --> 00:16:02,560
executes each instruction.

506
00:16:02,560 --> 00:16:03,200
Right.

507
00:16:03,200 --> 00:16:06,400
The language provides you with a higher level of abstraction.

508
00:16:06,400 --> 00:16:07,760
A higher level of abstraction.

509
00:16:07,760 --> 00:16:10,120
Allowing you to focus on the logic of your program.

510
00:16:10,120 --> 00:16:10,640
All right.

511
00:16:10,640 --> 00:16:12,760
Rather than the nitty gritty of machine code.

512
00:16:12,760 --> 00:16:14,840
It's like using a map to navigate a city.

513
00:16:14,840 --> 00:16:15,680
Yes.

514
00:16:15,680 --> 00:16:18,920
Instead of memorizing every single street in Alleyway.

515
00:16:18,920 --> 00:16:21,160
And in the world of neuromorphic programming.

516
00:16:21,160 --> 00:16:21,440
Oh, OK.

517
00:16:21,440 --> 00:16:23,960
Researchers are developing tools and frameworks

518
00:16:23,960 --> 00:16:26,440
that provide similar high level abstractions

519
00:16:26,440 --> 00:16:28,160
for working with SNNs.

520
00:16:28,160 --> 00:16:30,280
So these tools would allow us to program

521
00:16:30,280 --> 00:16:33,160
brain inspired computers without needing

522
00:16:33,160 --> 00:16:36,360
to understand all the intricate details of how

523
00:16:36,360 --> 00:16:38,360
neurons communicate and interact.

524
00:16:38,360 --> 00:16:39,360
That's the goal.

525
00:16:39,360 --> 00:16:40,680
That would be a game changer.

526
00:16:40,680 --> 00:16:44,080
These higher abstractions aim to make neuromorphic programming

527
00:16:44,080 --> 00:16:45,800
more user friendly.

528
00:16:45,800 --> 00:16:46,680
User friendly.

529
00:16:46,680 --> 00:16:47,840
And accessible.

530
00:16:47,840 --> 00:16:50,800
Opening it up to a wider range of developers.

531
00:16:50,800 --> 00:16:53,320
The paper mentions a couple of specific examples

532
00:16:53,320 --> 00:16:54,440
of these high level tools.

533
00:16:54,440 --> 00:16:55,560
Can you tell us about them?

534
00:16:55,560 --> 00:16:58,680
Of course, one example is the neural engineering framework

535
00:16:58,680 --> 00:16:59,800
or Nengo.

536
00:16:59,800 --> 00:17:00,600
Nengo.

537
00:17:00,600 --> 00:17:03,480
Nengo allows programmers to describe the computations

538
00:17:03,480 --> 00:17:05,120
they want to perform at a higher level.

539
00:17:05,120 --> 00:17:05,880
A higher level.

540
00:17:05,880 --> 00:17:08,600
Using concepts from dynamical systems theory.

541
00:17:08,600 --> 00:17:08,960
OK.

542
00:17:08,960 --> 00:17:11,600
Then it automatically translates those descriptions

543
00:17:11,600 --> 00:17:13,480
into networks of spiking neurons.

544
00:17:13,480 --> 00:17:16,720
So you don't need to be a neuroscience expert to use Nengo?

545
00:17:16,720 --> 00:17:17,600
Not necessarily.

546
00:17:17,600 --> 00:17:19,600
You can describe what you want to achieve

547
00:17:19,600 --> 00:17:21,040
in a more abstract way.

548
00:17:21,040 --> 00:17:21,880
Right.

549
00:17:21,880 --> 00:17:25,120
And Nengo takes care of all the messy details of implementing

550
00:17:25,120 --> 00:17:26,520
it with those spiking neurons.

551
00:17:26,520 --> 00:17:27,560
Exactly.

552
00:17:27,560 --> 00:17:28,240
That's incredible.

553
00:17:28,240 --> 00:17:31,480
It makes designing complex brain inspired systems much more

554
00:17:31,480 --> 00:17:33,360
accessible and intuitive.

555
00:17:33,360 --> 00:17:35,200
What's the other example of the paper highlights?

556
00:17:35,200 --> 00:17:38,440
The other example is Lava, an open source framework designed

557
00:17:38,440 --> 00:17:41,240
specifically for neuromorphic computing.

558
00:17:41,240 --> 00:17:45,360
So Lava is like a toolbox full of pre-built components

559
00:17:45,360 --> 00:17:48,200
and utilities for working with brain inspired computers.

560
00:17:48,200 --> 00:17:49,200
That's a great analogy.

561
00:17:49,200 --> 00:17:50,920
Does it have those SNAs we were talking about?

562
00:17:50,920 --> 00:17:51,480
It does.

563
00:17:51,480 --> 00:17:55,120
Lava includes a growing library of neuromorphic algorithms

564
00:17:55,120 --> 00:17:55,840
and tools.

565
00:17:55,840 --> 00:17:58,040
Including support for those SNAs we talked about.

566
00:17:58,040 --> 00:18:00,400
It also provides higher level abstractions

567
00:18:00,400 --> 00:18:02,080
for describing computations.

568
00:18:02,080 --> 00:18:02,560
OK.

569
00:18:02,560 --> 00:18:05,160
And managing the complexities of SNNs.

570
00:18:05,160 --> 00:18:07,960
It sounds like Lava is trying to build an entire ecosystem

571
00:18:07,960 --> 00:18:09,840
for neuromorphic programming.

572
00:18:09,840 --> 00:18:10,960
Kind of is.

573
00:18:10,960 --> 00:18:12,440
Giving developers everything they

574
00:18:12,440 --> 00:18:14,560
need to build sophisticated applications

575
00:18:14,560 --> 00:18:16,400
for these new types of computers.

576
00:18:16,400 --> 00:18:18,480
And the best part is that it's open source.

577
00:18:18,480 --> 00:18:19,960
Open source.

578
00:18:19,960 --> 00:18:21,440
So anyone can contribute.

579
00:18:21,440 --> 00:18:23,400
So anyone can contribute to its development

580
00:18:23,400 --> 00:18:25,720
and help push the field forward.

581
00:18:25,720 --> 00:18:28,200
This is all so incredibly exciting.

582
00:18:28,200 --> 00:18:28,760
It is.

583
00:18:28,760 --> 00:18:31,520
It feels like we're truly on the verge of a revolution

584
00:18:31,520 --> 00:18:32,280
in computing.

585
00:18:32,280 --> 00:18:32,840
I agree.

586
00:18:32,840 --> 00:18:35,680
But as we've discussed throughout this deep dive,

587
00:18:35,680 --> 00:18:37,040
it's still early days.

588
00:18:37,040 --> 00:18:38,080
Very early.

589
00:18:38,080 --> 00:18:40,920
What are some of the key challenges that lie ahead?

590
00:18:40,920 --> 00:18:43,440
One of the biggest challenges is developing

591
00:18:43,440 --> 00:18:46,680
a unified theory of neuromorphic computation.

592
00:18:46,680 --> 00:18:48,040
A unified theory.

593
00:18:48,040 --> 00:18:49,920
A framework that can bridge the gap

594
00:18:49,920 --> 00:18:52,640
between the physical dynamics of these systems

595
00:18:52,640 --> 00:18:55,880
and the abstract concepts we use to describe computation.

596
00:18:55,880 --> 00:18:58,120
We need a way to connect the language of the brain

597
00:18:58,120 --> 00:18:59,760
with the language of computer science.

598
00:18:59,760 --> 00:19:00,280
Exactly.

599
00:19:00,280 --> 00:19:01,640
Without a common framework.

600
00:19:01,640 --> 00:19:02,840
It's hard to make progress.

601
00:19:02,840 --> 00:19:05,200
It's difficult to compare different approaches,

602
00:19:05,200 --> 00:19:06,280
share knowledge.

603
00:19:06,280 --> 00:19:06,600
Right.

604
00:19:06,600 --> 00:19:08,280
And build upon each other's work.

605
00:19:08,280 --> 00:19:09,800
It sounds like a daunting challenge,

606
00:19:09,800 --> 00:19:11,600
but also an incredibly exciting one.

607
00:19:11,600 --> 00:19:12,920
It absolutely is.

608
00:19:12,920 --> 00:19:14,680
There's so much we still don't understand

609
00:19:14,680 --> 00:19:16,400
about how the brain computes.

610
00:19:16,400 --> 00:19:19,200
And those mysteries hold the key to unlocking

611
00:19:19,200 --> 00:19:21,560
the true potential of neuromorphic systems.

612
00:19:21,560 --> 00:19:24,240
We're like explorers charting a new frontier.

613
00:19:24,240 --> 00:19:26,000
And every discovery brings us closer

614
00:19:26,000 --> 00:19:29,840
to understanding the very nature of intelligence itself.

615
00:19:29,840 --> 00:19:31,320
That's beautifully put.

616
00:19:31,320 --> 00:19:33,600
And it sounds like the journey is just beginning.

617
00:19:33,600 --> 00:19:34,560
It really is.

618
00:19:34,560 --> 00:19:39,120
As we delve deeper into this world of neuromorphic programming,

619
00:19:39,120 --> 00:19:43,000
we'll not only create more powerful and efficient computers,

620
00:19:43,000 --> 00:19:46,040
but we'll also gain a deeper understanding of our own minds.

621
00:19:46,040 --> 00:19:46,920
That's a great point.

622
00:19:46,920 --> 00:19:49,640
It's been a pleasure exploring this fascinating topic

623
00:19:49,640 --> 00:19:50,320
with you.

624
00:19:50,320 --> 00:19:51,200
Likewise.

625
00:19:51,200 --> 00:19:54,320
And to our listeners, I encourage you to keep your minds

626
00:19:54,320 --> 00:19:56,480
open and your curiosity peaked.

627
00:19:56,480 --> 00:19:57,720
Curiosity peaked.

628
00:19:57,720 --> 00:19:58,440
Who knows?

629
00:19:58,440 --> 00:20:01,080
Maybe you will be the one to discover the next breakthrough

630
00:20:01,080 --> 00:20:02,400
in neuromorphic computing.

631
00:20:02,400 --> 00:20:03,960
That's a great note to end on.

632
00:20:03,960 --> 00:20:04,440
Thanks.

633
00:20:04,440 --> 00:20:06,720
Thank you for joining us on this incredible journey

634
00:20:06,720 --> 00:20:09,480
into the future of computing.

