187 lines
4.0 KiB
Markdown
187 lines
4.0 KiB
Markdown
# Using Existing ROCm Container for Development
|
|
|
|
## Current Status
|
|
|
|
✅ **You already have ROCm PyTorch working on the host!**
|
|
|
|
```bash
|
|
PyTorch: 2.5.1+rocm6.2
|
|
CUDA available: True
|
|
Device: AMD Radeon Graphics (Strix Halo)
|
|
Memory: 47.0 GB
|
|
```
|
|
|
|
## Recommendation: Use Host Environment
|
|
|
|
**Since your host venv already has ROCm support working, this is the simplest option:**
|
|
|
|
```bash
|
|
cd /mnt/shared/DEV/repos/d-popov.com/gogo2
|
|
source venv/bin/activate
|
|
python ANNOTATE/web/app.py
|
|
```
|
|
|
|
**Benefits:**
|
|
- ✅ Already configured
|
|
- ✅ No container overhead
|
|
- ✅ Direct file access
|
|
- ✅ GPU works perfectly
|
|
|
|
## Alternative: Use Existing Container
|
|
|
|
You have these containers running:
|
|
- `amd-strix-halo-llama-rocm` - ROCm 7rc (port 8080)
|
|
- `amd-strix-halo-llama-vulkan-radv` - Vulkan RADV (port 8081)
|
|
- `amd-strix-halo-llama-vulkan-amdvlk` - Vulkan AMDVLK (port 8082)
|
|
|
|
### Option 1: Quick Attach Script
|
|
|
|
```bash
|
|
./scripts/attach-to-rocm-container.sh
|
|
```
|
|
|
|
This script will:
|
|
1. Check if project is accessible in container
|
|
2. Offer to copy project if needed
|
|
3. Check/install Python if needed
|
|
4. Check/install PyTorch if needed
|
|
5. Attach you to a bash shell
|
|
|
|
### Option 2: Manual Setup
|
|
|
|
#### A. Copy Project to Container
|
|
|
|
```bash
|
|
# Create workspace in container
|
|
docker exec amd-strix-halo-llama-rocm mkdir -p /workspace
|
|
|
|
# Copy project
|
|
docker cp /mnt/shared/DEV/repos/d-popov.com/gogo2 amd-strix-halo-llama-rocm:/workspace/
|
|
|
|
# Enter container
|
|
docker exec -it amd-strix-halo-llama-rocm bash
|
|
```
|
|
|
|
#### B. Install Python (if needed)
|
|
|
|
Inside container:
|
|
```bash
|
|
# Fedora-based container
|
|
dnf install -y python3.12 python3-pip python3-devel git
|
|
|
|
# Create symlinks
|
|
ln -sf /usr/bin/python3.12 /usr/bin/python3
|
|
ln -sf /usr/bin/python3.12 /usr/bin/python
|
|
```
|
|
|
|
#### C. Install Dependencies
|
|
|
|
Inside container:
|
|
```bash
|
|
cd /workspace/gogo2
|
|
|
|
# Install PyTorch with ROCm
|
|
pip3 install torch --index-url https://download.pytorch.org/whl/rocm6.2
|
|
|
|
# Install project dependencies
|
|
pip3 install -r requirements.txt
|
|
```
|
|
|
|
#### D. Run Application
|
|
|
|
```bash
|
|
# Run ANNOTATE dashboard
|
|
python3 ANNOTATE/web/app.py
|
|
|
|
# Or run training
|
|
python3 training_runner.py --mode realtime --duration 4
|
|
```
|
|
|
|
### Option 3: Mount Project on Container Restart
|
|
|
|
Add volume mount to your docker-compose:
|
|
|
|
```yaml
|
|
services:
|
|
amd-strix-halo-llama-rocm:
|
|
volumes:
|
|
- /mnt/shared/DEV/repos/d-popov.com/gogo2:/workspace/gogo2:rw
|
|
```
|
|
|
|
Then restart:
|
|
```bash
|
|
docker-compose down
|
|
docker-compose up -d
|
|
```
|
|
|
|
## Port Conflicts
|
|
|
|
Your ROCm container uses port 8080, which conflicts with COBY API.
|
|
|
|
**Solutions:**
|
|
|
|
1. **Use host environment** (no conflict)
|
|
2. **Change ANNOTATE port** in container:
|
|
```bash
|
|
python3 ANNOTATE/web/app.py --port 8051
|
|
```
|
|
3. **Expose different port** when starting container
|
|
|
|
## Comparison
|
|
|
|
| Aspect | Host (venv) | Container |
|
|
|--------|-------------|-----------|
|
|
| Setup | ✅ Already done | ⚠️ Needs Python install |
|
|
| GPU | ✅ Working | ✅ Should work |
|
|
| Files | ✅ Direct access | ⚠️ Need to copy/mount |
|
|
| Performance | ✅ Native | ⚠️ Small overhead |
|
|
| Isolation | ⚠️ Shares host | ✅ Isolated |
|
|
| Simplicity | ✅ Just works | ⚠️ Extra steps |
|
|
|
|
## Quick Commands
|
|
|
|
### Host Development (Recommended)
|
|
|
|
```bash
|
|
cd /mnt/shared/DEV/repos/d-popov.com/gogo2
|
|
source venv/bin/activate
|
|
python ANNOTATE/web/app.py
|
|
```
|
|
|
|
### Container Development
|
|
|
|
```bash
|
|
# Method 1: Use helper script
|
|
./scripts/attach-to-rocm-container.sh
|
|
|
|
# Method 2: Manual attach
|
|
docker exec -it amd-strix-halo-llama-rocm bash
|
|
cd /workspace/gogo2
|
|
python3 ANNOTATE/web/app.py
|
|
```
|
|
|
|
### Check GPU in Container
|
|
|
|
```bash
|
|
docker exec amd-strix-halo-llama-rocm rocm-smi
|
|
docker exec amd-strix-halo-llama-rocm python3 -c "import torch; print(torch.cuda.is_available())"
|
|
```
|
|
|
|
## Summary
|
|
|
|
**For your use case (avoid heavy downloads):**
|
|
|
|
→ **Use the host environment** - Your venv already has everything working perfectly!
|
|
|
|
**Only use container if you need:**
|
|
- Complete isolation from host
|
|
- Specific ROCm version testing
|
|
- Multiple parallel environments
|
|
|
|
---
|
|
|
|
**Last Updated:** 2025-11-12
|
|
**Status:** Host venv with ROCm 6.2 is ready to use
|
|
|
|
|