cubecl_convolution/
error.rs1use std::fmt::Debug;
2
3use cubecl_core::tune::AutotuneError;
4use cubecl_matmul::components::{MatmulAvailabilityError, MatmulSetupError};
5
6#[allow(clippy::large_enum_variant)]
7pub enum ConvLaunchError {
8 Matmul(MatmulSetupError),
9 Groups(usize),
10 Unknown,
11}
12
13impl Debug for ConvLaunchError {
14 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
15 match self {
16 ConvLaunchError::Matmul(err) => {
17 write!(f, "{err:?}")
18 }
19 ConvLaunchError::Groups(groups) => {
20 writeln!(
21 f,
22 "Unable to launch matmul because groups must be one, is actually {groups}",
23 )
24 }
25 ConvLaunchError::Unknown => write!(f, "Unknown"),
26 }
27 }
28}
29
30impl From<MatmulSetupError> for ConvLaunchError {
31 fn from(value: MatmulSetupError) -> Self {
32 Self::Matmul(value)
33 }
34}
35
36impl From<MatmulAvailabilityError> for ConvLaunchError {
37 fn from(value: MatmulAvailabilityError) -> Self {
38 Self::Matmul(MatmulSetupError::Unavailable(value))
39 }
40}
41
42#[allow(clippy::from_over_into)]
43impl Into<AutotuneError> for ConvLaunchError {
44 fn into(self) -> AutotuneError {
45 AutotuneError::Unknown(format!("{self:?}"))
46 }
47}