NVIDIA / NVIDIA/cutlass

[QST] Global variable inside conv2d kernel

Open
#1,987 25 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

? - Needs Triage inactive-30d inactive-90d question
Dominant language
C++
Stars
10.5k
Forks
2.1k
Avg merge
3d 11h
Merged PRs (30d)
7

Description

What is your question?
Hello, good day. I am currently researching the Conv2dFprop kernel as I intend to modify its implementation in the library, specifically in the file https://github.com/NVIDIA/cutlass/blob/main/include/cutlass/conv/kernel/implicit_gemm_convolution.h.

This is because, whether called from a C++ or Python program on the host, this .h file is the last in the execution hierarchy and directly implements the convolution operation to be run on the GPU (in my case, NVIDIA A100 and V100).

My question is: Can a global variable be implemented within this class? I intend to assign a specific number of elements to this global variable, called multiply_tensor, which would then multiply the convolution parameters from then and the following calls to the class while the host code is still running.

I aim for this variable to be stored in GPU memory, then initialized and processed in the GPU during the first call and reused in subsequent ones. I am unsure if a global variable is a solution or if a new kernel parameter would be better.

Is this feasible?

Contributor guide

No contributing guide indexed for this repository

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.

Research direction

Start with include/cutlass/conv/kernel/implicit_gemm_convolution.h and trace the Conv2dFprop implementation and its calls. Determine whether the requested multiply_tensor state should be represented as GPU-resident state or a kernel parameter. Done means documenting a feasible approach, its lifecycle across calls, and any constraints.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
hpc, machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.