Forward Convolution Kernel

Open
#195 2 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 8 days

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Active
Tech stack
python, pytorch

Research direction

Start with ROADMAP.md to confirm the planned forward convolution scope, then read the existing matmul.py implementation and its conventions. Review the proposed conv1d, layout, dtype, and benchmarking questions with maintainers before coding; completion criteria are an agreed scope and implementation plan, followed by benchmarks against PyTorch F.convNd.

Written by the indexing model from the issue text.

Description

Hello, I'm interested in helping implement the forward convolution kernel, which is marked as 📅 Planned in ROADMAP.md.
After browsing through the repository, I've come up with a couple of questions/thoughts to shape the implementation direction

Design proposal:

  1. Following the existing convention that op signatures mirror PyTorch's, I plan on implementing separate variants, such as conv1d, conv2d, etc., as opposed to one master conv op
  2. I think starting with conv1d first would be more effective. Perhaps I can create a draft PR so that I can receive feedback before expanding the scope for larger dimensions
  3. bf16/fp16 inputs with FP32 accumulation. FP32 inputs via TF32 on tensor cores to match matmul.py
  4. NCHW layout
  5. Benchmark against F.convNd (cuDNN)

Questions:

  1. Are there any internal blockers or overlapping work not yet reflected in the repository that I should be aware of?
  2. Is an NHCW eventually needed or is NCHW sufficient?
  3. I am currently using an RTX 5060 Ti, meaning that if I conduct performance profiling before making a PR, my numbers likely won't be as decisive compared to a B200 card. Is that ok?

Any additional tips/help/feedback would be much appreciated. Thank you! :D

Dominant language
Python
Stars
834
Forks
92
Avg merge
8d 11h
Merged PRs (30d)
8

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from NVIDIA/TileGym

All issues in NVIDIA/TileGym

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.