anchor.diff:  
           let _aBlocks = Array.init 4 (fun _ -> gpu.Allocate<_>(size))
           let _bBlocks = Array.init 4 (fun _ -> gpu.Allocate<_>(size))
  -        //let _res1Blocks = Array.init 4 (fun _ ->  gpu.Allocate<_>(size))
           let _resBlocks = Array.init 4 (fun _ ->  gpu.Allocate<_>(size))
   
           let mxm = Array.init 4 (fun _ -> Lib.getNewMxMAdd<_,_,_> gpu <@ (+) @> <@ (*) @>)
  
positive.code:                     let mxm = mxm.[i * 2 + j]
                      let mam = mam.[i * 2 + j]
                      mxm processors.[i * 2 + j] d mSize _aBlocks.[i * 2 + k] _bBlocks.[k * 2 + j] _resBlocks.[i * 2 + j]
                      //mam processors.[i * 2 + j] d mSize _res1Blocks.[i * 2 + j] _res2Blocks.[i * 2 + j] _res2Blocks.[i * 2 + j]
  
          let barrier2 = Msg.CreateBarrierMessages 4
          Array.iteri2
  
negative.code:         toHost.Apply
                  {
                      new ToHostCrateEvaluator<int>
                      with member this.Eval (a) =
                              let read (src:GpuArray<'t>) (dst:array<'t>)=
                                  let eventID = ref Unchecked.defaultof<Event>
                                  let mem = src.Buffer.Mem
  