TL;DR: Поменял 2x P104-100 (8GB) на 2x P102-100 (10GB) по 2500₽/карта. Qwen3-30B — 49 т/с (было 23), GPT-OSS — 52 т/с (было 42). Разница колоссальная: в 2x быстрее при том же энергопотреблении. Claude 4.5 остается бесспорным фаворитом по качеству, но для 80% задач локальные модели достаточны.
Почему обновился с P104 на P102?
После первого теста понял: 8GB VRAM — узкое горлышко для больших моделей (Qwen3-30B, Llama3.3-70B). Модели влезают, но swap память на CPU замедляет inference.
Цель апгрейда:
- ✅ Больше VRAM (10GB vs 8GB) = меньше swapping
- ✅ Та же цена (2500₽/карта на Avito)
- ✅ Тот же TDP (180W) = не нужен новый блок питания
Риски:
- ⚠️ P102 реже в продаже (майнеры чаще брали P104)
- ⚠️ Неизвестно, насколько реально быстрее (обзоров нет)
Железо: что поменялось
Было (Setup 1):
- 2x ASUS ROG Strix P104-100 (8GB GDDR5X)
- Цена: 2500₽ за обе
- VRAM: 16GB total
Стало (Setup 2):
- 2x P102-100 (10GB GDDR5X)
- Цена: 2500₽ за каждую = 5000₽ total (с доставкой)
- VRAM: 20GB total (+25%)
Остальное без изменений:
- CPU: 2x Xeon E5-2699 v4 (88 потоков)
- RAM: 256GB DDR4
- SSD: 1TB NVMe
- PSU: 850W (запас еще 250W)
Результаты: P102 vs P104
Основные модели (мои фавориты)
| Модель | VRAM | P104 (8GB) | P102 (10GB) | Прирост |
|---|---|---|---|---|
| Qwen3-30B-Q4_K_M | 17.3GB | 23 т/с | 49.3 т/с | 2.14x 🔥 |
| GPT-OSS-20B | - | 42 т/с | 52 т/с | 1.24x |
| Qwen3-14B-Q4_K_M | 9GB | 16 т/с | 24.4 т/с | 1.53x |
| Mistral-Small-24B | 13.4GB | 10 т/с | 15 т/с | 1.50x |
| Phi3-14B-Q5_K_M | - | 15 т/с | 22.7 т/с | 1.51x |
| Qwen3-Coder | - | - | 52.8 т/с | NEW ⭐️ |
Новые тяжелые модели (только на P102)
| Модель | VRAM | Скорость (т/с) | Примечание |
|---|---|---|---|
| DeepSeek-R1-32B | 18.5GB | 6.97 | Медленно, но качество топ для reasoning |
| Gemma3-27B | 16.2GB | 12.94 | Хорош для multilingual задач |
| Llama3.3-70B-Q3_K_M | 31.9GB | 2.43 | ❌ Слишком медленно (не рекомендую) |
| Mixtral-8x7B | 24.6GB | 12.9 | Baланс скорости/качества |
Вывод: P102 раскрывает Qwen3-30B на 100% — это главное открытие. Прирост 2.14x не только из-за VRAM, но и из-за лучшей пропускной способности памяти.
Энергопотребление: P102 эффективнее
Тесты с разным TDP
# Стандартный режим (180W/карта)
sudo nvidia-smi -pl 180 -i 0,1
# Результат: 49.3 т/с на Qwen3-30B
# Экономный режим (140W/карта)
sudo nvidia-smi -pl 140 -i 0,1
# Результат: 47.1 т/с (-4.5%, но -22% энергии!)
# Измерение ваттметром
nvidia-smi dmon -s pucvmet
# GPU 0: 175W
# GPU 1: 178W
# CPU + RAM + SSD: ~150W
# Total: 500W (vs 400W на P104)
Оптимальный режим для меня: 140W/карта
- Скорость: 47 т/с (vs 49 т/с на 180W)
- Энергия: 280W GPU + 150W система = 430W total
- Стоимость: 430W * 24ч * 30дней * 5₽/kWh = 1548₽/мес
Vs P104 на 120W:
- P104: 400W = 1440₽/мес
- P102: 430W = 1548₽/мес
- Разница: +108₽/мес за 2x скорость — очевидный выбор!
Что тестировал: промпт на креативность + код
Для сравнения моделей (и с Claude 4.5 / GPT-5) использовал универсальный промпт:
Ты - эксперт по алгоритмам и креативному мышлению. Вот задача:
Разработай простой алгоритм на Python для игры "Угадай число" (компьютер
загадывает число от 1 до 100, игрок угадывает с подсказками "больше/меньше").
Добавь креативный твист: после 5 попыток игра генерирует историю в стиле
фэнтези, где игрок - герой, а число - магический артефакт.
Обоснуй выбор структуры алгоритма (почему рекурсия или цикл?), протестируй
на примерах и объясни, как это демонстрирует баланс между эффективностью
и развлечением. Ответ должен быть на русском, длина - 250 слов.
Результаты: скорость vs качество
| Модель | Скорость | Время ответа | Код | Креативность | Структура | Общее |
|---|---|---|---|---|---|---|
| Claude 4.5 | ~80 т/с | ~4 сек | ✅ Идеальный | ⭐️⭐️⭐️⭐️⭐️ Детальная история | ✅ Безупречная | 10/10 👑 |
| GPT-5 | ~60 т/с | ~6 сек | ✅ Чистый | ⭐️⭐️⭐️⭐️ Хорошая | ✅ Четкая | 9/10 |
| Qwen3-30B-Q4 (P102) | 49 т/с | ~7 сек | ✅ Рабочий | ⭐️⭐️⭐️ Интересная | ✅ Ясная | 8/10 ⭐️ |
| GPT-OSS-20B (P102) | 52 т/с | ~6 сек | ✅ Хороший | ⭐️⭐️⭐️ Базовая | ✅ OK | 7.5/10 |
| DeepSeek-R1-32B | 7 т/с | ~45 сек | ✅ Отличный | ⭐️⭐️⭐️⭐️ Reasoning++ | ✅ Подробная | 8.5/10 🧠 |
| Qwen3-Coder | 53 т/с | ~6 сек | ✅ Компактный | ⭐️⭐️ Шаблон | ⚠️ Без обоснования | 7/10 |
| Gemma3-27B | 13 т/с | ~20 сек | ✅ Работает | ⭐️⭐️ Стандарт | ⚠️ Verbose | 6.5/10 |
| Llama3.3-70B-Q3 | 2.4 т/с | ~2 мин | ⚠️ Есть баги | ⭐️⭐️ Слабая | ❌ Нет структуры | 5/10 ❌ |
Фавориты:
- Claude 4.5 (API) — бесспорный лидер: креативность + скорость + точность
- Qwen3-30B на P102 — лучшая локальная модель (80% качества Claude за $0)
- DeepSeek-R1-32B — для сложных задач с reasoning (медленно, но умно)
Пример вывода: Claude 4.5 vs Qwen3-30B
Claude 4.5 (эталон)
import random
def guess_game():
"""Игра с фэнтези-поворотом после 5 попыток."""
secret = random.randint(1, 100)
attempts = 0
max_attempts = 5
print("🎮 Добро пожаловать в 'Поиск Кристалла'!")
while attempts < max_attempts:
try:
guess = int(input(f"\nПопытка {attempts + 1}/{max_attempts}. Угадай число (1-100): "))
except ValueError:
print("⚠️ Введи число!")
continue
attempts += 1
if guess == secret:
print(f"🎉 Победа за {attempts} {'попытку' if attempts == 1 else 'попытки'}!")
return
elif guess < secret:
print("⬆️ Число больше...")
else:
print("⬇️ Число меньше...")
# Фэнтези-история
generate_story(secret, attempts)
def generate_story(secret, attempts):
"""Генерация истории на основе числа."""
stories = {
range(1, 26): "Темные леса Нижних Земель",
range(26, 51): "Огненные пещеры Средиземья",
range(51, 76): "Ледяные вершины Севера",
range(76, 101): "Небесные острова Верхнего мира"
}
location = next(loc for r, loc in stories.items() if secret in r)
print(f"""
🧙♂️ ЛЕГЕНДА О КРИСТАЛЛЕ ВРЕМЕНИ 🧙♂️
Ты — странник по имени {input('Как тебя зовут? ')}, искавший Кристалл Времени.
Твой путь пролегал через {location}, где число {secret} хранилось веками.
За {attempts} испытаний ты не смог его найти, но получил:
- Карту с подсказкой: "Между {max(1, secret-10)} и {min(100, secret+10)}"
- Благословение Хранителя: +1 попытка
История продолжается... Попробуешь еще раз? (y/n)
""")
# Обоснование: цикл while эффективнее рекурсии (O(1) память vs O(n) стек).
# Рекурсия добавила бы "магии" (каждый уровень = новый мир), но рискует
# переполнением стека при >100 попытках. Баланс: простота + расширяемость.
if __name__ == "__main__":
guess_game()
Качество Claude:
- ✅ Обработка ошибок (
try/except) - ✅ Динамическая история на основе числа
- ✅ Расширяемость (словарь
stories) - ✅ Обоснование алгоритма с Big O
Qwen3-30B на P102 (80% качества)
import random
def guess_game():
secret = random.randint(1, 100)
attempts = 0
while attempts < 5:
guess = int(input("Угадай число (1-100): "))
attempts += 1
if guess == secret:
print(f"🎉 Победа за {attempts} попыток!")
return
elif guess < secret:
print("⬆️ Больше...")
else:
print("⬇️ Меньше...")
# Фэнтези-история
print(f"""
🧙♂️ ИСТОРИЯ ГЕРОЯ 🧙♂️
Ты - искатель приключений из деревни Кодленд, ищущий Кристалл Судьбы ({secret}).
Твой путь был тернист: {attempts} испытаний не принесли успеха.
Но старый маг шепнул: "Число лежит между {secret-15} и {secret+15}..."
Продолжишь квест? Введи 'да' для новой попытки.
""")
# Обоснование: цикл while проще рекурсии (нет риска переполнения стека).
# Для игры с <10 попытками рекурсия допустима, но цикл — стандарт в Python.
# Баланс: читаемость кода (80%) + развлечение (история после fail).
Отличия от Claude:
- ❌ Нет обработки ошибок
- ❌ Стат история (не зависит от числа)
- ✅ Код работает из коробки
- ✅ Обоснование алгоритма есть (но короче)
Вывод: Для черновиков/автоматизаций Qwen3-30B достаточен. Для продакшна — Claude.
Практические кейсы на P102
1. AI-код-ревьюер (Qwen3-Coder, 53 т/с)
# n8n workflow
Trigger: Git Webhook (push to main)
↓
HTTP Request: Получить diff
↓
HTTP Request: http://localhost:11434/api/generate
Body: {
"model": "qwen3-coder",
"prompt": "Проверь код на баги/уязвимости:\n{{$json.diff}}",
"stream": false
}
↓
Filter: IF issues found
↓
GitHub: Create issue с рекомендациями
Результат: 3-5 секунд на ревью 200 строк кода (vs 10 сек на GPT-5)
2. DeepSeek-R1 для сложных задач
Промпт:
Объясни, почему мой PHP-скрипт создает memory leak при обработке 10k+ записей
из MySQL. Вот код: [вставляю 50 строк]. Предложи 3 решения с обоснованием.
Скорость: 45 секунд (медленно)
Качество: 9/10 — нашел проблему в PDO fetchAll() без лимита
Vs Claude 4.5: Claude быстрее (6 сек), но DeepSeek дал больше альтернатив
3. Multilingual контент (Gemma3-27B)
Задача: перевести пост для блога на 3 языка (EN/RU/ES) с адаптацией культурных нюансов
Результат:
- Скорость: 20 секунд (13 т/с)
- Качество: 7/10 (хуже Claude, но для черновиков ОК)
- Стоимость: $0 vs $0.30 на Claude (100 запросов/день = экономия $9/день)
Проблемы P102 и решения
1. Llama3.3-70B слишком медленная
Ожидание: 70B параметров = топовое качество
Реальность: 2.4 т/с = 2 минуты на ответ (непригодно для работы)
Причина: квантизация Q3_K_M (3 бита) + 32GB модель на 20GB VRAM = constant swapping
Решение: ❌ Не использовать; взять Qwen3-30B или DeepSeek-R1-32B
2. Драйверы P102 на Ubuntu 22.04
Симптом: nvidia-smi показывает карты, но Ollama не видит
Решение:
# Откатить до драйвера 535 (не 545+)
sudo apt remove --purge nvidia-*
sudo apt install nvidia-driver-535
sudo reboot
# Проверка
nvidia-smi
ollama list
3. Overheating при 180W
Проблема: 78-82°C на полной нагрузке (некомфортно)
Решение:
# Кастомный fan curve через nvidia-settings
sudo nvidia-settings -a "[gpu:0]/GPUFanControlState=1" \
-a "[fan:0]/GPUTargetFanSpeed=75"
# Результат: 70-74°C при 180W
Сравнение с API: когда локально выгоднее
Стоимость (месяц, 5M токенов)
| Вариант | Стоимость | Примечание |
|---|---|---|
| Claude 4.5 | 5M * $0.015 = $75 (7500₽) | Бесспорный фаворит по качеству 👑 |
| **GPT-5 ** | 5M * $0.01 = $50 (5000₽) | Баланс цены/качества |
| Qwen3-30B (P102) | 1548₽ электр. | + 5000₽ амортизация (10 мес) = ~2050₽ |
| DeepSeek-R1 (P102) | 1548₽ электр. | Медленно, но для reasoning топ |
Окупаемость P102:
- Экономия: 7500₽ - 2050₽ = 5450₽/мес
- Железо: 5000₽ / 5450₽ = 0.9 месяцев (!!!)
Качество: Claude 4.5 — король
| Задача | Claude 4.5 | GPT-5 | Qwen3-30B (P102) | DeepSeek-R1 |
|---|---|---|---|---|
| Код (PHP/Python) | 10/10 👑 | 9/10 | 8/10 | 8.5/10 |
| Reasoning | 10/10 👑 | 9/10 | 7/10 | 9/10 ⭐️ |
| Креативность | 10/10 👑 | 8/10 | 7/10 | 6/10 |
| Русский язык | 9/10 | 8/10 | 9/10 ⭐️ | 8/10 |
| Скорость | 10/10 👑 | 9/10 | 8/10 | 4/10 |
Вывод: Claude 4.5 — безоговорочный лидер по всем параметрам. Но для 80% моих задач (автоматизации, черновики, логи) Qwen3-30B на P102 достаточен и окупается за месяц.
Выводы: P102 vs P104
✅ Почему P102 лучше
- Скорость: 2x быстрее на Qwen3-30B (49 vs 23 т/с)
- VRAM: 20GB vs 16GB = можно тяжелые модели (DeepSeek-R1, Mixtral)
- Энергоэффективность: +108₽/мес за 2x скорость — очевидный выбор
- Цена: 2500₽/карта = та же, что P104
- Новые модели: Qwen3-Coder (53 т/с) раскрывается полностью
❌ Минусы
- Редкость: P102 реже на Avito (искал 2 недели vs 3 дня для P104)
- Llama3.3-70B: не работает нормально (2.4 т/с = бесполезно)
- Тепло: 180W греется до 78°C (нужен fan curve)
Когда брать P102
- ✅ Объем > 3M токенов/мес
- ✅ Работаешь с Qwen3-30B / DeepSeek-R1 / Mixtral
- ✅ Нужна скорость 40+ т/с для real-time задач
- ✅ Готов искать карты 1-2 недели
Когда P104 достаточно
- ❌ Бюджет < 5000₽ (P104 иногда по 1000₽/карта)
- ❌ Работаешь только с Qwen3-14B / GPT-OSS-20B
- ❌ Нужно срочно (P104 всегда в наличии)
Что дальше?
Планы:
- Cтенд из 4-5 карт p102-100 — смогу ли запустить Llama3.3-70B Q4?
- Fine-tuning Qwen3-30B на моих данных (промпты + код)
- Кластер из 8x P102 для параллельного inference (мечта!)
Хочешь повторить?
- Ищи P102-100 на Avito: фильтр "10GB, до 3500₽/карта"
- Проверяй перед покупкой:
nvidia-smiскриншот от продавца - Мой Telegram: @olyanskiy_tech
Итого: P102-100 (10GB) — must-have upgrade с P104. Qwen3-30B раскрывается полностью (49 т/с), окупается за месяц. Claude 4.5 остается королём качества, но для 80% задач локальные модели достаточны при нулевых затратах на запросы.
Следующая статья: общее сравнение всех тестов + калькулятор "когда API vs когда своё железо".