3.6.0 update (#2005)
* 3.6.0 update * doc and swap stuff --------- 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
e1cd8c7866
commit
3d261a5974
@@ -1159,6 +1159,37 @@ std::vector<cutlass::conv::ConvProblemShape<cutlass::conv::Operator::kDgrad, 1>>
|
||||
get_conv_problem_vector<1, cutlass::conv::Operator::kDgrad, true>() {
|
||||
using ProblemShape = cutlass::conv::ConvProblemShape<cutlass::conv::Operator::kDgrad, 1>;
|
||||
std::vector<ProblemShape> problem_shapes;
|
||||
// Test TMA truncation
|
||||
problem_shapes.push_back({
|
||||
cutlass::conv::Mode::kCrossCorrelation,
|
||||
{1, 512, 64}, // nqk
|
||||
{64, 1, 64}, // ksc
|
||||
{0}, // padding lower (pad_w)
|
||||
{0}, // padding upper (pad_w)
|
||||
{2}, // stride (stride_w)
|
||||
{1}, // dilation (dilation_w)
|
||||
1 // group
|
||||
});
|
||||
problem_shapes.push_back({
|
||||
cutlass::conv::Mode::kCrossCorrelation,
|
||||
{1, 1024, 64}, // nqk
|
||||
{64, 1, 64}, // ksc
|
||||
{0}, // padding lower (pad_w)
|
||||
{0}, // padding upper (pad_w)
|
||||
{4}, // stride (stride_w)
|
||||
{1}, // dilation (dilation_w)
|
||||
1 // group
|
||||
});
|
||||
problem_shapes.push_back({
|
||||
cutlass::conv::Mode::kCrossCorrelation,
|
||||
{1, 2048, 64}, // nqk
|
||||
{64, 1, 64}, // ksc
|
||||
{0}, // padding lower (pad_w)
|
||||
{0}, // padding upper (pad_w)
|
||||
{8}, // stride (stride_w)
|
||||
{1}, // dilation (dilation_w)
|
||||
1 // group
|
||||
});
|
||||
// non-packed input/output strides.
|
||||
// stride divides dilation
|
||||
// asymmetric padding
|
||||
|
||||
@@ -336,10 +336,17 @@ struct ConvTestbed {
|
||||
|
||||
// Scale
|
||||
if constexpr (cute::is_same_v<ActivationFunctor, cutlass::epilogue::thread::ScaledGELU_taylor<ElementCompute>> ||
|
||||
cute::is_same_v<ActivationFunctor, cutlass::epilogue::thread::ScaledGELU<ElementCompute>>) {
|
||||
cute::is_same_v<ActivationFunctor, cutlass::epilogue::thread::ScaledGELU<ElementCompute>> ||
|
||||
cute::is_same_v<ActivationFunctor, cutlass::epilogue::thread::ScaledSiLu<ElementCompute>> ||
|
||||
cute::is_same_v<ActivationFunctor, cutlass::epilogue::thread::ScaledHardSwish<ElementCompute>> ) {
|
||||
fusion_args.activation.scale = ElementCompute{1};
|
||||
}
|
||||
|
||||
// LeakyRelu
|
||||
if constexpr (cute::is_same_v<ActivationFunctor, cutlass::epilogue::thread::LeakyReLU<ElementCompute>> ) {
|
||||
fusion_args.activation.leaky_alpha = ElementCompute{0};
|
||||
}
|
||||
|
||||
cutlass::Status status = cutlass::Status::kInvalid;
|
||||
|
||||
status = conv_op.can_implement(args);
|
||||
@@ -617,8 +624,9 @@ bool TestAllConv(double alpha = 1.0, double beta = 0.0, float epsilon = 0.0f
|
||||
for (DecompositionMode decomp_mode : decomposition_modes) {
|
||||
std::vector problem_splits = {Splits{1}};
|
||||
if constexpr (UsesStreamKScheduler) {
|
||||
if (decomp_mode == DecompositionMode::Heuristic || decomp_mode == DecompositionMode::SplitK) {
|
||||
if (decomp_mode == DecompositionMode::SplitK) {
|
||||
problem_splits.push_back(Splits{2});
|
||||
problem_splits.push_back(Splits{4});
|
||||
}
|
||||
}
|
||||
for (auto splits : problem_splits) {
|
||||
|
||||
Reference in New Issue
Block a user