Skip to content

Latest commit

History

History
145 lines (102 loc) 路 3.97 KB

File metadata and controls

145 lines (102 loc) 路 3.97 KB

Contribuir a T-Tensor

隆Gracias por querer aportar a T-Tensor!
Nos emociona construir este mini-framework de Deep Learning con CUDA junto a la comunidad.

Si te gusta aprender c贸mo funciona un framework por dentro, este repo es un gran lugar para colaborar.

驴C贸mo puedes ayudar?

Puedes contribuir de muchas formas, incluso si no eres experto en CUDA.

  • Reportando bugs con pasos claros para reproducir.
  • Mejorando la documentaci贸n y ejemplos de uso en Python.
  • Proponiendo o implementando nuevas operaciones de tensor.
  • Optimizando kernels CUDA existentes.
  • A帽adiendo capas, funciones de p茅rdida u optimizadores.
  • Mejorando manejo de memoria y rendimiento en GPU.
  • Mejorando mensajes de error y experiencia de desarrollador.
  • Ayudando a probar en distintos entornos de Windows/CUDA.

Herramientas necesarias

Para contribuir localmente, recomendamos este entorno:

  • Git
  • Python 3.12+
  • CMake 3.18+
  • CUDA Toolkit (idealmente 12.x)
  • Visual Studio Build Tools o Visual Studio con compilador MSVC C++
  • PowerShell (Windows)

Entorno recomendado de compilacion nativa en este repo:

  • Visual Studio 18 2026 (x64)

Dependencias Python principales del proyecto:

  • pybind11
  • setuptools
  • wheel

Compatibilidad probada:

  • OS: Windows 10/11
  • Python: 3.12.x
  • CUDA Toolkit: 12.8
  • Visual Studio: 18 2026 (x64)
  • CMake: 3.18+

Configuraci贸n r谩pida del entorno (Windows)

  1. Haz fork del repositorio en GitHub.
  2. Clona tu fork y entra a la carpeta del proyecto.
  3. Crea y activa un entorno virtual.
  4. Instala el proyecto desde fuente.

Ejemplo:

git clone <URL_DE_TU_FORK>
cd T-Tensor
python -m venv venv
.\venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install .
python -m pip install -r requirements-dev.txt

Verificaci贸n b谩sica

Despu茅s de instalar, valida que el m贸dulo cargue correctamente:

python -c "import ttensor; print('OK')"

Si esto imprime OK, ya est谩s listo para contribuir.

Verificaci贸n de compilaci贸n nativa (Visual Studio 18 2026)

Desde la ra铆z del proyecto:

$PYBIND11_DIR = python -c "import pathlib, pybind11; print((pathlib.Path(pybind11.__file__).resolve().parent / 'share' / 'cmake' / 'pybind11').as_posix())"
cmake -S . -B build -G "Visual Studio 18 2026" -A x64 -DCMAKE_CUDA_FLAGS="--allow-unsupported-compiler" -Dpybind11_DIR="$PYBIND11_DIR"
cmake --build build --config Release

Pruebas r谩pidas despu茅s del build:

python -c "import ttensor; print('OK')"
python examples/xor_cpu.py
python -m pytest -q tests

Flujo recomendado para contribuir

  1. Crea una rama para tu cambio.
  2. Haz cambios peque帽os y claros.
  3. Verifica que el proyecto siga compilando/instalando.
  4. Abre un Pull Request con una descripci贸n concreta.

Ejemplo de nombres de rama:

  • feat/nueva-op-matmul
  • fix/cuda-memory-leak
  • docs/mejorar-readme

Buenas pr谩cticas para Pull Requests

  • Explica el problema y la soluci贸n.
  • Incluye pasos para probar el cambio.
  • Si aplica, agrega ejemplo m铆nimo en Python.
  • Mant茅n el alcance del PR enfocado (mejor varios PR peque帽os que uno gigante).
  • S茅 respetuoso y abierto al feedback durante la revisi贸n.

Ideas de contribuci贸n para empezar

Si quieres una tarea de inicio, estas suelen ser muy 煤tiles:

  • Corregir tipos y mejorar claridad del readme.
  • A帽adir ejemplos de entrenamiento con modelos simples.
  • Mejorar mensajes de error al fallar la inicializaci贸n de GPU.
  • Agregar validaciones extra en operaciones de tensor.
  • Documentar limitaciones actuales y pr贸ximos pasos.

驴Encontraste un problema?

Abre un Issue con esta informaci贸n:

  • Qu茅 esperabas que pasara.
  • Qu茅 pas贸 realmente.
  • Pasos para reproducir.
  • Tu entorno (Python, CUDA, GPU, Windows).
  • Log o error completo si es posible.

C贸digo de convivencia

Queremos una comunidad amable, t茅cnica y colaborativa.
Toda contribuci贸n con buena intenci贸n es bienvenida.


隆Gracias por sumarte! Tu aporte ayuda a que T-Tensor sea m谩s s贸lido, m谩s r谩pido y m谩s 煤til para todos.