Skip to content

Commit 4f0fa2a

Browse files
committed
refactor: 移除 scheme 接口
Signed-off-by: YdrMaster <ydrml@hotmail.com>
1 parent a645f82 commit 4f0fa2a

File tree

82 files changed

+212
-1693
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+212
-1693
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ jobs:
5252
run:
5353
cargo clippy
5454
--all-features
55+
--all-targets
5556
--message-format=json | clippy-sarif | tee rust-clippy-results.sarif | sarif-fmt
5657
continue-on-error: true
5758

operators/src/add/args.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::{
22
get_static, rank_mismatch, shape_mismatch, shape_not_support, utils::type_distinct, ConstPtr,
3-
Hardware, MutPtr, SchemeError, TensorLayout,
3+
Hardware, LaunchError, MutPtr, TensorLayout,
44
};
55
use digit_layout::DigitLayout;
66
use itertools::izip;
@@ -40,7 +40,7 @@ impl<H: Hardware> Args<H> {
4040
pub(super) struct Scheme(DigitLayout, Box<[isize]>);
4141

4242
impl Scheme {
43-
pub fn new<H: Hardware>(args: &Args<H>) -> Result<Self, SchemeError> {
43+
pub fn new<H: Hardware>(args: &Args<H>) -> Result<Self, LaunchError> {
4444
let Args {
4545
c_layout: c,
4646
a_layout: a,

operators/src/add/common_cpu/mod.rs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use super::{args::Scheme, Add, Args};
2-
use crate::{common_cpu::Cpu, ByteOf, LaunchError, QueueAlloc, SchemeError};
2+
use crate::{common_cpu::Cpu, ByteOf, LaunchError, QueueAlloc};
33
use digit_layout::types as ty;
44
use half::f16;
55
use rayon::iter::{IntoParallelIterator, ParallelIterator};
@@ -17,14 +17,6 @@ impl crate::Operator for Operator {
1717
fn new(_node: &Self::TopoNode) -> Self {
1818
Self
1919
}
20-
#[inline]
21-
fn scheme(
22-
&mut self,
23-
_args: &Self::Args,
24-
_max_workspace_size: usize,
25-
) -> Result<usize, SchemeError> {
26-
Ok(0)
27-
}
2820

2921
fn launch<QA>(
3022
&self,

operators/src/add/cuda/mod.rs

Lines changed: 10 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ use super::{args::Scheme, Add, Args};
22
use crate::{
33
cuda::{dt_name, Gpu, Handle, ModuleBox},
44
shape_not_support, strides_not_support,
5-
utils::{gcd, type_distinct},
6-
ByteOf, LaunchError, QueueAlloc, SchemeDiversity, SchemeError,
5+
utils::gcd,
6+
ByteOf, LaunchError, QueueAlloc, SchemeDiversity,
77
};
88
use digit_layout::DigitLayout;
99
use lru::LruCache;
@@ -32,20 +32,6 @@ impl crate::Operator for Operator {
3232
}
3333
}
3434

35-
#[inline]
36-
fn scheme(
37-
&mut self,
38-
args: &Self::Args,
39-
_max_workspace_size: usize,
40-
) -> Result<usize, SchemeError> {
41-
let dt = type_distinct(&[args.c_layout.dt(), args.a_layout.dt(), args.b_layout.dt()])?;
42-
self.schemes
43-
.lock()
44-
.unwrap()
45-
.get_or_insert(dt, || compile(&self.handle, dt));
46-
Ok(0)
47-
}
48-
4935
fn launch<QA>(
5036
&self,
5137
args: &Self::Args,
@@ -60,20 +46,20 @@ impl crate::Operator for Operator {
6046
let count = scheme.count();
6147

6248
let &[1] = scheme.idx_strides() else {
63-
return Err(shape_not_support("").into());
49+
return Err(shape_not_support(""));
6450
};
6551
let &[sc] = scheme.c_strides() else {
66-
return Err(shape_not_support("").into());
52+
return Err(shape_not_support(""));
6753
};
6854
let &[sa] = scheme.a_strides() else {
69-
return Err(shape_not_support("").into());
55+
return Err(shape_not_support(""));
7056
};
7157
let &[sb] = scheme.b_strides() else {
72-
return Err(shape_not_support("").into());
58+
return Err(shape_not_support(""));
7359
};
7460
let unit = dt.nbytes() as isize;
7561
if sc != unit || sa != unit || sb != unit {
76-
return Err(strides_not_support("").into());
62+
return Err(strides_not_support(""));
7763
}
7864

7965
let block_dims = gcd(count, self.max_threads_block);
@@ -124,25 +110,12 @@ extern "C" __global__ void add(
124110
#[cfg(test)]
125111
mod test {
126112
use super::{Args, Gpu, Operator};
127-
use crate::{dyn_, Hardware, Operator as _, TensorLayout};
113+
use crate::{Hardware, Operator as _, TensorLayout};
128114
use digit_layout::{
129115
types::{F16, F64},
130116
DigitLayout,
131117
};
132-
use std::ptr::null;
133118

134-
fn dyn_args<H: Hardware>(dt: DigitLayout) -> Args<H> {
135-
use std::ptr::null_mut;
136-
let layout = TensorLayout::new_dyn(dt, &[dyn_(); 2], &[dyn_(); 2]);
137-
Args {
138-
c_layout: layout.clone(),
139-
c_base: null_mut(),
140-
a_layout: layout.clone(),
141-
a_base: null(),
142-
b_layout: layout.clone(),
143-
b_base: null(),
144-
}
145-
}
146119
fn args<H: Hardware>(
147120
dt: DigitLayout,
148121
n: usize,
@@ -178,10 +151,8 @@ mod test {
178151
return;
179152
};
180153

181-
let mut cpu_op = RefOp::new(&Cpu);
182-
let mut gpu_op = Operator::new(&gpu);
183-
cpu_op.scheme(&dyn_args(F64), 0).unwrap();
184-
gpu_op.scheme(&dyn_args(F16), 0).unwrap();
154+
let cpu_op = RefOp::new(&Cpu);
155+
let gpu_op = Operator::new(&gpu);
185156

186157
let n = 1;
187158
let d = 768;

operators/src/add/infini/mod.rs

Lines changed: 0 additions & 36 deletions
This file was deleted.

operators/src/add/mod.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@
44
pub mod common_cpu;
55
#[cfg(use_cuda)]
66
pub mod cuda;
7-
#[cfg(use_infini)]
8-
pub mod infini;
9-
#[cfg(use_cl)]
10-
pub mod opencl;
117

128
mod args;
139
pub use args::Args;

operators/src/add/opencl/mod.rs

Lines changed: 0 additions & 36 deletions
This file was deleted.

operators/src/add_rows/args.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
use crate::{
1+
use crate::{
22
type_not_support,
33
utils::{dim_distinct, rank_error, type_distinct},
4-
ConstPtr, Hardware, MaybeDyn, MutPtr, SchemeError, TensorLayout,
4+
ConstPtr, Hardware, LaunchError, MaybeDyn, MutPtr, TensorLayout,
55
};
66
use digit_layout::{DigitLayout, LayoutContent::Unsigned};
77
use std::ptr::{null, null_mut};
@@ -44,7 +44,7 @@ pub(super) struct Meta {
4444
}
4545

4646
impl<H: Hardware> Args<H> {
47-
pub(super) fn meta(&self) -> Result<Meta, SchemeError> {
47+
pub(super) fn meta(&self) -> Result<Meta, LaunchError> {
4848
let Self {
4949
dst_layout: dst,
5050
src_layout: src,

operators/src/add_rows/common_cpu/mod.rs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use super::{args::Meta, AddRows, Args};
2-
use crate::{common_cpu::Cpu, get_static, ByteOf, LaunchError, QueueAlloc, SchemeError, Unsigned};
2+
use crate::{common_cpu::Cpu, get_static, ByteOf, LaunchError, QueueAlloc, Unsigned};
33
use digit_layout::types as ty;
44
use half::f16;
55
use rayon::iter::{IntoParallelIterator, ParallelIterator};
@@ -18,14 +18,6 @@ impl crate::Operator for Operator {
1818
Self
1919
}
2020

21-
fn scheme(
22-
&mut self,
23-
_args: &Self::Args,
24-
_max_workspace_size: usize,
25-
) -> Result<usize, SchemeError> {
26-
Ok(0)
27-
}
28-
2921
fn launch<QA>(
3022
&self,
3123
args: &Self::Args,

operators/src/add_rows/cuda/mod.rs

Lines changed: 6 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::{
44
cuda::{dt_name, Gpu, Handle, ModuleBox},
55
get_static, strides_not_support,
66
utils::gcd,
7-
ByteOf, LaunchError, QueueAlloc, SchemeDiversity, SchemeError,
7+
ByteOf, LaunchError, QueueAlloc, SchemeDiversity,
88
};
99
use digit_layout::DigitLayout;
1010
use lru::LruCache;
@@ -34,22 +34,6 @@ impl crate::Operator for Operator {
3434
}
3535
}
3636

37-
#[inline]
38-
fn scheme(
39-
&mut self,
40-
args: &Self::Args,
41-
_max_workspace_size: usize,
42-
) -> Result<usize, SchemeError> {
43-
let Meta { dt, .. } = args.meta()?;
44-
45-
let key = SchemeKey { dt };
46-
self.schemes
47-
.lock()
48-
.unwrap()
49-
.try_get_or_insert(key, || Scheme::new(&self.handle, key))?;
50-
Ok(0)
51-
}
52-
5337
fn launch<QA>(
5438
&self,
5539
args: &Self::Args,
@@ -87,7 +71,7 @@ impl crate::Operator for Operator {
8771
let unit_dst = dst_layout.dt().nbytes() as isize;
8872
let unit_idx = idx_layout.dt().nbytes() as isize;
8973
if nsd != unit_dst || nss != unit_dst || msi != unit_idx {
90-
return Err(strides_not_support("").into());
74+
return Err(strides_not_support(""));
9175
};
9276
fn cast(strides: &[isize], size: usize) -> Vec<isize> {
9377
strides.iter().map(|x| x / size as isize).collect()
@@ -134,7 +118,7 @@ struct SchemeKey {
134118
}
135119

136120
impl Scheme {
137-
pub fn new(handle: &Arc<Handle>, SchemeKey { dt }: SchemeKey) -> Result<Self, SchemeError> {
121+
pub fn new(handle: &Arc<Handle>, SchemeKey { dt }: SchemeKey) -> Result<Self, LaunchError> {
138122
let device = handle.device();
139123
let cc = device.compute_capability();
140124
let type_name = dt_name(dt);
@@ -168,26 +152,14 @@ extern "C" __global__ void {name}(
168152
#[cfg(test)]
169153
mod test {
170154
use super::{Args, Gpu, Operator};
171-
use crate::{cuda::cast_load, dyn_, Hardware, Operator as _, TensorLayout};
155+
use crate::{cuda::cast_load, Hardware, Operator as _, TensorLayout};
172156
use cuda::memcpy_d2h;
173157
use digit_layout::{
174158
types::{F16, F64, U32},
175159
DigitLayout,
176160
};
177161
use half::f16;
178-
use std::ptr::null;
179162

180-
fn dyn_args<H: Hardware>(dt: DigitLayout) -> Args<H> {
181-
use std::ptr::null_mut;
182-
Args {
183-
dst_layout: TensorLayout::new_dyn(dt, &[dyn_(); 3], &[dyn_(); 3]),
184-
dst_base: null_mut(),
185-
src_layout: TensorLayout::new_dyn(dt, &[dyn_(); 2], &[dyn_(); 2]),
186-
src_base: null(),
187-
idx_layout: TensorLayout::new_dyn(U32, &[dyn_(); 2], &[dyn_(); 2]),
188-
idx_base: null(),
189-
}
190-
}
191163
fn args<H: Hardware>(
192164
dt: DigitLayout,
193165
b: usize,
@@ -220,10 +192,8 @@ mod test {
220192
return;
221193
};
222194

223-
let mut cpu_op = RefOp::new(&Cpu);
224-
let mut gpu_op = Operator::new(&gpu);
225-
cpu_op.scheme(&dyn_args(F64), 0).unwrap();
226-
gpu_op.scheme(&dyn_args(F16), 0).unwrap();
195+
let cpu_op = RefOp::new(&Cpu);
196+
let gpu_op = Operator::new(&gpu);
227197

228198
let b = 1;
229199
let m = 10;

0 commit comments

Comments
 (0)