anchor.diff:  
   let cpuSum = ref 0
   let _gpuSum = ref 0
  -let l = 95000000
  -let sl = 1000
  -let st = 2
  +let l = 95000000 /// 4
  +let sl = 1000 /// 4
  +let st = 4
   let idxs = Array.init ((l/(sl*st))-1 ) (fun i -> i*sl*st)
       //[|2; 45500; 1245; 9800; 10000; 6000; 3005; 200000; 3000445;8000;12000;14000;|]
   let _sig = 
  -    let a = Array.zeroCreate sl
  +    let a = 
  +        //Array.init sl (fun x -> random.Next())
  +        Array.zeroCreate sl
       random.NextBytes a
       a
       //[|0uy;1uy;0uy;1uy;1uy;0uy;1uy;1uy;5uy;100uy;1uy;66uy;2uy;0uy;1uy;1uy;0uy;1uy;1uy;56uy;1uy;2uy;255uy;0uy;1uy;1uy;2uy;1uy;0uy;1uy;1uy;0uy;1uy;1uy;5uy;100uy;1uy;66uy;2uy;0uy;1uy;1uy;0uy;1uy;1uy;56uy;1uy;2uy;254uy;0uy;1uy;1uy;2uy;1uy;0uy;1uy;1uy;0uy;1uy;1uy;5uy;100uy;1uy;66uy;2uy;0uy;1uy;1uy;0uy;1uy;1uy;56uy;1uy;2uy;254uy;0uy;1uy;1uy;2uy
         //       ; 0uy;1uy;0uy;1uy;1uy;0uy;1uy;1uy;5uy;100uy;1uy;66uy;2uy;0uy;1uy;1uy;0uy;1uy;1uy;56uy;1uy;2uy;255uy;0uy;1uy;1uy;2uy;1uy;0uy;1uy;1uy;0uy;1uy;1uy;5uy;100uy;1uy;66uy;2uy;0uy;1uy;1uy;0uy;1uy;1uy;56uy;1uy;2uy;254uy;0uy;1uy;1uy;2uy;1uy;0uy;1uy;1uy;0uy;1uy;1uy;5uy;100uy;1uy;66uy;2uy;0uy;1uy;1uy;0uy;1uy;1uy;56uy;1uy;2uy;254uy;0uy;1uy;1uy;2uy|]
   //[|0uy;1uy;0uy;1uy;1uy;0uy;1uy;1uy;5uy;100uy;1uy;66uy;2uy;0uy;1uy;1uy;0uy;1uy;1uy;56uy;1uy;2uy;254uy;0uy;1uy;1uy;2uy|]
  -let arr = Array.zeroCreate l
  +let arr = 
  +    //Array.init l (fun x -> random.Next())
  +    Array.zeroCreate l
   random.NextBytes arr
   for i in idxs do
       _sig |> Array.iteri (fun j x -> arr.[j+i] <- x)
  
positive.code: 
  let platformName = "*"
  let deviceType = Cl.DeviceType.Default
  let provider =
          try  ComputeProvider.Create(platformName, deviceType)
          with 
          | ex -> failwith ex.Message
  let commandQueue = new CommandQueue(provider, provider.Devices |> Seq.head)
  
  let k = 1024
  
  let length =   12//0000000
  
negative.code:     let kernel, kernelPrepare, kernelRun = provider.Compile command
      let dim = new _1D(length, localWorkSize)
      let res = Array.zeroCreate length
      let b = Array.zeroCreate 1
      kernelPrepare dim s sub res b length sub.Length
      let _ = commandQueue.Add(kernelRun()).Finish()
      let _ = commandQueue.Add(b.ToHost provider).Finish()
      let result = Array.zeroCreate b.[0]
      let _ = commandQueue.Add(res.ToHost(provider, result)).Finish()
      result
  //    let r = new ResizeArray<_>()
  //    res |> Array.iteri (fun i x -> if x <> 0uy then r.Add i)
  //    r.ToArray()
  
  let findSubstr2 (s:array<byte>) (sub:array<byte>) =
  
  