提交 320a6000 编写于 作者: L liuruilong

update

上级 b1ffc144
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
import Foundation import Foundation
let testTo = 93 let testTo = 94
public class ResultHolder<P: PrecisionType> { public class ResultHolder<P: PrecisionType> {
public let dim: [Int] public let dim: [Int]
......
...@@ -61,14 +61,38 @@ ...@@ -61,14 +61,38 @@
} }
func delogOutput() { func delogOutput() {
let outputArray = para.output.metalTexture.floatArray { (o: Float32) -> Float32 in // let outputArray = para.output.metalTexture.floatArray { (o: Float32) -> Float32 in
return o // return o
} // }
let priorBoxOriginDim = para.priorBox.originDim
let priorBoxArray = para.priorBox.metalTexture.realNHWC(dim: (n: priorBoxOriginDim[0], h: priorBoxOriginDim[1], w: priorBoxOriginDim[2], c: priorBoxOriginDim[3]))
print(" prior box ")
print(priorBoxArray.strideArray())
let priorBoxVarOriginDim = para.priorBoxVar.originDim
let priorBoxVarArray = para.priorBoxVar.metalTexture.realNHWC(dim: (n: priorBoxVarOriginDim[0], h: priorBoxVarOriginDim[1], w: priorBoxVarOriginDim[2], c: priorBoxVarOriginDim[3]))
print(" prior box var ")
print(priorBoxVarArray.strideArray())
let targetBoxOriginDim = para.targetBox.originDim
let targetBoxArray = para.targetBox.metalTexture.realNHWC(dim: (n: targetBoxOriginDim[0], h: targetBoxOriginDim[1], w: targetBoxOriginDim[2], c: targetBoxOriginDim[3]))
print(" target box ")
print(targetBoxArray.strideArray())
let originDim = para.output.originDim
let outputArray = para.output.metalTexture.realNHWC(dim: (n: originDim[0], h: originDim[1], w: originDim[2], c: originDim[3]))
print(outputArray.strideArray()) print(outputArray.strideArray())
// print(outputArray.strideArray())
//box_coder_0.tmp_0 //box_coder_0.tmp_0
// writeToLibrary(fileName: "boxcoder_output", array: outputArray) // writeToLibrary(fileName: "boxcoder_output", array: outputArray)
print(para.output.metalTexture) // print(para.output.metalTexture)
print(" write done ") // print(" write done ")
} }
} }
......
...@@ -60,6 +60,8 @@ class ConcatOp<P: PrecisionType>: Operator<ConcatKernel<P>, ConcatParam<P>>, Run ...@@ -60,6 +60,8 @@ class ConcatOp<P: PrecisionType>: Operator<ConcatKernel<P>, ConcatParam<P>>, Run
func delogOutput() { func delogOutput() {
let originDim = para.output.originDim let originDim = para.output.originDim
let outputArray = para.output.metalTexture.realNHWC(dim: (n: originDim[0], h: originDim[1], w: originDim[2], c: originDim[3])) let outputArray = para.output.metalTexture.realNHWC(dim: (n: originDim[0], h: originDim[1], w: originDim[2], c: originDim[3]))
print(outputArray.strideArray()) print(outputArray.strideArray())
......
...@@ -35,8 +35,18 @@ class PriorBoxKernel<P: PrecisionType>: Kernel, Computable{ ...@@ -35,8 +35,18 @@ class PriorBoxKernel<P: PrecisionType>: Kernel, Computable{
required init(device: MTLDevice, param: PriorBoxParam<P>) { required init(device: MTLDevice, param: PriorBoxParam<P>) {
super.init(device: device, inFunctionName: "prior_box") super.init(device: device, inFunctionName: "prior_box")
param.output.initTexture(device: device, inTranspose: [2, 0, 1, 3]) param.output.initTexture(device: device, inTranspose: [2, 0, 1, 3])
param.outputVariances.initTexture(device: device, inTranspose: [2, 0, 1, 3]) param.outputVariances.initTexture(device: device, inTranspose: [2, 0, 1, 3])
let n = 1
let h = param.output.dim[1]
let w = param.output.dim[2]
let c = param.output.dim[3] * param.output.dim[0]
param.output.dim = Dim.init(inDim: [n, h, w, c])
param.output.transpose = [0, 1, 2, 3]
let imageWidth = Float32(param.inputImage.originDim[3]) let imageWidth = Float32(param.inputImage.originDim[3])
let imageHeight = Float32(param.inputImage.originDim[2]) let imageHeight = Float32(param.inputImage.originDim[2])
......
...@@ -77,7 +77,7 @@ kernel void reshape(texture2d_array<float, access::read> inTexture [[texture(0)] ...@@ -77,7 +77,7 @@ kernel void reshape(texture2d_array<float, access::read> inTexture [[texture(0)]
if (gid.x >= outTexture.get_width() || if (gid.x >= outTexture.get_width() ||
gid.y >= outTexture.get_height() || gid.y >= outTexture.get_height() ||
gid.z >= outTexture.get_array_size()) return; gid.z >= outTexture.get_array_size()) return;
int oxyzn[4] = {int(gid.x), int(gid.y), int(gid.z), 0}, oabcd[4], ixyzn[4], iabcd[4]; int oxyzn[4] = {int(gid.x), int(gid.y), int(gid.z), 0}, oabcd[4], ixyzn[4], iabcd[4];
ReshapeParam lrp = rp; ReshapeParam lrp = rp;
int oC = lrp.odim[lrp.otrans[3]]; int oC = lrp.odim[lrp.otrans[3]];
...@@ -102,16 +102,14 @@ kernel void reshape(texture2d_array<float, access::read> inTexture [[texture(0)] ...@@ -102,16 +102,14 @@ kernel void reshape(texture2d_array<float, access::read> inTexture [[texture(0)]
outTexture.write(r, gid.xy, gid.z); outTexture.write(r, gid.xy, gid.z);
} }
// kernel void reshape_half(texture2d_array<half, access::read> inTexture [[texture(0)]],
//kernel void reshape_half(texture2d_array<half, access::read> inTexture [[texture(0)]], texture2d_array<half, access::write> outTexture [[texture(1)]],
// texture2d_array<half, access::write> outTexture [[texture(1)]], uint3 gid [[thread_position_in_grid]]) {
// uint3 gid [[thread_position_in_grid]]) { if (gid.x >= outTexture.get_width() ||
// if (gid.x >= outTexture.get_width() || gid.y >= outTexture.get_height() ||
// gid.y >= outTexture.get_height() || gid.z >= outTexture.get_array_size()) return;
// gid.z >= outTexture.get_array_size()) return;
//
// half4 r = inTexture.read(uint2(0, 0), gid.x);
// outTexture.write(r, gid.xy, gid.z);
//}
half4 r = inTexture.read(uint2(0, 0), gid.x);
outTexture.write(r, gid.xy, gid.z);
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册