@@ -14,14 +14,8 @@ mod cuda {
14
14
use std:: sync:: { Arc , RwLock } ;
15
15
use leaf:: layers:: * ;
16
16
use leaf:: layer:: * ;
17
- use leaf:: network:: * ;
18
17
use std:: rc:: Rc ;
19
18
20
- #[ cfg( feature = "native" ) ]
21
- fn native_backend ( ) -> Rc < Backend < Native > > {
22
- Rc :: new ( Backend :: < Native > :: default ( ) . unwrap ( ) )
23
- }
24
-
25
19
#[ cfg( feature = "cuda" ) ]
26
20
fn cuda_backend ( ) -> Rc < Backend < Cuda > > {
27
21
Rc :: new ( Backend :: < Cuda > :: default ( ) . unwrap ( ) )
@@ -76,7 +70,7 @@ mod cuda {
76
70
#[ ignore]
77
71
#[ cfg( feature = "cuda" ) ]
78
72
fn bench_mnsit_forward_1 ( b : & mut Bencher ) {
79
- let mut cfg = NetworkConfig :: default ( ) ;
73
+ let mut cfg = SequentialConfig :: default ( ) ;
80
74
// set up input
81
75
cfg. add_input ( "in" , & vec ! [ 1 , 30 , 30 ] ) ;
82
76
cfg. add_input ( "label" , & vec ! [ 1 , 1 , 10 ] ) ;
@@ -98,18 +92,14 @@ mod cuda {
98
92
// cfg.add_layer(loss_cfg);
99
93
100
94
let backend = cuda_backend ( ) ;
101
- let native_backend = native_backend ( ) ;
102
- let mut network = Network :: from_config ( backend. clone ( ) , & cfg) ;
103
- let loss = & mut 0f32 ;
95
+ let mut network = Layer :: from_config (
96
+ backend. clone ( ) , & LayerConfig :: new ( "network" , LayerType :: Sequential ( cfg) ) ) ;
104
97
105
98
let _ = timeit_loops ! ( 10 , {
106
99
let inp = SharedTensor :: <f32 >:: new( backend. device( ) , & vec![ 1 , 30 , 30 ] ) . unwrap( ) ;
107
- let label = SharedTensor :: <f32 >:: new( native_backend. device( ) , & vec![ 1 , 1 , 10 ] ) . unwrap( ) ;
108
-
109
100
let inp_lock = Arc :: new( RwLock :: new( inp) ) ;
110
- let label_lock = Arc :: new( RwLock :: new( label) ) ;
111
101
112
- network. forward( & [ inp_lock, label_lock ] , loss ) ;
102
+ network. forward( & [ inp_lock] ) ;
113
103
} ) ;
114
104
// b.iter(|| {
115
105
// for _ in 0..1 {
@@ -128,7 +118,7 @@ mod cuda {
128
118
// #[ignore]
129
119
#[ cfg( feature = "cuda" ) ]
130
120
fn alexnet_forward ( b : & mut Bencher ) {
131
- let mut cfg = NetworkConfig :: default ( ) ;
121
+ let mut cfg = SequentialConfig :: default ( ) ;
132
122
// Layer: data
133
123
cfg. add_input ( "data" , & vec ! [ 128 , 3 , 224 , 224 ] ) ;
134
124
// Layer: conv1
@@ -265,15 +255,15 @@ mod cuda {
265
255
266
256
let backend = cuda_backend ( ) ;
267
257
// let native_backend = native_backend();
268
- let mut network = Network :: from_config ( backend. clone ( ) , & cfg) ;
258
+ let mut network = Layer :: from_config (
259
+ backend. clone ( ) , & LayerConfig :: new ( "network" , LayerType :: Sequential ( cfg) ) ) ;
269
260
270
261
let func = || {
271
262
let forward_time = timeit_loops ! ( 1 , {
272
- let loss = & mut 0f32 ;
273
263
let inp = SharedTensor :: <f32 >:: new( backend. device( ) , & vec![ 128 , 3 , 112 , 112 ] ) . unwrap( ) ;
274
264
275
265
let inp_lock = Arc :: new( RwLock :: new( inp) ) ;
276
- network. forward( & [ inp_lock] , loss ) ;
266
+ network. forward( & [ inp_lock] ) ;
277
267
} ) ;
278
268
println ! ( "Forward step: {}" , forward_time) ;
279
269
} ;
@@ -285,7 +275,7 @@ mod cuda {
285
275
#[ cfg( feature = "cuda" ) ]
286
276
fn small_alexnet_forward ( b : & mut Bencher ) {
287
277
// let _ = env_logger::init();
288
- let mut cfg = NetworkConfig :: default ( ) ;
278
+ let mut cfg = SequentialConfig :: default ( ) ;
289
279
// Layer: data
290
280
cfg. add_input ( "data" , & vec ! [ 128 , 3 , 112 , 112 ] ) ;
291
281
// Layer: conv1
@@ -422,14 +412,14 @@ mod cuda {
422
412
423
413
let backend = cuda_backend ( ) ;
424
414
// let native_backend = native_backend();
425
- let mut network = Network :: from_config ( backend. clone ( ) , & cfg) ;
415
+ let mut network = Layer :: from_config (
416
+ backend. clone ( ) , & LayerConfig :: new ( "network" , LayerType :: Sequential ( cfg) ) ) ;
426
417
427
418
let mut func = || {
428
- let loss = & mut 0f32 ;
429
419
let inp = SharedTensor :: < f32 > :: new ( backend. device ( ) , & vec ! [ 128 , 3 , 112 , 112 ] ) . unwrap ( ) ;
430
420
431
421
let inp_lock = Arc :: new ( RwLock :: new ( inp) ) ;
432
- network. forward ( & [ inp_lock] , loss ) ;
422
+ network. forward ( & [ inp_lock] ) ;
433
423
} ;
434
424
{ func ( ) ; bench_profile ( b, func, 10 ) ; }
435
425
}
0 commit comments