reduceLarge2 arr out =  
  do
    arr' <- newArr (cpuArrayType arr) (256*256*4)
    
    copyIn  arr' arr 
    imm  <- newArr Int (256*4) 
    imm2 <- newArr Int (1*4)    
    
    launch 256 256 reduceAddInt arr' imm 
    
    launch 1   256 reduceAddInt imm  imm2 
    
    copyOut out imm2 
reduceLarge2 arr out =  
  do
    arr' <- newArr (cpuArrayType arr) (256*256*4)
    
    copyIn  arr' arr 
    imm  <- newArr Int (256*4) 
    imm2 <- newArr Int (1*4)    
    
    launch 256 256 reduceAddInt arr' imm 
    
    launch 1   256 reduceAddInt imm  imm2 
    
    copyOut out imm2 
reduceLarge2 arr out =  
  do
    arr' <- newArr (cpuArrayType arr) (256*256*4)
    
    copyIn  arr' arr 
    imm  <- newArr Int (256*4) 
    imm2 <- newArr Int (1*4)    
    
    launch 256 256 reduceAddInt arr' imm 
    
    launch 1   256 reduceAddInt imm  imm2 
    
    copyOut out imm2 