v4.5 tag update (#3202)

* Python DSL examples reorganization.

* v4.5 tag update.
This commit is contained in:
Junkai-Wu
2026-05-05 20:55:27 -04:00
committed by GitHub
parent f74fea9ce3
commit cb37157db5
351 changed files with 36688 additions and 8117 deletions
@@ -296,9 +296,9 @@ TEST(SM100_device_conv3d_dgrad_implicitgemm_f16ndhwc_f16ndhwc_f16ndhwc_tensor_op
//
// CTA tile shape 64x64x64
// preferred cluster shape 2x4x1
// fallback cluster shape 2x2x1
// fallback cluster shape 2x4x1
//
TEST(SM100_device_conv3d_dgrad_implicitgemm_f16ndhwc_f16ndhwc_f16ndhwc_tensor_op_f16, 64x64x64_preferred_2x4x1_fallback_2x2x1) {
TEST(SM100_device_conv3d_dgrad_implicitgemm_f16ndhwc_f16ndhwc_f16ndhwc_tensor_op_f16, 64x64x64_preferred_2x4x1_fallback_2x4x1) {
using ElementAct = cutlass::half_t;
using ElementFlt = cutlass::half_t;
using ElementOut = cutlass::half_t;
@@ -338,7 +338,7 @@ TEST(SM100_device_conv3d_dgrad_implicitgemm_f16ndhwc_f16ndhwc_f16ndhwc_tensor_op
using Conv = cutlass::conv::device::ConvUniversalAdapter<ConvKernel>;
EXPECT_TRUE(test::conv::device::TestAllConv<Conv>(1.0, 0.0, 0.0f, dim3(2,4,1), dim3(2,2,1)));
EXPECT_TRUE(test::conv::device::TestAllConv<Conv>(1.0, 0.0, 0.0f, dim3(2,4,1), dim3(2,4,1)));
}
#endif // defined(CUTLASS_ARCH_MMA_SM100_SUPPORTED)
@@ -301,9 +301,9 @@ TEST(SM100_device_conv3d_fprop_implicitgemm_f16ndhwc_f16ndhwc_f16ndhwc_tensor_op
//
// CTA tile shape 64x64x64
// preferred cluster shape 2x4x1
// fallback cluster shape 2x2x1
// fallback cluster shape 2x4x1
//
TEST(SM100_device_conv3d_fprop_implicitgemm_f16ndhwc_f16ndhwc_f16ndhwc_tensor_op_f16, 64x64x64_preferred_2x4x1_fallback_2x2x1) {
TEST(SM100_device_conv3d_fprop_implicitgemm_f16ndhwc_f16ndhwc_f16ndhwc_tensor_op_f16, 64x64x64_preferred_2x4x1_fallback_2x4x1) {
using ElementAct = cutlass::half_t;
using ElementFlt = cutlass::half_t;
using ElementOut = cutlass::half_t;
@@ -344,7 +344,7 @@ TEST(SM100_device_conv3d_fprop_implicitgemm_f16ndhwc_f16ndhwc_f16ndhwc_tensor_op
using Conv = cutlass::conv::device::ConvUniversalAdapter<ConvKernel>;
EXPECT_TRUE(test::conv::device::TestAllConv<Conv>(1.0, 0.0, 0.0f, dim3(2,4,1), dim3(2,2,1)));
EXPECT_TRUE(test::conv::device::TestAllConv<Conv>(1.0, 0.0, 0.0f, dim3(2,4,1), dim3(2,4,1)));
}
#endif // defined(CUTLASS_ARCH_MMA_SM100_SUPPORTED)
@@ -296,9 +296,9 @@ TEST(SM100_device_conv1d_wgrad_implicitgemm_f16nwc_f16nwc_f16nwc_tensor_op_f16,
//
// CTA tile shape 64x64x64
// preferred cluster shape 2x4x1
// fallback cluster shape 2x2x1
// fallback cluster shape 2x4x1
//
TEST(SM100_device_conv1d_wgrad_implicitgemm_f16nwc_f16nwc_f16nwc_tensor_op_f16, 64x64x64_preferred_2x4x1_fallback_2x2x1) {
TEST(SM100_device_conv1d_wgrad_implicitgemm_f16nwc_f16nwc_f16nwc_tensor_op_f16, 64x64x64_preferred_2x4x1_fallback_2x4x1) {
using ElementAct = cutlass::half_t;
using ElementFlt = cutlass::half_t;
using ElementOut = cutlass::half_t;
@@ -338,7 +338,7 @@ TEST(SM100_device_conv1d_wgrad_implicitgemm_f16nwc_f16nwc_f16nwc_tensor_op_f16,
using Conv = cutlass::conv::device::ConvUniversalAdapter<ConvKernel>;
EXPECT_TRUE(test::conv::device::TestAllConv<Conv>(1.0, 0.0, 0.0f, dim3(2,4,1), dim3(2,2,1)));
EXPECT_TRUE(test::conv::device::TestAllConv<Conv>(1.0, 0.0, 0.0f, dim3(2,4,1), dim3(2,4,1)));
}
#endif // defined(CUTLASS_ARCH_MMA_SM100_SUPPORTED)
@@ -296,9 +296,9 @@ TEST(SM100_device_conv2d_wgrad_implicitgemm_f16nhwc_f16nhwc_f16nhwc_tensor_op_f1
//
// CTA tile shape 64x64x64
// preferred cluster shape 2x4x1
// fallback cluster shape 2x2x1
// fallback cluster shape 2x4x1
//
TEST(SM100_device_conv2d_wgrad_implicitgemm_f16nhwc_f16nhwc_f16nhwc_tensor_op_f16, 64x64x64_preferred_2x4x1_fallback_2x2x1) {
TEST(SM100_device_conv2d_wgrad_implicitgemm_f16nhwc_f16nhwc_f16nhwc_tensor_op_f16, 64x64x64_preferred_2x4x1_fallback_2x4x1) {
using ElementAct = cutlass::half_t;
using ElementFlt = cutlass::half_t;
using ElementOut = cutlass::half_t;
@@ -338,7 +338,7 @@ TEST(SM100_device_conv2d_wgrad_implicitgemm_f16nhwc_f16nhwc_f16nhwc_tensor_op_f1
using Conv = cutlass::conv::device::ConvUniversalAdapter<ConvKernel>;
EXPECT_TRUE(test::conv::device::TestAllConv<Conv>(1.0, 0.0, 0.0f, dim3(2,4,1), dim3(2,2,1)));
EXPECT_TRUE(test::conv::device::TestAllConv<Conv>(1.0, 0.0, 0.0f, dim3(2,4,1), dim3(2,4,1)));
}
#endif // defined(CUTLASS_ARCH_MMA_SM100_SUPPORTED)
@@ -202,9 +202,9 @@ TEST(SM100_device_conv3d_wgrad_implicitgemm_f16ndhwc_f16ndhwc_f16ndhwc_tensor_op
//
// CTA tile shape 64x64x64
// preferred cluster shape 2x4x1
// fallback cluster shape 2x2x1
// fallback cluster shape 2x4x1
//
TEST(SM100_device_conv3d_wgrad_implicitgemm_f16ndhwc_f16ndhwc_f16ndhwc_tensor_op_f16, 64x64x64_preferred_2x4x1_fallback_2x2x1) {
TEST(SM100_device_conv3d_wgrad_implicitgemm_f16ndhwc_f16ndhwc_f16ndhwc_tensor_op_f16, 64x64x64_preferred_2x4x1_fallback_2x4x1) {
using ElementAct = cutlass::half_t;
using ElementFlt = cutlass::half_t;
using ElementOut = cutlass::half_t;
@@ -244,7 +244,7 @@ TEST(SM100_device_conv3d_wgrad_implicitgemm_f16ndhwc_f16ndhwc_f16ndhwc_tensor_op
using Conv = cutlass::conv::device::ConvUniversalAdapter<ConvKernel>;
EXPECT_TRUE(test::conv::device::TestAllConv<Conv>(1.0, 0.0, 0.0f, dim3(2,4,1), dim3(2,2,1)));
EXPECT_TRUE(test::conv::device::TestAllConv<Conv>(1.0, 0.0, 0.0f, dim3(2,4,1), dim3(2,4,1)));
}
#endif // defined(CUTLASS_ARCH_MMA_SM100_SUPPORTED)
+17 -9
View File
@@ -620,7 +620,8 @@ template <
typename ElementReduce,
bool FinalReduction = true, // Should match the FinalReduction in Device type
typename CtaTileShapeMNK = cute::Shape<cute::_1,cute::_1,cute::_1>,
typename ElementCompute = float
typename ElementCompute = float,
int ReduceIdentity = 0
>
class HostRowReduce: public HostEVTNodeBase<ElementCompute> {
public:
@@ -674,7 +675,9 @@ public:
reduce_buffer_.resize(shape);
}
cutlass::reference::host::TensorFill(reduce_buffer_.host_view());
cutlass::reference::host::TensorFill(tensor_row_reduce_.host_view(), ElementDst(ReduceIdentity));
tensor_row_reduce_.sync_device();
cutlass::reference::host::TensorFill(reduce_buffer_.host_view(), ElementCompute(ReduceIdentity));
}
template <class ElementAccumulator>
@@ -725,7 +728,7 @@ public:
}
Arguments get_arguments() {
return {tensor_row_reduce_.device_data()};
return {{tensor_row_reduce_.device_data(), ElementCompute(ReduceIdentity)}};
}
};
@@ -738,7 +741,8 @@ template <
typename ElementReduce,
bool FinalReduction = true, // Should match the FinalReduction in Device type
typename CtaTileShapeMNK = cute::Shape<cute::_1,cute::_1,cute::_1>,
typename ElementCompute = float
typename ElementCompute = float,
int ReduceIdentity = 0
>
class HostColumnReduce: public HostEVTNodeBase<ElementCompute> {
public:
@@ -793,7 +797,9 @@ public:
reduce_buffer_.resize(shape);
}
cutlass::reference::host::TensorFill(reduce_buffer_.host_view());
cutlass::reference::host::TensorFill(tensor_column_reduce_.host_view(), ElementDst(ReduceIdentity));
tensor_column_reduce_.sync_device();
cutlass::reference::host::TensorFill(reduce_buffer_.host_view(), ElementCompute(ReduceIdentity));
}
template <class ElementAccumulator>
@@ -844,7 +850,7 @@ public:
}
Arguments get_arguments() {
return {tensor_column_reduce_.device_data()};
return {{tensor_column_reduce_.device_data(), ElementCompute(ReduceIdentity)}};
}
};
@@ -856,7 +862,8 @@ template <
template <class> class ReduceFn,
typename ElementReduce,
typename ElementCompute = float,
bool enabled = true
bool enabled = true,
int ReduceIdentity = 0
>
class HostScalarReduce: public HostEVTNodeBase<ElementCompute> {
public:
@@ -886,8 +893,9 @@ public:
reference_scalar_reduce_.resize(cutlass::Coord<1>(1));
reduce_buffer_.resize(cutlass::Coord<1>(1));
cutlass::reference::host::TensorFill(tensor_scalar_reduce_.host_view(), ElementReduce(ReduceIdentity));
tensor_scalar_reduce_.sync_device();
cutlass::reference::host::TensorFill(reduce_buffer_.host_view());
cutlass::reference::host::TensorFill(reduce_buffer_.host_view(), ElementCompute(ReduceIdentity));
}
template <class ElementAccumulator>
@@ -929,7 +937,7 @@ public:
}
Arguments get_arguments() {
return {tensor_scalar_reduce_.device_data()};
return {{tensor_scalar_reduce_.device_data(), ElementCompute(ReduceIdentity)}};
}
auto get_flatten_arguments() {