Overview
Remote training runs the CL1 neural interface on dedicated CL1 hardware while the training server runs on a separate machine with CUDA capabilities. This is the production setup for training biological neurons to play DOOM.Network Setup
You need two machines on the same network:- CL1 Device - Runs the neural interface (e.g.,
192.168.240.84) - Training Machine - Runs VizDoom and PPO training (e.g.,
192.168.1.238)
Required Ports
Ensure these UDP ports are open between the machines:- 12345 - Stimulation commands (training → CL1)
- 12346 - Spike data (CL1 → training)
- 12347 - Event metadata (training → CL1)
- 12348 - Feedback commands (training → CL1)
Quick Start
Configure IP Addresses
Before running the scripts, verify the IP addresses:On CL1 device, check On training machine, check
scripts/run_cl1.sh:scripts/run_training_server.sh:Start CL1 Interface First
On the CL1 device, run:This executes:What this does:
- Connects to training server at
192.168.1.238 - Saves recordings to
/data/recordings/doom-neuron/ - Runs neural loop at 10 Hz to avoid overstimulating neurons
Start Training Server
On the training machine (after CL1 is running), run:This executes:What this does:
- Runs in training mode with PPO reinforcement learning
- Uses CUDA for GPU acceleration
- Connects to CL1 hardware at
192.168.240.84 - Trains for up to 300 episodes
Manual Configuration
For custom setups, configure each component manually:- CL1 Device
- Training Machine
Basic Command
Full Configuration Example
Configuration Options
| Argument | Default | Description |
|---|---|---|
--training-host | required | IP address of training system |
--stim-port | 12345 | Port for receiving stimulation commands |
--spike-port | 12346 | Port for sending spike data |
--event-port | 12347 | Port for receiving event metadata |
--feedback-port | 12348 | Port for receiving feedback commands |
--tick-frequency | 10 | Neural loop frequency in Hz |
--recording-path | ./recordings | Directory for saving recordings |
Advanced Configurations
Custom Feedback Configuration
Custom Recording Paths
Watch Mode (Inference)
To run a trained policy without further training:Troubleshooting
Connection Issues
Symptom: CL1 interface can’t connect to training server Solutions:- Verify IP addresses with
ip addrorifconfig - Check firewall rules:
sudo ufw status - Test connectivity:
ping <training-host> - Ensure ports 12345-12348 are open
Timing Issues
Symptom: Training server fails to connect Solutions:- Ensure CL1 interface started first
- Wait 5-10 seconds between starting CL1 and training server
- Check that both systems are using the same tick frequency
Performance Issues
Symptom: Slow training or high latency Solutions:- Ensure machines are on same local network (avoid VPN/WAN)
- Check network latency:
ping -c 100 <cl1-host> - Monitor GPU usage:
nvidia-smi -l 1 - Reduce
--max-episodesfor testing
Output Files
CL1 Device (/data/recordings/doom-neuron/):
Stopping Training
PressCtrl+C on either machine to gracefully shutdown both systems:
- Training server sends completion signal to CL1
- CL1 interface saves neural recording and exits
- Both processes cleanup UDP sockets
- Final checkpoint is saved
Next Steps
- Configure DOOM scenarios for different training challenges
- Learn checkpoint management for resuming training
- Monitor training with TensorBoard at port 6006