| name | tig-innovator |
| description | Build, test, and optimize algorithms for The Innovation Game (TIG) - a decentralized platform for algorithmic innovation. Use this skill when:
(1) Writing CUDA/Rust code for TIG challenges from mathematical derivations
(2) Building Docker containers to test TIG algorithms
(3) Testing algorithms within the TIG framework
(4) Modifying algorithms and benchmarking performance
(5) Optimizing hyperparameters across multiple runs
(6) Working with TIG challenges: Boolean Satisfiability, Vehicle Routing, Knapsack, Vector Search, Hypergraph, Neural Network Optimizer
|
TIG Innovator
Build and optimize algorithms for The Innovation Game.
Quick Reference
TIG Docs: https://docs.tig.foundation/innovating/code-submission
Algorithm Structure (in tig-algorithms/src/<challenge>/<algorithm_name>/):
mod.rs - Rust implementation with solve_challenge() and help()
kernels.cu - CUDA kernels (GPU challenges)
README.md - Submission metadata
Docker Testing:
docker run -it -v $(pwd):/app ghcr.io/tig-foundation/tig-monorepo/<CHALLENGE>/dev:latest
build_algorithm <name>
test_algorithm <name> <TRACK> <HYPERPARAMETERS>
docker run -it --gpus all -v $(pwd):/app ghcr.io/tig-foundation/tig-monorepo/<CHALLENGE>/dev:latest
Workflow
1. Implement Algorithm from Mathematical Derivation
- Read the mathematical derivation (PDF or description)
- Identify the core optimization/update equations
- Map equations to the optimizer API:
optimizer_init_state() - Initialize buffers, set hyperparameters
optimizer_query_at_params() - Optional parameter proposal (lookahead schemes)
optimizer_step() - Compute weight updates from gradients
CUDA Kernel Pattern (see references/tig-structure.md):
extern "C" __global__ void kernel_name(
const float* input,
const int n,
// hyperparameters...
float* output
) {
int idx = blockIdx.x * blockDim.x + threadIdx.x;
if (idx < n) {
// Compute output[idx]
}
}
Rust Launch Pattern:
let kernel = module.load_function("kernel_name")?;
let cfg = LaunchConfig {
grid_dim: ((n + THREADS_PER_BLOCK - 1) / THREADS_PER_BLOCK, 1, 1),
block_dim: (THREADS_PER_BLOCK, 1, 1),
shared_mem_bytes: 0,
};
unsafe {
stream.launch_builder(&kernel)
.arg(&input).arg(&(n as i32))
.arg(&mut output)
.launch(cfg)?;
}
2. Register Algorithm
Update tig-algorithms/src/<challenge>/mod.rs:
pub mod <algorithm_name>;
pub use <algorithm_name> as c00X_aXXX;
3. Build and Test
See references/testing.md for complete Docker workflow.
docker run -it --gpus all -v $(pwd):/app ghcr.io/tig-foundation/tig-monorepo/<CHALLENGE>/dev:latest
build_algorithm <algorithm_name>
test_algorithm <algorithm_name> default '{"num_hidden_layers": 2, "accuracy_factor": 500}'
4. Benchmark and Optimize
Use scripts/benchmark.py for systematic hyperparameter search:
python scripts/benchmark.py \
--algorithm <name> \
--challenge <challenge> \
--param learning_rate 0.0001 0.001 0.01 \
--param beta1 0.9 0.95 0.99 \
--runs 5
5. Submit
Create README.md with required metadata:
# TIG Code Submission
## Submission Details
* **Challenge Name:** <challenge>
* **Algorithm Name:** <algorithm_name>
* **Copyright:** <year> <owner>
* **Identity of Submitter:** <identity>
* **Identity of Creator of Algorithmic Method:** <identity>
* **Unique Algorithm Identifier (UAI):** null
References