Skip to content
Snippets Groups Projects
Commit d4a8a948 authored by prrathi's avatar prrathi
Browse files

not fixed yet but switching machines

parent d391d163
No related branches found
No related tags found
1 merge request!115GPU backend
Pipeline #201239 failed
Showing
with 209 additions and 21 deletions
......@@ -4,6 +4,8 @@ fn main() {
JunoCompiler::new()
.ir_in_src("call.hir")
.unwrap()
.schedule_in_src(if cfg!(feature = "cuda") { "gpu.sch" } else { "cpu.sch" })
.unwrap()
.build()
.unwrap();
}
gvn(*);
phi-elim(*);
dce(*);
auto-outline(*);
ip-sroa(*);
sroa(*);
fork-split(*);
unforkify(*);
dce(*);
float-collections(*);
gvn(*);
phi-elim(*);
dce(*);
infer-schedules(*);
gcm(*);
gvn(*);
phi-elim(*);
dce(*);
let out = auto-outline(*);
gpu(out.add);
ip-sroa(*);
sroa(*);
dce(*);
float-collections(*);
gvn(*);
phi-elim(*);
dce(*);
infer-schedules(*);
gcm(*);
......@@ -4,6 +4,8 @@ fn main() {
JunoCompiler::new()
.ir_in_src("ccp.hir")
.unwrap()
.schedule_in_src(if cfg!(feature = "cuda") { "gpu.sch" } else { "cpu.sch" })
.unwrap()
.build()
.unwrap();
}
gvn(*);
phi-elim(*);
dce(*);
auto-outline(*);
ip-sroa(*);
sroa(*);
fork-split(*);
unforkify(*);
dce(*);
float-collections(*);
gvn(*);
phi-elim(*);
dce(*);
infer-schedules(*);
gcm(*);
gvn(*);
phi-elim(*);
dce(*);
let out = auto-outline(*);
gpu(out.tricky);
ip-sroa(*);
sroa(*);
dce(*);
float-collections(*);
gvn(*);
phi-elim(*);
dce(*);
infer-schedules(*);
gcm(*);
......@@ -2,9 +2,8 @@ gvn(*);
phi-elim(*);
dce(*);
auto-outline(*);
gpu(*);
host(dot);
let out = auto-outline(*);
gpu(out.dot);
ip-sroa(*);
sroa(*);
......
......@@ -4,6 +4,8 @@ fn main() {
JunoCompiler::new()
.ir_in_src("fac.hir")
.unwrap()
.schedule_in_src(if cfg!(feature = "cuda") { "gpu.sch" } else { "cpu.sch" })
.unwrap()
.build()
.unwrap();
}
gvn(*);
phi-elim(*);
dce(*);
auto-outline(*);
ip-sroa(*);
sroa(*);
fork-split(*);
unforkify(*);
dce(*);
float-collections(*);
gvn(*);
phi-elim(*);
dce(*);
infer-schedules(*);
gcm(*);
gvn(*);
phi-elim(*);
dce(*);
let out = auto-outline(*);
gpu(out.fac);
ip-sroa(*);
sroa(*);
dce(*);
float-collections(*);
gvn(*);
phi-elim(*);
dce(*);
infer-schedules(*);
gcm(*);
......@@ -2,9 +2,8 @@ gvn(*);
phi-elim(*);
dce(*);
auto-outline(*);
gpu(*);
host(matmul);
let out = auto-outline(*);
gpu(out.matmul);
ip-sroa(*);
sroa(*);
......
......@@ -33,15 +33,13 @@ fn main() {
}
#[cfg(feature = "cuda")]
{
let a_box = CUDABox::from_cpu_ref(HerculesCPURef::from_slice(&mut a));
let a = a_box.get_ref();
let b_box = CUDABox::from_cpu_ref(HerculesCPURef::from_slice(&mut b));
let b = b_box.get_ref();
let a = CUDABox::from_cpu_ref(HerculesCPURef::from_slice(&mut a));
let b = CUDABox::from_cpu_ref(HerculesCPURef::from_slice(&mut b));
let mut r = runner!(matmul);
let c = r.run(I as u64, J as u64, K as u64, a, b).await;
let c = r.run(I as u64, J as u64, K as u64, a.get_ref(), b.get_ref()).await;
let mut c_cpu: Box<[i32]> = vec![0; correct_c.len()].into_boxed_slice();
c.to_cpu_ref(&mut c_cpu);
assert_eq!(c_cpu.as_ref(), &*correct_c);
assert_eq!(&*c_cpu, &*correct_c);
}
});
}
......
use juno_build::JunoCompiler;
fn main() {
#[cfg(feature = "cuda")]
JunoCompiler::new()
.file_in_src("antideps.jn")
.unwrap()
.schedule_in_src("gpu.sch")
.unwrap()
.build()
.unwrap();
#[cfg(not(feature = "cuda"))]
JunoCompiler::new()
.file_in_src("antideps.jn")
.unwrap()
......
gvn(*);
phi-elim(*);
dce(*);
let out = auto-outline(*);
gpu(out.simple_antideps, out.loop_antideps, out.complex_antideps1, out.complex_antideps2, out.very_complex_antideps, out.read_chains, out.array_of_structs);
ip-sroa(*);
sroa(*);
dce(*);
float-collections(*);
gvn(*);
phi-elim(*);
dce(*);
infer-schedules(*);
gcm(*);
use juno_build::JunoCompiler;
fn main() {
#[cfg(feature = "cuda")]
JunoCompiler::new()
.file_in_src("casts_and_intrinsics.jn")
.unwrap()
.schedule_in_src("gpu.sch")
.unwrap()
.build()
.unwrap();
#[cfg(not(feature = "cuda"))]
JunoCompiler::new()
.file_in_src("casts_and_intrinsics.jn")
.unwrap()
......
gvn(*);
phi-elim(*);
dce(*);
let out = auto-outline(*);
gpu(out.casts_and_intrinsics);
ip-sroa(*);
sroa(*);
dce(*);
float-collections(*);
gvn(*);
phi-elim(*);
dce(*);
infer-schedules(*);
gcm(*);
......@@ -2,6 +2,15 @@ extern crate juno_build;
use juno_build::JunoCompiler;
fn main() {
#[cfg(feature = "cuda")]
JunoCompiler::new()
.file_in_src("cava.jn")
.unwrap()
.schedule_in_src("gpu.sch")
.unwrap()
.build()
.unwrap();
#[cfg(not(feature = "cuda"))]
JunoCompiler::new()
.file_in_src("cava.jn")
.unwrap()
......
gvn(*);
phi-elim(*);
dce(*);
gpu(scale, demosaic, medianMatrix, transform, gamut, tone_map, descale);
ip-sroa(*);
sroa(*);
dce(*);
float-collections(*);
gvn(*);
phi-elim(*);
dce(*);
infer-schedules(*);
gcm(*);
......@@ -4,6 +4,8 @@ fn main() {
JunoCompiler::new()
.file_in_src("concat.jn")
.unwrap()
.schedule_in_src(if cfg!(feature = "cuda") { "gpu.sch" } else { "cpu.sch" })
.unwrap()
.build()
.unwrap();
}
......@@ -18,15 +18,7 @@ fn sum<t : number, c : usize>(arr : t[c]) -> t {
}
#[entry]
fn concat_entry(a : i32) -> i32 {
let arr1 : i32[3];
let arr2 : i32[6];
arr1[0] = a;
arr1[1] = a;
arr2[0] = a;
arr2[1] = a;
arr2[4] = a;
arr2[5] = a;
fn concat_entry(arr1 : i32[3], arr2 : i32[6]) -> i32 {
let arr3 = concat::<i32, 3, 6>(arr1, arr2);
return sum::<i32, 9>(arr3);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment