CUTLASS 3.6.0 (#1850)
* v3.6 * update changelog * update readme * fix typo * fixing typos * hopper gemm with weight prefetch --------- Co-authored-by: yuzhai <yuzhai@nvidia.com> Co-authored-by: Haicheng Wu <haichengw@nvidia.com>
This commit is contained in:
co-authored by
yuzhai
Haicheng Wu
parent
0837a2a00a
commit
cc3c29a81a
@@ -718,7 +718,7 @@ bool TestAllConv2d(
|
||||
}
|
||||
|
||||
// CUTLASS DGRAD's *strided* specialization does not support split-k mode
|
||||
if ((ImplicitGemm::kConvolutionalOperator == cutlass::conv::Operator::kDgrad ||
|
||||
if ((ImplicitGemm::kConvolutionalOperator == cutlass::conv::Operator::kDgrad ||
|
||||
ImplicitGemm::kConvolutionalOperator == cutlass::conv::Operator::kDeconv) &&
|
||||
(ImplicitGemm::UnderlyingKernel::Mma::IteratorA::kStrideSupport ==
|
||||
cutlass::conv::StrideSupport::kStrided)) {
|
||||
@@ -734,6 +734,18 @@ bool TestAllConv2d(
|
||||
cutlass::from_real<typename ImplicitGemm::ElementCompute>(2.0),
|
||||
cutlass::from_real<typename ImplicitGemm::ElementCompute>(2.0));
|
||||
|
||||
passed = testbed.run(
|
||||
cutlass::conv::Conv2dProblemSize(
|
||||
{1, 56, 56, 8}, // input size (NHWC)
|
||||
{8, 1, 1, 8}, // filter size (KRSC)
|
||||
{0, 0, 0, 0}, // padding (pad_h, _, pad_w, _)
|
||||
{1, 1}, // stride (stride_h, stride_w)
|
||||
{1, 1}) // dilation (dilation_h, dilation_w)
|
||||
.reset_split_k_slices(2),
|
||||
cutlass::conv::SplitKMode::kSerial,
|
||||
cutlass::from_real<typename ImplicitGemm::ElementCompute>(2.0),
|
||||
cutlass::from_real<typename ImplicitGemm::ElementCompute>(2.0));
|
||||
|
||||
if (!passed) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -246,12 +246,18 @@ public:
|
||||
split_k_mode
|
||||
);
|
||||
|
||||
cutlass::Status status = conv3d_op.can_implement(conv3d_args);
|
||||
if (status != cutlass::Status::kSuccess) {
|
||||
std::cerr << "can_implement failed for the given problem_size: \n";
|
||||
return false;
|
||||
}
|
||||
|
||||
// find workspace requirement for parallel split-k reduction
|
||||
size_t workspace_size = Conv3d::get_workspace_size(conv3d_args);
|
||||
|
||||
cutlass::device_memory::allocation<uint8_t> workspace(workspace_size);
|
||||
|
||||
cutlass::Status status = conv3d_op.initialize(conv3d_args, workspace.get());
|
||||
status = conv3d_op.initialize(conv3d_args, workspace.get());
|
||||
|
||||
if (status != cutlass::Status::kSuccess) {
|
||||
cudaError_t error = cudaGetLastError();
|
||||
|
||||
Reference in New Issue
Block a user