Binary Serialization For The Hopfield Dictionary
Автор: Marko Grdinic (Ghostlike)
Загружено: 2025-10-30
Просмотров: 46
Описание:
We did a little bit in Eigen at the start of the video, change the host Cuda backend to remove the `thrust::vector` as the primary array data type, begin work on the pickler, add a new feature to the language that we don't end up using, and finally complete the new picklers. Their implementation uses GADTs and is easier to deal with than the old one.
The main reason for the redesign is that we needed an alternative binary format that would work better with the Hopfield dictionaries. The old wouldn't have done a proper job, and in fact, we suspect this might have factored into some of the underperformance of our past neural network experiments. The main reason of course was that the existing RL (as of late 2025) algorithms are trash.
Tabular RL is the only thing that works well, and needs to be respected for that, but it has notable scaling limitations. It is our hope that in the following videos we'll be able to lift some of them.
---
#spiral #functionalprogramming #machinelearning #reinforcementlearning #programming #cpp #programminglanguage #compiler #parallelprogramming #cuda #gpu
Playlist(HD-CFR): • Hopfield Dictionary CFR
Playlist(Staged FP in Spiral): • Staged Functional Programming In Spiral
Spiral: https://github.com/mrakgr/The-Spiral-...
Spiral's ML Library: https://github.com/mrakgr/Spiral-s-ML...
Github: https://github.com/mrakgr/
If you have interesting work opportunities and require an expert functional programmer, don't hesitate to get in touch. My email is on my Github profile. Put "Work" as the subject in order to avoid the spam filters.
Music: • 🕯️ Witch Dance of Darkness 🔥 Epic Metal Sp...
00:00:00 - Start
00:00:04 - Installing Eigen
00:03:51 - Implementing Hopfield dictionaries using the Eigen linear algebra library
00:21:26 - Splitting the implementation into its own library
00:29:08 - Can we do 8 bit matmults in Eigen?
00:34:08 - Changing the matrix types from doubles to floats
00:34:14 - Was it a good idea to make the arrays on the host side `thrust::device_vector`s?
00:37:30 - "We'll have to leave the subgame solving for last"
00:40:06 - Replacing the `thrust::device_vector` with regular pointer arrays in the Cuda host backend
00:43:05 - Review of the pickler
00:49:05 - Thinking about a redesign
00:51:46 - GADT re-implementation of the pickler library
01:13:07 - Should we introduce a new construct to the language in order to allow type variable bindings in annotations?
01:15:35 - Investigating the weird type inference bug in Spiral
01:22:14 - An embarrassing addition to the Spiral manual
01:31:13 - Starting work on the pickler
01:38:52 - "What are higher ranked types and GADTs good for? If anyone asks, show them this library."
01:50:34 - Adding the `if type` expression to the Spiral language
02:12:47 - There is no need for the && operator in `if type`
02:16:21 - Implementing the alt case for the pickler
02:34:40 - The unpickler
03:01:01 - A case of "if it compiles, it works"
Повторяем попытку...
Доступные форматы для скачивания:
Скачать видео
-
Информация по загрузке: