Active Leaderboards
Here, will give leaderboard creators on the official leaderboard the option to provide more metadata and information about their leaderboards. This may help reduce the friction between understanding the expected input type of a leaderboard, and writing kernels. This page will likely be constantly updating.
Introductory Leaderboards
These leaderboards are designed to help you get started, and were used as examples for previous sections. They are not meant to be iterated on.
Identity Kernel (Python)
- leaderboard name:
identity_py
- description: Write a kernel that takes a list of tensors in PyTorch
List[torch.Tensor]
and returns an identicalList[torch.Tensor]
.
Identity Kernel (CUDA)
- leaderboard name:
identity_cuda
- description: Write a kernel that takes a list of tensors in memory
std::array<std::vector<float>, INT>
and returns an identicalstd::array<std::vector<float>, INT>
.
Practice Round Leaderboard
Most of these problems are derived from examples in the PMPP textbook.
Conv2D Kernel
- leaderboard name:
conv2d
- description: Given a pair of tensors
input: Tuple[torch.Tensor, torch.Tensor]
, Given an input tensor and a kernel tensor, compute the 2D convolution of the input tensor about the kernel. The data will be given to you on-device and expected to remain on-device, so there is no need to move from CPU to GPU.
Grayscale Kernel
- leaderboard name:
grayscale
- description: Given an RGB
torch.Tensor
of shape (H, W, 3) with values in [0, 1], compute the grayscale conversion. The data will be given to you on-device and expected to remain on-device, so there is no need to move from CPU to GPU.
Histogram Kernel
- leaderboard name:
histogram
- description: Given a
torch.Tensor
of shape * description: Given an RGBtorch.Tensor
of shape(size,)
, compute a histogram. The data will be given to you on-device and expected to remain on-device, so there is no need to move from CPU to GPU.
Matmul Kernel
- leaderboard name:
matmul
- description: Given a pair of matrices
input: Tuple[torch.Tensor, torch.Tensor]
, compute their multiplication. The data will be given to you on-device and expected to remain on-device, so there is no need to move from CPU to GPU.
Prefix-Sum Kernel
- leaderboard name:
prefixsum
- description: Given a 1D tensor
torch.Tensor
, compute the prefix sum. The data will be given to you on-device and expected to remain on-device, so there is no need to move from CPU to GPU.
Sort Kernel
- leaderboard name:
prefixsum
- description: Given a 1D tensor
torch.Tensor
, sort the tensor and return the sorted tensor. The data will be given to you on-device and expected to remain on-device, so there is no need to move from CPU to GPU.
Vector-Add Kernel
- leaderboard name:
vectoradd
- description: Given a pair of tensors
input: Tuple[torch.Tensor, torch.Tensor]
, add the two tensors and return it. The data will be given to you on-device and expected to remain on-device, so there is no need to move from CPU to GPU.
Vector-Sum Kernel
- leaderboard name:
vectorsum
- description: Given a pair of tensors
torch.Tensor
, compute the element-wise sum. The data will be given to you on-device and expected to remain on-device, so there is no need to move from CPU to GPU.