Spaces:
Running
on
Zero
Running
on
Zero
/* | |
* SPDX-FileCopyrightText: Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | |
* SPDX-License-Identifier: LicenseRef-NvidiaProprietary | |
* | |
* NVIDIA CORPORATION, its affiliates and licensors retain all intellectual | |
* property and proprietary rights in and to this material, related | |
* documentation and any modifications thereto. Any use, reproduction, | |
* disclosure or distribution of this material and related documentation | |
* without an express license agreement from NVIDIA CORPORATION or | |
* its affiliates is strictly prohibited. | |
*/ | |
//------------------------------------------------------------------------ | |
// CUDA kernel parameters. | |
struct upfirdn2d_kernel_params | |
{ | |
const void* x; | |
const float* f; | |
void* y; | |
int2 up; | |
int2 down; | |
int2 pad0; | |
int flip; | |
float gain; | |
int4 inSize; // [width, height, channel, batch] | |
int4 inStride; | |
int2 filterSize; // [width, height] | |
int2 filterStride; | |
int4 outSize; // [width, height, channel, batch] | |
int4 outStride; | |
int sizeMinor; | |
int sizeMajor; | |
int loopMinor; | |
int loopMajor; | |
int loopX; | |
int launchMinor; | |
int launchMajor; | |
}; | |
//------------------------------------------------------------------------ | |
// CUDA kernel specialization. | |
struct upfirdn2d_kernel_spec | |
{ | |
void* kernel; | |
int tileOutW; | |
int tileOutH; | |
int loopMinor; | |
int loopX; | |
}; | |
//------------------------------------------------------------------------ | |
// CUDA kernel selection. | |
template <class T> upfirdn2d_kernel_spec choose_upfirdn2d_kernel(const upfirdn2d_kernel_params& p); | |
//------------------------------------------------------------------------ | |