Главный репозиторий для управления несколькими проектами: основное приложение (Main), Docker контейнеры и документация.
https://www.javadeploy.com/java-beans/module5/design-pattern-types.jsp
https://www.oreilly.com/library/view/java-enterprise-best/0596003846/ch02s01s04.html
https://www.oreilly.com/library/view/design-patterns-elements/0201633612/fm.html
https://docs.obsidian.md/Plugins/User+interface/Status+bar
Cursor, Perplexity https://linear.app/kyamovvm/project/kyaserver-monorepo-fd8e309de16d
kyaserver/
├── .cursor/ # Конфигурация и документация для Cursor
├── main-project/ # Git submodule → Main (основное приложение)
│ └── Japanese game/ # Игровой проект
├── wiki/ # Git submodule → Main.wiki (документация)
├── docker-projects/ # Docker контейнеры и примеры
│ ├── bindmount-app/ # Приложение с bind mount
│ ├── getting-started-app/ # Учебное приложение
│ └── multi-container-app/ # Мульти-контейнерное приложение
├── tests/ # Тесты корневого уровня
├── compose.yaml # Docker Compose конфигурация
├── Dockerfile # Docker образ для основного приложения
└── package.json # Зависимости корневого уровня
└── JP # Японский словарь и обучение
│ ├── agile/ # Agile система обучения (спринты, прогресс, трекинг)
│ │ ├── sprints/ # Спринты (текущий и архив)
│ │ ├── scripts/ # Скрипты автоматизации
│ │ ├── progress.md # Общий прогресс
│ │ ├── kanban.md # Доска задач
│ │ └── weekly-review.md # Еженедельные обзоры
│ └── Books/ # Книги для обучения на японском языке
└── EN # Английский словарь и обучение
git clone http://192.168.0.104:3000/KyaMovVM/kyaserver.git
cd kyaserver
git submodule update --init --recursiveКорневые зависимости (для тестов):
npm installДля каждого Docker проекта отдельно (если нужно):
cd docker-projects/bindmount-app
npm installДля основного приложения (Main):
cd main-project
# Смотрите README тамnpm test # Запустить корневые тесты
npm run test -- __tests__/novel.test.js # Конкретный тест# Запустить все контейнеры
docker-compose up -d
# Запустить specific сервис
docker-compose up -d bindmount-app# Обновить все submodules
git submodule update --remote
# Обновить конкретный submodule
cd main-project
git pull origin main
cd ..
git add main-project
git commit -m "Update main-project"# Добавить изменения в этом репозитории
git add .
git commit -m "Description"
git push
# Изменения в submodule требуют отдельного push
cd main-project
git add .
git commit -m "Description"
git push
cd ..- Main: http://192.168.0.104:3000/KyaMovVM/Main
- Main.wiki: http://192.168.0.104:3000/KyaMovVM/Main.wiki
- Kyaserver: http://192.168.0.104:3000/KyaMovVM/kyaserver
Каждый Docker проект имеет собственный package.json для своих зависимостей:
- Корневой
package.json→ только тесты и скрипты корневого уровня docker-projects/*/package.json→ зависимости контейнеровmain-project/package.json→ зависимости основного приложения
Это предотвращает конфликты версий между проектами.
Документация проекта состоит из нескольких частей:
- README.md (этот файл) — быстрый старт и основные команды
.cursor/CURSOR.md— подробное руководство для работы с Cursor AI, архитектура проекта и лучшие практикиwiki/(Git submodule) — техническая документация в формате MarkdownCURSOR_EXTENSIONS_RECOMMENDATIONS.md— рекомендации по расширениям для Cursor IDEJP/agile/— Agile система обучения японскому языку (спринты, прогресс, трекинг)
Проект включает Agile систему для изучения японского языка с учётом ограниченного времени (40+ часов работы в неделю).
Быстрый старт:
cd JP/agile
# См. QUICK_START.md для подробностейОсновные компоненты:
- Спринты (2 недели) - планирование и отслеживание прогресса
- Трекинг слов/кандзи - JSON файлы для автоматизации
- JS Game интеграция - иммерсивная практика через визуальную новеллу
- Скрипты - автоматизация добавления слов/кандзи и обновления прогресса
Цели:
- 1500 слов (N5-N4 + SSW ресторанный словарь)
- 300 кандзи (N5-N4)
- JFT-Basic 200+ (A2 уровень) - основной языковой тест (онлайн, проще JLPT)
- SSW Skills Test готовность (45 вопросов, 70 минут)
См. JP/agile/README.md и JP/agile/QUICK_START.md для подробностей.
- README.md содержит общую информацию о проекте
- Обновляйте при изменении структуры проекта, добавлении новых команд или зависимостей
- Используйте понятные заголовки и структурированные списки
- Основной файл документации для Cursor AI
- Обновляйте при значительных изменениях в архитектуре проекта
- Включайте информацию о новых технологиях, паттернах и практиках
- Добавляйте примеры частых задач и их решения
Wiki находится в отдельном репозитории (Main.wiki) и подключена как Git submodule.
Создание новой статьи:
cd wiki
# Создайте новый файл .md
# Используйте понятные имена в формате kebab-case (например: new-article.md)
# Добавьте ссылку в Home.md или соответствующем разделеРедактирование существующей статьи:
cd wiki
# Отредактируйте нужный .md файл
git add .
git commit -m "Update documentation: описание изменений"
git push
cd ..
# Обновите ссылку на submodule в основном репозитории (если нужно)
git add wiki
git commit -m "Update wiki submodule"
git pushРекомендации по форматированию:
- Используйте стандартный Markdown синтаксис
- Заголовки:
#для H1,##для H2,###для H3 - Списки:
-для маркированных,1.для нумерованных - Код:
`inline code`для фрагментов, тройные кавычки для блоков кода с указанием языка - Внутренние ссылки:
[[filename.md]](если используется Obsidian) или[текст](filename.md) - Изображения: храните в
wiki/и ссылайтесь как
Структура wiki:
Home.md— главная страница вики (точка входа)1-overview.md,2-build.md, и т.д. — нумерованные разделы документации- Специализированные файлы:
idea-submodule.md,test-node.md,dev-containers.mdи т.д.
- Обновляйте при изменении технологического стека проекта
- Добавляйте/удаляйте рекомендации по расширениям при добавлении новых технологий
- Включайте информацию о настройках и конфигурации расширений
- Актуальность: Регулярно обновляйте документацию при изменении проекта
- Ясность: Пишите понятно, используйте примеры и код
- Структура: Организуйте документацию логично, используйте оглавления
- Коммиты: Делайте отдельные коммиты для документации с понятными сообщениями
- Согласованность: Используйте единый стиль форматирования во всех файлах
- Gitea репозиторий wiki: http://192.168.0.104:3000/KyaMovVM/Main.wiki
- Подробное руководство для Cursor:
.cursor/CURSOR.md
CUDA Python экосистема для GPU-вычислений. Требуется система с CUDA-capable GPU и установленный NVIDIA CUDA Toolkit. Библиотеки устанавливаются через pip или conda.
Иерархия не менялась с момента появления CUDA:
Grid (вся задача)
└── Block (группа потоков, общая shared memory)
└── Warp (32 потока, исполняются одновременно на SM)
└── Thread (минимальная единица исполнения)
Современные Python-библиотеки абстрагируют эту модель: ты работаешь с массивами и операциями, а библиотека сама определяет grid/block конфигурацию. Ручное управление потоками и блоками нужно только при написании кастомных ядер через Numba или PyCUDA.
| Библиотека | Уровень | Назначение |
|---|---|---|
| NVIDIA CUDA Python | Низкий | Python-биндинги для CUDA Driver и Runtime API. Прямой доступ к CUDA host API. |
| PyCUDA | Низкий | Питонический доступ к CUDA API с C++ слоем. Написание raw CUDA-ядер на C внутри Python. |
| Numba | Средний | JIT-компилятор. Декоратор @cuda.jit для написания CUDA-ядер на чистом Python. Ты всё ещё оперируешь threadIdx, blockIdx, но без C/C++. |
| CuPy | Высокий | Drop-in замена NumPy/SciPy на GPU. cupy.array вместо numpy.array — остальной код без изменений. |
| Warp (NVIDIA) | Высокий | Python-фреймворк для GPU-симуляций и пространственных вычислений. JIT-компиляция ядер из Python. |
| Библиотека | Назначение |
|---|---|
| cuDF | GPU DataFrame, pandas accelerator mode. DataFrame-операции на GPU без изменения кода. |
| cuML | GPU-ускоренный scikit-learn: регрессия, кластеризация, PCA, UMAP, t-SNE и др. |
| cuGraph | Графовая аналитика на GPU: PageRank, Louvain, BFS, SSSP. |
| cuSpatial | Геопространственные операции на GPU. |
| kvikIO | Высокопроизводительный GPU-direct I/O (GDS). |
| RAPIDS RAFT | Низкоуровневые GPU-примитивы для ML: k-NN, матричные операции, кластеризация. |
| Библиотека | Назначение |
|---|---|
| PyTorch (CUDA backend) | Основной фреймворк для DL. tensor.to('cuda') — прозрачный перенос на GPU. |
| Triton (OpenAI) | Язык и компилятор для GPU-ядер. Проще чем CUDA C, мощнее чем CuPy. Используется в PyTorch 2.0 (torch.compile). |
| vLLM | Высокопроизводительный LLM inference сервер с PagedAttention. |
| TensorRT | Оптимизация и inference нейросетей. Квантизация, fusion слоёв. |
| NVIDIA NeMo | Фреймворк для обучения и fine-tuning LLM, ASR, TTS. |
| Transformer Engine | FP8 обучение трансформеров на Hopper GPU. |
# Основные библиотеки
pip install cuda-python numba cupy-cuda12x pycuda
# RAPIDS (CUDA 12)
pip install cudf-cu12 cuml-cu12 cugraph-cu12
# или через conda (рекомендуется для RAPIDS):
conda install -c rapidsai -c conda-forge -c nvidia rapids=25.02 python=3.12 cuda-version=12.8
# Deep Learning
pip install torch --index-url https://download.pytorch.org/whl/cu124
pip install triton vllm
# NVIDIA Warp
pip install warp-langОфициальные курсы и документация:
- NVIDIA DLI — Fundamentals of Accelerated Computing with CUDA Python — бесплатный курс от NVIDIA (Numba)
- NVIDIA CUDA Python Programming Guide — официальная документация
- RAPIDS Getting Started — быстрый старт в GPU Data Science
- Numba CUDA Documentation — руководство по написанию CUDA-ядер на Python
- CuPy User Guide — миграция с NumPy на GPU
Книги:
- "Programming Massively Parallel Processors" (Hwu, Kirk, El Hajj, 4th ed. 2022) — основы GPU-архитектуры и CUDA
- "CUDA by Example" (Sanders, Kandrot) — практическое введение
- "Learning Ray" (Zhu et al., O'Reilly 2023) — распределённые GPU-вычисления
Практика и туториалы:
- NVIDIA Launchpad — бесплатные GPU-лаборатории в облаке
- Google Colab — бесплатный доступ к GPU (T4), можно тестировать CuPy/Numba/PyTorch
- Triton Tutorials — написание GPU-ядер на Triton (актуально для PyTorch internals)
- CuPy Examples — примеры миграции NumPy → GPU
- RAPIDS Notebooks — Jupyter-ноутбуки с примерами cuDF, cuML, cuGraph
none
https://github.com/VMYuki/web https://gist.github.com/VMYuki/eb4bf230b47a6aba9022bebc8c160690