Abstract
A second project for the fleet's GPUs: a self-learning loop that runs entirely on the card.
- On the card: the arena, the sensors, the population of nets, the play, selection and mutation, and a hall of fame of past champions.
- Speed: 581, 462 and 419 M tank-steps a second on the GTX 1080 Ti, 1080 and 1070 Ti.
- The decisive setting: limiting registers to 128 doubled the speed.
- Learning:
- self-play against the hall alone did not learn to beat a scripted
yardstick (8.2 %);
- with sparring bots it did on whitewolf (21.9 %, 3.4 standard
errors);
- its replicate on calber fell short of the bar (14.3 %, 1.8).
orrery's steps since CI-079 are also recorded here.
I. Introduction
A. Intent
Answer, with a working program and measured numbers:
- whether a self-contained learning AI with sensors fits these cards;
- how much fits;
- how fast it runs;
- how it scales.
Then the interface redesign, which needs this project to orchestrate.
B. The prompt
we need to consider the interface from treadcore . the styling. thr rows and columns of brushed metal. Can we redesign all tabs all sub tabs and rethink about the interface progression. tell a story, help us orchestrate and add comptuers to configure in the orchestration. For example, we want to create a second project to run in cuda. Perhaps we can size something for the 8GB cards we have. Is there a neural net that we can train and retrain to keep its generations within itself. We need sensor data and a self contained loop is there a way to create a different style of self learning ai on these cards. specifically targeted for CUDA program that will stress the cards and we can use them to their maximum, at their fastest. How much of this simulation can be ran fully in cuda itself. If we can do that, can we write a lab report about general purpose traing and scaling up. and inside the gpu. we have an assessment of our fleet, we have 1070ti , 1080, 1080ti.
II. Decision Log
| # | Cause | Decision | Not chosen |
|---|---|---|---|
| D1 | One step at a time; the redesign's story needs the second project | The GPU project and its report first; the interface next | The redesign first, with a project that did not exist |
| D2 | "keep its generations within itself", "self contained loop" | Evolution with a hall of fame on the card; --save and --load for retraining | Gradient methods, which need the world differentiable or a replay buffer on the host |
| D3 | "sensor data" | Twelve rays per tank, plus bearing and own state | Full observation of the world |
| D4 | "stress the cards ... at their fastest" | One block per individual, one thread per duel, nets in shared memory (a broadcast read) | One thread per individual, weights read from DRAM |
| D5 | 190 registers gave 12 % occupancy | Measured limits of 190, 128, 80 and 64; 128 was fastest, the default | The highest occupancy |
| D6 | Pascal: FP16 at 1/64 rate, no tensor cores | FP32 | Half precision |
| D7 | CUDA 13 drops Pascal | Built with 12.9 for sm_61; noted in the Makefile | Upgrading |
| D8 | Self-play alone stalled at 8 % against the yardstick | Half the games against sparring bots of drawn skill; the rule written before the run | Changing the score |
| D9 | One seed proves little | A replicate on calber with another seed | One run |
| D10 | "How much of this simulation" | Assessed treadcore-sim and the brain part by part | Porting treadcore's sim |
III. Methods
- Build:
makeon each GPU node (nvcc -O3 -use_fast_math -gencode arch=compute_61,code=sm_61 -DHID=32 -DMINB=2). - Throughput:
./crucible --pop 2048 --gens 4 --bench.- whitewolf at MINB 1 to 4, and at H 48 and 64;
- calber and boburner at the default.
- Learning:
--pop 2048 --eps 128 --yard 10, withnvidia-smilogged every 2 s:- whitewolf, seed 7, 300 generations, hall only;
- whitewolf, seed 7, 400 generations, sparring 0.5;
- calber, seed 8, 400 generations, sparring 0.5.
- The rule: the last five yardstick reads (4,096 duels each) more than two standard errors above the hall-only run's last five.
- The records:
- crucible
docs/LAB-REPORT-GPU.md, with every table; - the run files in crucible
runs/.
- crucible
IV. Results
| Card | Mtank-steps/s | Net GFLOP/s | Power under load |
|---|---|---|---|
| GTX 1080 Ti | 581 | 2,494 | 165 W of 250 |
| GTX 1080 | 462 | 1,983 | 118 W of 215 |
| GTX 1070 Ti | 419 | 1,797 | not logged |
| Register limit | 190 | 128 | 80 | 64 |
|---|---|---|---|---|
| GTX 1080, Mtank-steps/s | 236 | 462 | 238 | 185 |
| Learning (last five reads) | Yardstick wins | Against hall only |
|---|---|---|
| hall only, whitewolf | 8.2 % ± 2.7 % | — |
| sparring, whitewolf | 21.9 % ± 3.0 % | +3.4 se, confirmed |
| sparring, calber | 14.3 % ± 2.1 % | +1.8 se, short |
Errors.
-DHbroke Thrust's headers; the macro is nowHID.- A zsh
$h:cturned an rsync target into three local folders; they were removed. - H = 64 does not launch (51.7 KB of shared memory against 48 KB). It is measured and kept as a result.
V. Discussion
It can be done, and the cards are fast at it. They are not yet at their maximum: 22 % of peak, and 55–66 % of their power. The report's VII.B orders where the rest is:
- more duels per thread;
- fewer transcendentals;
- a warp sharing a net;
- INT8
dp4a.
The learning is real but slow. Sparring opponents mattered more than the hall of fame alone. One replicate fell short, so the effect is smaller than the first run says.
treadcore's own simulation is a poor fit as a whole, and a good one in its combat core and its learned net.
Next:
- orrery's interface redesign, with treadcore and crucible as projects.
- crucible's islands across the three cards.