getValidAlgorithms Class — pytorch Architecture
Architecture documentation for the getValidAlgorithms class in Conv_v7.cpp from the pytorch codebase.
Entity Profile
Source Code
aten/src/ATen/native/cudnn/Conv_v7.cpp lines 240–262
template <typename perf_t>
std::vector<perf_t> getValidAlgorithms(
perf_t* perfResults,
const ConvolutionArgs& args,
int n_algo) {
std::vector<perf_t> result;
result.reserve(n_algo);
for (const auto i : c10::irange(n_algo)) {
perf_t perf = perfResults[i];
// TODO: Shouldn't all returned results be successful?
// Double check documentation for cudnnFindConvolutionForwardAlgorithmEx
if (perf.status == CUDNN_STATUS_SUCCESS) {
if (!args.params.deterministic ||
perf.determinism == CUDNN_DETERMINISTIC) {
result.push_back(perf);
}
}
}
TORCH_CHECK(
result.size() > 0, "no valid convolution algorithms available in CuDNN");
return result;
}
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free