mirror of
https://github.com/opencv/opencv.git
synced 2026-07-30 15:53:03 +04:00
speed up vulkan dnn, and support ios and apple m1 chip. (#23349)
This commit is contained in:
@@ -330,7 +330,7 @@ CV__DNN_INLINE_NS_BEGIN
|
||||
|
||||
virtual Ptr<BackendNode> initNgraph(const std::vector<Ptr<BackendWrapper> > &inputs, const std::vector<Ptr<BackendNode> >& nodes);
|
||||
|
||||
virtual Ptr<BackendNode> initVkCom(const std::vector<Ptr<BackendWrapper> > &inputs);
|
||||
virtual Ptr<BackendNode> initVkCom(const std::vector<Ptr<BackendWrapper> > &inputs, std::vector<Ptr<BackendWrapper> > &outputs);
|
||||
|
||||
virtual Ptr<BackendNode> initWebnn(const std::vector<Ptr<BackendWrapper> > &inputs, const std::vector<Ptr<BackendNode> >& nodes);
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ namespace cv { namespace dnn {
|
||||
CV__DNN_INLINE_NS_BEGIN
|
||||
#define IS_DNN_OPENCL_TARGET(id) (id == DNN_TARGET_OPENCL || id == DNN_TARGET_OPENCL_FP16)
|
||||
#define IS_DNN_CPU_TARGET(id) (id == DNN_TARGET_CPU || id == DNN_TARGET_CPU_FP16)
|
||||
#define IS_DNN_VULKAN_TARGET(id) (id == DNN_TARGET_VULKAN)
|
||||
Mutex& getInitializationMutex();
|
||||
void initializeLayerFactory();
|
||||
|
||||
|
||||
@@ -87,11 +87,11 @@ public:
|
||||
CV_Assert(inputs[0].dims == outputs[0].dims);
|
||||
if (weightShape.dims() == 3)
|
||||
{
|
||||
kernel_size.assign(1, kernel_size[0]);
|
||||
strides.assign(1, strides[0]);
|
||||
dilations.assign(1, dilations[0]);
|
||||
pads_begin.assign(1, pads_begin[0]);
|
||||
pads_end.assign(1, pads_end[0]);
|
||||
kernel_size.resize(1, kernel_size[0]);
|
||||
strides.resize(1, strides[0]);
|
||||
dilations.resize(1, dilations[0]);
|
||||
pads_begin.resize(1, pads_begin[0]);
|
||||
pads_end.resize(1, pads_end[0]);
|
||||
}
|
||||
CV_Assert(weightShape.dims() == kernel_size.size() + 2);
|
||||
for (int i = 0; i < kernel_size.size(); i++) {
|
||||
|
||||
@@ -89,10 +89,10 @@ public:
|
||||
if (inputs[0].dims == 3)
|
||||
{
|
||||
// Pool1D
|
||||
kernel_size.assign(1, kernel_size[0]);
|
||||
strides.assign(1, strides[0]);
|
||||
pads_begin.assign(1, pads_begin[0]);
|
||||
pads_end.assign(1, pads_end[0]);
|
||||
kernel_size.resize(1, kernel_size[0]);
|
||||
strides.resize(1, strides[0]);
|
||||
pads_begin.resize(1, pads_begin[0]);
|
||||
pads_end.resize(1, pads_end[0]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +50,8 @@ Ptr<BackendNode> Layer::initCUDA(
|
||||
return Ptr<BackendNode>();
|
||||
}
|
||||
|
||||
Ptr<BackendNode> Layer::initVkCom(const std::vector<Ptr<BackendWrapper>>&)
|
||||
Ptr<BackendNode> Layer::initVkCom(const std::vector<Ptr<BackendWrapper> > &inputs,
|
||||
std::vector<Ptr<BackendWrapper> > &outputs)
|
||||
{
|
||||
CV_Error(Error::StsNotImplemented, "VkCom pipeline of " + type + " layers is not defined.");
|
||||
return Ptr<BackendNode>();
|
||||
|
||||
@@ -141,7 +141,6 @@ public:
|
||||
backendId == DNN_BACKEND_CUDA ||
|
||||
(backendId == DNN_BACKEND_HALIDE && haveHalide() && axis == 1 && !padding) || // By channels
|
||||
(backendId == DNN_BACKEND_WEBNN && !padding) ||
|
||||
(backendId == DNN_BACKEND_VKCOM && haveVulkan() && !padding) ||
|
||||
(backendId == DNN_BACKEND_CANN && !padding);
|
||||
}
|
||||
|
||||
@@ -332,17 +331,6 @@ public:
|
||||
}
|
||||
#endif
|
||||
|
||||
virtual Ptr<BackendNode> initVkCom(const std::vector<Ptr<BackendWrapper> > &input) CV_OVERRIDE
|
||||
{
|
||||
#ifdef HAVE_VULKAN
|
||||
vkcom::Tensor in = VkComTensor(input[0]);
|
||||
int cAxis = normalize_axis(axis, in.dimNum());
|
||||
std::shared_ptr<vkcom::OpBase> op(new vkcom::OpConcat(cAxis));
|
||||
return Ptr<BackendNode>(new VkComBackendNode(input, op));
|
||||
#endif // HAVE_VULKAN
|
||||
return Ptr<BackendNode>();
|
||||
}
|
||||
|
||||
virtual Ptr<BackendNode> initHalide(const std::vector<Ptr<BackendWrapper> > &input) CV_OVERRIDE
|
||||
{
|
||||
#ifdef HAVE_HALIDE
|
||||
|
||||
@@ -134,11 +134,11 @@ public:
|
||||
CV_Assert(inputs[0].dims == outputs[0].dims);
|
||||
if (weightShape.dims() == 3)
|
||||
{
|
||||
kernel_size.assign(1, kernel_size[0]);
|
||||
strides.assign(1, strides[0]);
|
||||
dilations.assign(1, dilations[0]);
|
||||
pads_begin.assign(1, pads_begin[0]);
|
||||
pads_end.assign(1, pads_end[0]);
|
||||
kernel_size.resize(1, kernel_size[0]);
|
||||
strides.resize(1, strides[0]);
|
||||
dilations.resize(1, dilations[0]);
|
||||
pads_begin.resize(1, pads_begin[0]);
|
||||
pads_end.resize(1, pads_end[0]);
|
||||
}
|
||||
CV_Assert(weightShape.dims() == kernel_size.size() + 2);
|
||||
for (int i = 0; i < kernel_size.size(); i++) {
|
||||
@@ -665,68 +665,50 @@ public:
|
||||
biasvec[outCn] = biasvec[outCn+1] = biasvec[outCn-1];
|
||||
}
|
||||
|
||||
virtual Ptr<BackendNode> initVkCom(const std::vector<Ptr<BackendWrapper> > &inputs) CV_OVERRIDE
|
||||
virtual Ptr<BackendNode> initVkCom(const std::vector<Ptr<BackendWrapper> > &inputs, std::vector<Ptr<BackendWrapper> > &outputs) CV_OVERRIDE
|
||||
{
|
||||
#ifdef HAVE_VULKAN
|
||||
CV_Assert(!blobs.empty());
|
||||
int out_channel = blobs[0].size[0];
|
||||
bool has_bias = hasBias() || fusedBias;
|
||||
int filter_size[2] = {kernel.height, kernel.width};
|
||||
int pad_size[2] = {pad.height, pad.width};
|
||||
int stride_size[2] = {stride.height, stride.width};
|
||||
int dilation_size[2] = {dilation.height, dilation.width};
|
||||
int activation = 0;
|
||||
vkcom::Tensor input_tensor = VkComTensor(inputs[0]);
|
||||
int in_channel = input_tensor.dimSize(1);
|
||||
int group = in_channel / blobs[0].size[1];
|
||||
int activationType = transFusedActivType(activ);
|
||||
|
||||
// TODO: support group > 1
|
||||
if (group != 1)
|
||||
CV_Assert(inputs.size() == 1 && outputs.size() == 1);
|
||||
Ptr<VkComBackendWrapper> inputWrap = inputs[0].dynamicCast<VkComBackendWrapper>();
|
||||
Ptr<VkComBackendWrapper> outputWrap = outputs[0].dynamicCast<VkComBackendWrapper>();
|
||||
CV_Assert(inputWrap && outputWrap);
|
||||
|
||||
MatShape inpShape = shape(*inputWrap->getMat());
|
||||
MatShape outShape = shape(*outputWrap->getMat());
|
||||
|
||||
CV_Assert(inpShape.size() == 4 && inpShape.size() == outShape.size());
|
||||
|
||||
if (activationType == -1)
|
||||
{
|
||||
CV_LOG_WARNING(NULL, "Unsupported fused Active type in Conv layer!!!");
|
||||
return Ptr<BackendNode>();
|
||||
}
|
||||
|
||||
const int inpGroupCn = blobs[0].size[1];
|
||||
int ngroups = inpShape[1] / inpGroupCn;
|
||||
CV_Assert(outShape[1] % ngroups == 0);
|
||||
if (ngroups != 1)
|
||||
return Ptr<BackendNode>();
|
||||
|
||||
int padding_mode;
|
||||
if (padMode.empty())
|
||||
{
|
||||
padding_mode = vkcom::kPaddingModeCaffe;
|
||||
}
|
||||
else if (padMode == "VALID")
|
||||
{
|
||||
padding_mode = vkcom::kPaddingModeValid;
|
||||
}
|
||||
else if (padMode == "SAME")
|
||||
{
|
||||
padding_mode = vkcom::kPaddingModeSame;
|
||||
}
|
||||
else
|
||||
CV_Error(Error::StsError, "Unsupported padding mode " + padMode);
|
||||
|
||||
std::shared_ptr<vkcom::OpBase> op(new vkcom::OpConv(out_channel, has_bias,
|
||||
filter_size, pad_size,
|
||||
stride_size, dilation_size,
|
||||
activation, group,
|
||||
padding_mode));
|
||||
|
||||
std::vector<Ptr<BackendWrapper> > blobsWrapper;
|
||||
|
||||
Mat weightVK;
|
||||
if (fusedWeights)
|
||||
{
|
||||
Mat wm;
|
||||
weightsMat.copyTo(wm); // to handle the case of isContinuous() == false
|
||||
wm = wm.reshape(1, blobs[0].dims, blobs[0].size);
|
||||
blobsWrapper.push_back(Ptr<BackendWrapper>(new VkComBackendWrapper(wm)));
|
||||
weightsMat.copyTo(weightVK); // to handle the case of isContinuous() == false
|
||||
weightVK = weightVK.reshape(1, blobs[0].dims, blobs[0].size);
|
||||
}
|
||||
else
|
||||
{
|
||||
blobsWrapper.push_back(Ptr<BackendWrapper>(new VkComBackendWrapper(blobs[0])));
|
||||
}
|
||||
weightVK = blobs[0];
|
||||
|
||||
if (has_bias)
|
||||
{
|
||||
Mat biasesMat({out_channel}, CV_32F, &biasvec[0]);
|
||||
blobsWrapper.push_back(Ptr<BackendWrapper>(new VkComBackendWrapper(biasesMat)));
|
||||
}
|
||||
CV_Assert(weightVK.isContinuous());
|
||||
CV_Assert(pads_begin.size() == 2);
|
||||
CV_Assert(fusedAdd == false && "Vulkan Backend can not support the Conv_Add optimization.");
|
||||
Ptr<vkcom::OpBase> op(new vkcom::OpConv(weightVK, biasvec, activationType, ngroups, outShape[1], inpShape[1],
|
||||
kernel.height, kernel.width, stride.height, stride.width,
|
||||
dilation.height, dilation.width, pads_begin[1], pads_begin[0]));
|
||||
|
||||
return Ptr<BackendNode>(new VkComBackendNode(inputs, op, blobsWrapper));
|
||||
return Ptr<BackendNode>(new VkComBackendNode(inputs, op, outputs));
|
||||
#endif // HAVE_VULKAN
|
||||
return Ptr<BackendNode>();
|
||||
}
|
||||
|
||||
@@ -216,13 +216,6 @@ public:
|
||||
}
|
||||
#endif
|
||||
|
||||
virtual Ptr<BackendNode> initVkCom(const std::vector<Ptr<BackendWrapper> >& inputs) CV_OVERRIDE
|
||||
{
|
||||
#ifdef HAVE_VULKAN
|
||||
return Ptr<BackendNode>(new VkComBackendNode(inputs, func.initVkCom()));
|
||||
#endif // HAVE_VULKAN
|
||||
return Ptr<BackendNode>();
|
||||
}
|
||||
|
||||
virtual bool tryFuse(Ptr<dnn::Layer>& top) CV_OVERRIDE
|
||||
{
|
||||
@@ -359,7 +352,6 @@ struct ReLUFunctor : public BaseFunctor
|
||||
return backendId == DNN_BACKEND_OPENCV ||
|
||||
backendId == DNN_BACKEND_CUDA ||
|
||||
backendId == DNN_BACKEND_HALIDE ||
|
||||
backendId == DNN_BACKEND_VKCOM ||
|
||||
backendId == DNN_BACKEND_CANN;
|
||||
}
|
||||
|
||||
@@ -514,14 +506,6 @@ struct ReLUFunctor : public BaseFunctor
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
std::shared_ptr<vkcom::OpBase> initVkCom()
|
||||
{
|
||||
std::shared_ptr<vkcom::OpBase> op(new vkcom::OpReLU(slope));
|
||||
return op;
|
||||
}
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
bool tryQuantize(const std::vector<std::vector<float> > &scales,
|
||||
const std::vector<std::vector<int> > &zeropoints, LayerParams& params)
|
||||
{
|
||||
@@ -706,14 +690,6 @@ struct ReLU6Functor : public BaseFunctor
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
std::shared_ptr<vkcom::OpBase> initVkCom()
|
||||
{
|
||||
// TODO: add vkcom implementation
|
||||
return std::shared_ptr<vkcom::OpBase>();
|
||||
}
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
bool tryQuantize(const std::vector<std::vector<float> > &scales,
|
||||
const std::vector<std::vector<int> > &zeropoints, LayerParams& params)
|
||||
{
|
||||
@@ -830,14 +806,6 @@ struct BaseDefaultFunctor : public BaseFunctor
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
std::shared_ptr<vkcom::OpBase> initVkCom()
|
||||
{
|
||||
// TODO: add vkcom implementation
|
||||
return std::shared_ptr<vkcom::OpBase>();
|
||||
}
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
private:
|
||||
static const char* const ocl_kernel_name;
|
||||
};
|
||||
@@ -2371,14 +2339,6 @@ struct PowerFunctor : public BaseFunctor
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
std::shared_ptr<vkcom::OpBase> initVkCom()
|
||||
{
|
||||
// TODO: add vkcom implementation
|
||||
return std::shared_ptr<vkcom::OpBase>();
|
||||
}
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
bool tryFuse(Ptr<dnn::Layer>& top)
|
||||
{
|
||||
if (power != 1.0f && shift != 0.0f)
|
||||
@@ -2635,14 +2595,6 @@ struct ChannelsPReLUFunctor : public BaseFunctor
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
std::shared_ptr<vkcom::OpBase> initVkCom()
|
||||
{
|
||||
// TODO: add vkcom implementation
|
||||
return std::shared_ptr<vkcom::OpBase>();
|
||||
}
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
int64 getFLOPSPerElement() const { return 1; }
|
||||
};
|
||||
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
#include "../ie_ngraph.hpp"
|
||||
#include "../op_webnn.hpp"
|
||||
#include "../op_cann.hpp"
|
||||
#include "../op_vkcom.hpp"
|
||||
|
||||
#include <opencv2/dnn/shape_utils.hpp>
|
||||
|
||||
@@ -187,7 +188,8 @@ public:
|
||||
backendId == DNN_BACKEND_CUDA ||
|
||||
(backendId == DNN_BACKEND_HALIDE && haveHalide() && axis == 1 && !tranAorB) ||
|
||||
(backendId == DNN_BACKEND_WEBNN && axis == 1 && !tranAorB) ||
|
||||
backendId == DNN_BACKEND_CANN;;
|
||||
backendId == DNN_BACKEND_CANN ||
|
||||
(backendId == DNN_BACKEND_VKCOM && haveVulkan() && !tranAorB);
|
||||
}
|
||||
|
||||
virtual bool setActivation(const Ptr<ActivationLayer>& layer) CV_OVERRIDE
|
||||
@@ -637,6 +639,72 @@ public:
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
virtual Ptr<BackendNode> initVkCom(const std::vector<Ptr<BackendWrapper> > &inputs,
|
||||
std::vector<Ptr<BackendWrapper> > &outputs) CV_OVERRIDE
|
||||
{
|
||||
auto biasMat_ = bias ? biasMat : Mat();
|
||||
auto input_wrapper = inputs[0].dynamicCast<VkComBackendWrapper>();
|
||||
|
||||
CV_Assert((inputs.size() == 2 || inputs.size() == 1) && outputs.size() == 1);
|
||||
std::vector<Mat> vkBlobs;
|
||||
Ptr<vkcom::OpBase> op;
|
||||
|
||||
if (!biasMat_.empty() || !activ.empty())
|
||||
{
|
||||
return Ptr<BackendNode>();
|
||||
}
|
||||
|
||||
Ptr<VkComBackendWrapper> outputWrap = outputs[0].dynamicCast<VkComBackendWrapper>();
|
||||
CV_Assert(outputWrap);
|
||||
// TODO: Currently, we only support the 2D MatMul. Need support the FC layer and bias case in the future.
|
||||
|
||||
if (inputs.size() == 2)
|
||||
{
|
||||
Ptr<VkComBackendWrapper> inputWrap0 = inputs[0].dynamicCast<VkComBackendWrapper>();
|
||||
Ptr<VkComBackendWrapper> inputWrap1 = inputs[1].dynamicCast<VkComBackendWrapper>();
|
||||
CV_Assert(inputWrap0 && inputWrap1);
|
||||
|
||||
MatShape inpShape0 = shape(*inputWrap0->getMat());
|
||||
MatShape inpShape1 = shape(*inputWrap1->getMat());
|
||||
MatShape outShape = shape(*outputWrap->getMat());
|
||||
|
||||
// TODO Currently, vulkan only support 2D matmul. Try to support 3D and 4D matmul.
|
||||
if (inpShape0.size() != 2 || inpShape1.size() != 2)
|
||||
return Ptr<BackendNode>();
|
||||
|
||||
op = (new vkcom::OpMatMul(vkBlobs, inpShape0[0], inpShape0[1], outShape[1]));
|
||||
}
|
||||
else
|
||||
{
|
||||
CV_Assert(!weightsMat.empty());
|
||||
Mat wm;
|
||||
weightsMat.copyTo(wm); // to handle the case of isContinuous() == false
|
||||
wm = wm.reshape(1, blobs[0].dims, blobs[0].size);
|
||||
vkBlobs.push_back(wm.t());
|
||||
|
||||
Ptr<VkComBackendWrapper> inputWrap = inputs[0].dynamicCast<VkComBackendWrapper>();
|
||||
CV_Assert(inputWrap);
|
||||
|
||||
MatShape inpShape = shape(*inputWrap->getMat());
|
||||
MatShape outShape = shape(*outputWrap->getMat());
|
||||
MatShape wShape = shape(weightsMat);
|
||||
|
||||
// TODO Currently, vulkan only support 2D matmul. Try to support 3D and 4D matmul.
|
||||
if (inpShape.size() != 2 || wShape.size() != 2)
|
||||
return Ptr<BackendNode>();
|
||||
|
||||
// TODO: Currently, only focus on 2D MatMul.
|
||||
CV_Assert(inpShape.size() == 2 && outShape.size() == 2 && wShape.size() == 2);
|
||||
CV_Assert(inpShape[1] == outShape[0]);
|
||||
op = (new vkcom::OpMatMul(vkBlobs, inpShape[0], inpShape[1], outShape[1]));
|
||||
}
|
||||
|
||||
return Ptr<BackendNode>(new VkComBackendNode(inputs, op, outputs));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
virtual Ptr<BackendNode> initHalide(const std::vector<Ptr<BackendWrapper> > &inputs) CV_OVERRIDE
|
||||
{
|
||||
#ifdef HAVE_HALIDE
|
||||
@@ -844,15 +912,27 @@ public:
|
||||
{
|
||||
CV_UNUSED(inputs); // suppress unused variable warning
|
||||
long flops = 0;
|
||||
int innerSize = 0;
|
||||
|
||||
if (!blobs.empty())
|
||||
{
|
||||
innerSize = blobs[0].size[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
CV_Assert(inputs.size() == 2);
|
||||
if (transB)
|
||||
innerSize = inputs[1][1];
|
||||
else
|
||||
innerSize = inputs[1][0];
|
||||
}
|
||||
|
||||
int innerSize = blobs[0].size[1];
|
||||
for(int i = 0; i < outputs.size(); i++)
|
||||
{
|
||||
flops += CV_BIG_INT(3)*innerSize*total(outputs[i]);
|
||||
}
|
||||
|
||||
return flops;
|
||||
|
||||
}
|
||||
|
||||
bool bias;
|
||||
|
||||
@@ -107,7 +107,6 @@ public:
|
||||
return backendId == DNN_BACKEND_OPENCV ||
|
||||
backendId == DNN_BACKEND_CUDA ||
|
||||
backendId == DNN_BACKEND_HALIDE ||
|
||||
(backendId == DNN_BACKEND_VKCOM && haveVulkan() && (size % 2 == 1) && (type == CHANNEL_NRM)) ||
|
||||
backendId == DNN_BACKEND_CANN;
|
||||
}
|
||||
|
||||
@@ -362,15 +361,6 @@ public:
|
||||
}
|
||||
#endif
|
||||
|
||||
virtual Ptr<BackendNode> initVkCom(const std::vector<Ptr<BackendWrapper> > &inputs) CV_OVERRIDE
|
||||
{
|
||||
#ifdef HAVE_VULKAN
|
||||
std::shared_ptr<vkcom::OpBase> op(new vkcom::OpLRN(size / 2, bias, alpha, beta, normBySize));
|
||||
return Ptr<BackendNode>(new VkComBackendNode(inputs, op));
|
||||
#endif
|
||||
return Ptr<BackendNode>();
|
||||
}
|
||||
|
||||
virtual Ptr<BackendNode> initHalide(const std::vector<Ptr<BackendWrapper> > &inputs) CV_OVERRIDE
|
||||
{
|
||||
#ifdef HAVE_HALIDE
|
||||
|
||||
@@ -93,7 +93,8 @@ public:
|
||||
CV_Error(Error::StsNotImplemented, msg);
|
||||
}
|
||||
|
||||
virtual Ptr<BackendNode> initVkCom(const std::vector<Ptr<BackendWrapper> > &inputs) CV_OVERRIDE
|
||||
virtual Ptr<BackendNode> initVkCom(const std::vector<Ptr<BackendWrapper> > &inputs,
|
||||
std::vector<Ptr<BackendWrapper> > &outputs) CV_OVERRIDE
|
||||
{
|
||||
CV_Error(Error::StsNotImplemented, msg);
|
||||
}
|
||||
|
||||
@@ -144,7 +144,6 @@ public:
|
||||
return backendId == DNN_BACKEND_OPENCV ||
|
||||
backendId == DNN_BACKEND_CUDA ||
|
||||
backendId == DNN_BACKEND_WEBNN ||
|
||||
(backendId == DNN_BACKEND_VKCOM && haveVulkan()) ||
|
||||
backendId == DNN_BACKEND_CANN;
|
||||
}
|
||||
|
||||
@@ -511,15 +510,6 @@ public:
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
virtual Ptr<BackendNode> initVkCom(const std::vector<Ptr<BackendWrapper> > &input) CV_OVERRIDE
|
||||
{
|
||||
CV_Assert(!_order.empty());
|
||||
std::shared_ptr<vkcom::OpBase> op(new vkcom::OpPermute(_order));
|
||||
return Ptr<BackendNode>(new VkComBackendNode(input, op));
|
||||
}
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
#ifdef HAVE_TIMVX
|
||||
virtual Ptr<BackendNode> initTimVX(void* timVXInfo_,
|
||||
const std::vector<Ptr<BackendWrapper> > &inputsWrapper,
|
||||
|
||||
@@ -182,10 +182,10 @@ public:
|
||||
if (inputs[0].dims == 3)
|
||||
{
|
||||
// Pool1D
|
||||
kernel_size.assign(1, kernel_size[0]);
|
||||
strides.assign(1, strides[0]);
|
||||
pads_begin.assign(1, pads_begin[0]);
|
||||
pads_end.assign(1, pads_end[0]);
|
||||
kernel_size.resize(1, kernel_size[0]);
|
||||
strides.resize(1, strides[0]);
|
||||
pads_begin.resize(1, pads_begin[0]);
|
||||
pads_end.resize(1, pads_end[0]);
|
||||
}
|
||||
|
||||
#ifdef HAVE_OPENCL
|
||||
@@ -227,13 +227,6 @@ public:
|
||||
return haveHalide() &&
|
||||
(type == MAX || (type == AVE && !pads_begin[0] && !pads_begin[1] && !pads_end[0] && !pads_end[1]));
|
||||
}
|
||||
else if (backendId == DNN_BACKEND_VKCOM)
|
||||
{
|
||||
if (kernel_size.empty() || kernel_size.size() == 2)
|
||||
return haveVulkan() &&
|
||||
(type == MAX || type == AVE);
|
||||
return false;
|
||||
}
|
||||
else if (backendId == DNN_BACKEND_WEBNN)
|
||||
{
|
||||
if (kernel_size.empty() || kernel_size.size() == 2)
|
||||
@@ -501,42 +494,6 @@ public:
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
virtual Ptr<BackendNode> initVkCom(const std::vector<Ptr<BackendWrapper> > &inputs) CV_OVERRIDE
|
||||
{
|
||||
int padding_mode;
|
||||
vkcom::PoolType pool_type;
|
||||
int filter_size[2] = {static_cast<int>(kernel_size[0]), static_cast<int>(kernel_size[1])};
|
||||
int pad_size[2] = {static_cast<int>(pads_begin[0]), static_cast<int>(pads_begin[1])};
|
||||
int stride_size[2] = {static_cast<int>(strides[0]), static_cast<int>(strides[1])};
|
||||
pool_type = type == MAX ? vkcom::kPoolTypeMax:
|
||||
(type == AVE ? vkcom::kPoolTypeAvg:
|
||||
vkcom::kPoolTypeNum);
|
||||
|
||||
if (padMode.empty())
|
||||
{
|
||||
padding_mode = vkcom::kPaddingModeCaffe;
|
||||
}
|
||||
else if (padMode == "VALID")
|
||||
{
|
||||
padding_mode = vkcom::kPaddingModeValid;
|
||||
}
|
||||
else if (padMode == "SAME")
|
||||
{
|
||||
padding_mode = vkcom::kPaddingModeSame;
|
||||
}
|
||||
else
|
||||
CV_Error(Error::StsError, "Unsupported padding mode " + padMode);
|
||||
|
||||
std::shared_ptr<vkcom::OpBase> op(new vkcom::OpPool(filter_size, pad_size,
|
||||
stride_size, padding_mode,
|
||||
pool_type, avePoolPaddedArea));
|
||||
return Ptr<BackendNode>(new VkComBackendNode(inputs, op));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
virtual Ptr<BackendNode> initHalide(const std::vector<Ptr<BackendWrapper> > &inputs) CV_OVERRIDE
|
||||
{
|
||||
if (type == MAX)
|
||||
|
||||
@@ -297,8 +297,7 @@ public:
|
||||
return _explicitSizes || _stepX == _stepY;
|
||||
#endif
|
||||
return backendId == DNN_BACKEND_OPENCV ||
|
||||
backendId == DNN_BACKEND_CUDA ||
|
||||
(backendId == DNN_BACKEND_VKCOM && haveVulkan());
|
||||
backendId == DNN_BACKEND_CUDA;
|
||||
}
|
||||
|
||||
bool getMemoryShapes(const std::vector<MatShape> &inputs,
|
||||
@@ -608,20 +607,6 @@ public:
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
virtual Ptr<BackendNode> initVkCom(const std::vector<Ptr<BackendWrapper> > &input) CV_OVERRIDE
|
||||
{
|
||||
std::shared_ptr<vkcom::OpBase> op(new vkcom::OpPriorBox(_stepX, _stepY,
|
||||
_clip, _numPriors,
|
||||
_variance, _offsetsX,
|
||||
_offsetsY, _boxWidths,
|
||||
_boxHeights));
|
||||
return Ptr<BackendNode>(new VkComBackendNode(input, op));
|
||||
}
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
|
||||
virtual int64 getFLOPS(const std::vector<MatShape> &inputs,
|
||||
const std::vector<MatShape> &outputs) const CV_OVERRIDE
|
||||
{
|
||||
|
||||
@@ -46,7 +46,6 @@
|
||||
#include "../op_halide.hpp"
|
||||
#include "../op_inf_engine.hpp"
|
||||
#include "../ie_ngraph.hpp"
|
||||
#include "../op_vkcom.hpp"
|
||||
#include "../op_webnn.hpp"
|
||||
#include "../op_cann.hpp"
|
||||
|
||||
@@ -117,7 +116,6 @@ public:
|
||||
return backendId == DNN_BACKEND_OPENCV ||
|
||||
backendId == DNN_BACKEND_CUDA ||
|
||||
(backendId == DNN_BACKEND_HALIDE && haveHalide() && axisRaw == 1) ||
|
||||
(backendId == DNN_BACKEND_VKCOM && haveVulkan()) ||
|
||||
backendId == DNN_BACKEND_CANN;
|
||||
}
|
||||
|
||||
@@ -327,18 +325,6 @@ public:
|
||||
}
|
||||
#endif
|
||||
|
||||
virtual Ptr<BackendNode> initVkCom(const std::vector<Ptr<BackendWrapper> > &inputs) CV_OVERRIDE
|
||||
{
|
||||
#ifdef HAVE_VULKAN
|
||||
vkcom::Tensor in = VkComTensor(inputs[0]);
|
||||
int cAxis = normalize_axis(axisRaw, in.dimNum());
|
||||
std::shared_ptr<vkcom::OpBase> op(new vkcom::OpSoftmax(cAxis, logSoftMax));
|
||||
return Ptr<BackendNode>(new VkComBackendNode(inputs, op));
|
||||
#endif // HAVE_VULKAN
|
||||
return Ptr<BackendNode>();
|
||||
}
|
||||
|
||||
|
||||
virtual Ptr<BackendNode> initHalide(const std::vector<Ptr<BackendWrapper> > &inputs) CV_OVERRIDE
|
||||
{
|
||||
#ifdef HAVE_HALIDE
|
||||
|
||||
@@ -32,7 +32,10 @@ std::string detail::NetImplBase::getDumpFileNameBase() const
|
||||
|
||||
Net::Impl::~Impl()
|
||||
{
|
||||
// nothing
|
||||
#ifdef HAVE_VULKAN
|
||||
if (context)
|
||||
context->reset();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -1538,10 +1541,14 @@ string Net::Impl::dump(bool forceAllocation) const
|
||||
else
|
||||
{
|
||||
if (itBackend->second == prevNode)
|
||||
skipId.push_back(idPrev);
|
||||
{
|
||||
if (idPrev != -1)
|
||||
skipId.push_back(idPrev);
|
||||
}
|
||||
else if (!skipId.empty())
|
||||
{
|
||||
skipId.push_back(idPrev);
|
||||
if (idPrev != -1)
|
||||
skipId.push_back(idPrev);
|
||||
std::sort(skipId.begin(), skipId.end());
|
||||
for (int i = 0; i < skipId.size(); i++)
|
||||
{
|
||||
|
||||
@@ -179,6 +179,7 @@ struct Net::Impl : public detail::NetImplBase
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
Ptr<vkcom::Context> context;
|
||||
void initVkComBackend();
|
||||
#endif
|
||||
|
||||
|
||||
@@ -39,7 +39,8 @@ void Net::Impl::fuseLayers(const std::vector<LayerPin>& blobsToKeep_)
|
||||
if(!fusion || (preferableBackend != DNN_BACKEND_OPENCV &&
|
||||
preferableBackend != DNN_BACKEND_CUDA &&
|
||||
preferableBackend != DNN_BACKEND_INFERENCE_ENGINE_NGRAPH &&
|
||||
preferableBackend != DNN_BACKEND_TIMVX))
|
||||
preferableBackend != DNN_BACKEND_TIMVX &&
|
||||
preferableBackend != DNN_BACKEND_VKCOM))
|
||||
return;
|
||||
|
||||
#if 0 // FIXIT mode without fusion is broken due to unsupported layers and handling of "custom" nodes
|
||||
@@ -111,7 +112,8 @@ void Net::Impl::fuseLayers(const std::vector<LayerPin>& blobsToKeep_)
|
||||
break;
|
||||
}
|
||||
|
||||
if (preferableBackend != DNN_BACKEND_OPENCV && preferableBackend != DNN_BACKEND_CUDA)
|
||||
if (preferableBackend != DNN_BACKEND_OPENCV && preferableBackend != DNN_BACKEND_CUDA
|
||||
&& preferableBackend != DNN_BACKEND_VKCOM)
|
||||
continue; // Go to the next layer.
|
||||
|
||||
// TODO: OpenCL target support more fusion styles.
|
||||
@@ -141,6 +143,28 @@ void Net::Impl::fuseLayers(const std::vector<LayerPin>& blobsToKeep_)
|
||||
if (nextActivLayer.empty())
|
||||
break;
|
||||
|
||||
// For now, Vulkan target support fusion with activation of ReLU/ReLU6
|
||||
if (IS_DNN_VULKAN_TARGET(preferableTarget))
|
||||
{
|
||||
if (nextData->type == "ReLU")
|
||||
{
|
||||
Ptr<ReLULayer> nextReLULayer = nextData->layerInstance.dynamicCast<ReLULayer>();
|
||||
CV_Assert(nextReLULayer);
|
||||
if (nextReLULayer->negativeSlope != 0.0f)
|
||||
break; // Skip LeakyReLU
|
||||
}
|
||||
else if (nextData->type == "ReLU6")
|
||||
{
|
||||
Ptr<ReLU6Layer> nextReLU6Layer = nextData->layerInstance.dynamicCast<ReLU6Layer>();
|
||||
CV_Assert(nextReLU6Layer);
|
||||
|
||||
if( fabs(nextReLU6Layer->minValue) > FLT_EPSILON || fabs(nextReLU6Layer->maxValue - 6.0f) > FLT_EPSILON)
|
||||
break; // Skip ReLU6 if the minValue != 0 or maxValue != 6.
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
if (currLayer->setActivation(nextActivLayer))
|
||||
{
|
||||
printf_(("\tfused with %s\n", nextActivLayer->name.c_str()));
|
||||
|
||||
+163
-128
@@ -18,12 +18,13 @@ namespace dnn
|
||||
|
||||
CV__DNN_INLINE_NS_BEGIN
|
||||
|
||||
|
||||
void Net::Impl::initVkComBackend()
|
||||
{
|
||||
CV_TRACE_FUNCTION();
|
||||
CV_Assert(preferableBackend == DNN_BACKEND_VKCOM);
|
||||
|
||||
context = vkcom::Context::create();
|
||||
|
||||
for (MapIdToLayerData::iterator it = layers.begin(); it != layers.end(); it++)
|
||||
{
|
||||
LayerData &ld = it->second;
|
||||
@@ -33,12 +34,9 @@ void Net::Impl::initVkComBackend()
|
||||
continue;
|
||||
}
|
||||
|
||||
ld.skip = false;
|
||||
|
||||
try
|
||||
{
|
||||
ld.backendNodes[DNN_BACKEND_VKCOM] =
|
||||
layer->initVkCom(ld.inputBlobsWrappers);
|
||||
ld.backendNodes[DNN_BACKEND_VKCOM] = layer->initVkCom(ld.inputBlobsWrappers, ld.outputBlobsWrappers);
|
||||
}
|
||||
catch (const cv::Exception& e)
|
||||
{
|
||||
@@ -52,150 +50,187 @@ CV__DNN_INLINE_NS_END
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void copyToTensor(vkcom::Tensor &dst, const Mat &src)
|
||||
int transFusedActivType(Ptr<ActivationLayer> &actLayer)
|
||||
{
|
||||
if (actLayer)
|
||||
{
|
||||
CV_Assert(src.isContinuous() && src.type() == CV_32F);
|
||||
Ptr<ReLULayer> activ_relu = actLayer.dynamicCast<ReLULayer>();
|
||||
Ptr<ReLU6Layer> activ_relu6 = actLayer.dynamicCast<ReLU6Layer>();
|
||||
|
||||
std::vector<int> mat_shape = shape(src);
|
||||
dst.reshape((const char*)src.data, mat_shape);
|
||||
}
|
||||
|
||||
void copyToMat(Mat &dst, vkcom::Tensor &src)
|
||||
{
|
||||
CV_Assert(dst.type() == CV_32F);
|
||||
|
||||
std::vector<int> shape = src.getShape();
|
||||
void *data = src.map();
|
||||
Mat tmp(shape, CV_32F, data);
|
||||
tmp.copyTo(dst);
|
||||
src.unMap();
|
||||
}
|
||||
|
||||
vkcom::Tensor VkComTensor(const Ptr<BackendWrapper>& ptr)
|
||||
{
|
||||
CV_Assert(!ptr.empty());
|
||||
return ptr.dynamicCast<VkComBackendWrapper>()->getTensor();
|
||||
}
|
||||
|
||||
void setDirty(std::vector<Ptr<BackendWrapper> >& ptrs)
|
||||
{
|
||||
for (const Ptr<BackendWrapper>& ptr : ptrs)
|
||||
if (!activ_relu.empty())
|
||||
{
|
||||
ptr.dynamicCast<VkComBackendWrapper>()->setDeviceDirty();
|
||||
if (activ_relu->negativeSlope == 0.0f)
|
||||
{
|
||||
return 1; // kFusedActivRelu
|
||||
}
|
||||
else // Leaky ReLU
|
||||
{
|
||||
return -1; // kFusedActivNone
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<vkcom::Tensor> VkComTensors(const std::vector<Ptr<BackendWrapper> >& ptrs)
|
||||
{
|
||||
std::vector<vkcom::Tensor> vec;
|
||||
vec.reserve(ptrs.size());
|
||||
for (const Ptr<BackendWrapper>& ptr : ptrs)
|
||||
else if (!activ_relu6.empty())
|
||||
{
|
||||
vec.push_back(VkComTensor(ptr));
|
||||
return 2; // kFusedActivRelu6
|
||||
}
|
||||
return vec;
|
||||
else
|
||||
return -1; // kFusedActivUnsupport
|
||||
}
|
||||
else
|
||||
return 0; // kFusedActivNone
|
||||
}
|
||||
|
||||
void copyToTensor(vkcom::Tensor &dst, const Mat &src)
|
||||
{
|
||||
CV_Assert(src.isContinuous() && src.type() == CV_32F);
|
||||
|
||||
std::vector<int> mat_shape = shape(src);
|
||||
|
||||
// The following code will copy the src data from CPU Mat to GPU VkBuffer.
|
||||
dst.reshape((const char*)src.data, mat_shape);
|
||||
}
|
||||
|
||||
void copyToMat(Mat &dst, vkcom::Tensor &src)
|
||||
{
|
||||
CV_Assert(dst.type() == CV_32F);
|
||||
|
||||
std::vector<int> shape = src.getShape();
|
||||
void *data = src.map();
|
||||
Mat tmp(shape, CV_32F, data);
|
||||
tmp.copyTo(dst);
|
||||
src.unMap();
|
||||
}
|
||||
|
||||
vkcom::Tensor VkComTensor(const Ptr<BackendWrapper>& ptr)
|
||||
{
|
||||
CV_Assert(!ptr.empty());
|
||||
return ptr.dynamicCast<VkComBackendWrapper>()->getTensor();
|
||||
}
|
||||
|
||||
void setDirty(std::vector<Ptr<BackendWrapper> >& ptrs)
|
||||
{
|
||||
for (const Ptr<BackendWrapper>& ptr : ptrs)
|
||||
{
|
||||
ptr.dynamicCast<VkComBackendWrapper>()->setDeviceDirty();
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<vkcom::Tensor> VkComTensors(const std::vector<Ptr<BackendWrapper> >& ptrs)
|
||||
{
|
||||
std::vector<vkcom::Tensor> vec;
|
||||
vec.reserve(ptrs.size());
|
||||
for (const Ptr<BackendWrapper>& ptr : ptrs)
|
||||
{
|
||||
vec.push_back(VkComTensor(ptr));
|
||||
}
|
||||
return vec;
|
||||
}
|
||||
|
||||
VkComBackendNode::VkComBackendNode(const std::vector<Ptr<BackendWrapper> >& inputsWrapper,
|
||||
const Ptr<vkcom::OpBase>& op,
|
||||
const std::vector<Ptr<BackendWrapper> >& outputsWrapper)
|
||||
: BackendNode(DNN_BACKEND_VKCOM)
|
||||
{
|
||||
operation = op;
|
||||
|
||||
inputsWrapper_ = inputsWrapper;
|
||||
ins = VkComTensors(inputsWrapper_);
|
||||
|
||||
outputsWrapper_ = outputsWrapper;
|
||||
outs = VkComTensors(outputsWrapper_);
|
||||
}
|
||||
|
||||
bool VkComBackendNode::forward()
|
||||
{
|
||||
for (int i = 0, n = inputsWrapper_.size(); i < n; ++i)
|
||||
{
|
||||
inputsWrapper_[i].dynamicCast<VkComBackendWrapper>()->copyToDevice();
|
||||
}
|
||||
|
||||
VkComBackendNode::VkComBackendNode(const std::vector<Ptr<BackendWrapper> >& inputsWrapper,
|
||||
const std::shared_ptr<vkcom::OpBase>& op,
|
||||
const std::vector<Ptr<BackendWrapper> >& blobsWrapper)
|
||||
: BackendNode(DNN_BACKEND_VKCOM)
|
||||
return operation->forward(ins, outs);
|
||||
}
|
||||
|
||||
VkComBackendWrapper::VkComBackendWrapper(Mat& m) : BackendWrapper(DNN_BACKEND_VKCOM, DNN_TARGET_VULKAN)
|
||||
{
|
||||
CV_Assert(m.isContinuous());
|
||||
copyToTensor(tensor, m);
|
||||
host = &m;
|
||||
hostDirty = false;
|
||||
deviceDirty = false;
|
||||
}
|
||||
|
||||
// Other constructor, need change the logical. The purpose is to decline the data copy.
|
||||
VkComBackendWrapper::VkComBackendWrapper(const Ptr<BackendWrapper>& baseBuffer, Mat& m)
|
||||
: BackendWrapper(DNN_BACKEND_VKCOM, DNN_TARGET_VULKAN)
|
||||
{
|
||||
Ptr<VkComBackendWrapper> base = baseBuffer.dynamicCast<VkComBackendWrapper>();
|
||||
CV_Assert(!base.empty());
|
||||
|
||||
host = &m;
|
||||
tensor = base->tensor;
|
||||
CV_Assert(tensor.count() >= m.total());
|
||||
tensor.reshape(0, shape(m));
|
||||
hostDirty = false;
|
||||
deviceDirty = false;
|
||||
}
|
||||
|
||||
void VkComBackendWrapper::copyToHost()
|
||||
{
|
||||
if (deviceDirty)
|
||||
copyToMat(*host, tensor);
|
||||
}
|
||||
|
||||
void VkComBackendWrapper::setHostDirty()
|
||||
{
|
||||
hostDirty = true;
|
||||
};
|
||||
|
||||
void VkComBackendWrapper::setDeviceDirty()
|
||||
{
|
||||
deviceDirty = true;
|
||||
};
|
||||
|
||||
void VkComBackendWrapper::copyToDevice()
|
||||
{
|
||||
if (hostDirty)
|
||||
{
|
||||
operation = op;
|
||||
|
||||
inputsWrapper_ = inputsWrapper;
|
||||
ins = VkComTensors(inputsWrapper_);
|
||||
|
||||
if (!blobsWrapper.empty())
|
||||
{
|
||||
blobs = VkComTensors(blobsWrapper);
|
||||
}
|
||||
}
|
||||
|
||||
bool VkComBackendNode::forward(std::vector<vkcom::Tensor>& outs)
|
||||
{
|
||||
for (int i = 0, n = inputsWrapper_.size(); i < n; ++i)
|
||||
{
|
||||
inputsWrapper_[i].dynamicCast<VkComBackendWrapper>()->copyToDevice();
|
||||
}
|
||||
|
||||
return operation->forward(ins, blobs, outs);
|
||||
}
|
||||
|
||||
VkComBackendWrapper::VkComBackendWrapper(Mat& m) : BackendWrapper(DNN_BACKEND_VKCOM, DNN_TARGET_VULKAN)
|
||||
{
|
||||
copyToTensor(tensor, m);
|
||||
host = &m;
|
||||
copyToTensor(tensor, *host);
|
||||
hostDirty = false;
|
||||
deviceDirty = false;
|
||||
}
|
||||
}
|
||||
|
||||
VkComBackendWrapper::VkComBackendWrapper(const Ptr<BackendWrapper>& baseBuffer, Mat& m)
|
||||
: BackendWrapper(DNN_BACKEND_VKCOM, DNN_TARGET_VULKAN)
|
||||
{
|
||||
Ptr<VkComBackendWrapper> base = baseBuffer.dynamicCast<VkComBackendWrapper>();
|
||||
CV_Assert(!base.empty());
|
||||
vkcom::Tensor VkComBackendWrapper::getTensor()
|
||||
{
|
||||
return tensor;
|
||||
}
|
||||
|
||||
host = &m;
|
||||
tensor = base->tensor;
|
||||
CV_Assert(tensor.count() >= m.total());
|
||||
tensor.reshape(0, shape(m));
|
||||
hostDirty = false;
|
||||
deviceDirty = false;
|
||||
}
|
||||
Mat* VkComBackendWrapper::getMat()
|
||||
{
|
||||
return host;
|
||||
}
|
||||
|
||||
void VkComBackendWrapper::copyToHost()
|
||||
{
|
||||
if (deviceDirty)
|
||||
copyToMat(*host, tensor);
|
||||
}
|
||||
|
||||
void VkComBackendWrapper::setHostDirty()
|
||||
{
|
||||
hostDirty = true;
|
||||
};
|
||||
|
||||
void VkComBackendWrapper::setDeviceDirty()
|
||||
{
|
||||
deviceDirty = true;
|
||||
};
|
||||
|
||||
void VkComBackendWrapper::copyToDevice()
|
||||
{
|
||||
if (hostDirty)
|
||||
{
|
||||
copyToTensor(tensor, *host);
|
||||
hostDirty = false;
|
||||
}
|
||||
}
|
||||
|
||||
vkcom::Tensor VkComBackendWrapper::getTensor()
|
||||
{
|
||||
return tensor;
|
||||
}
|
||||
#endif
|
||||
void forwardVkCom(std::vector<Ptr<BackendWrapper> > &outputs,
|
||||
const Ptr<BackendNode>& node)
|
||||
{
|
||||
#ifdef HAVE_VULKAN
|
||||
CV_Assert(!node.empty());
|
||||
|
||||
Ptr<VkComBackendNode> node_ = node.dynamicCast<VkComBackendNode>();
|
||||
std::vector<vkcom::Tensor> outs = VkComTensors(outputs);
|
||||
node_->forward(outs);
|
||||
setDirty(outputs);
|
||||
void forwardVkCom(std::vector<Ptr<BackendWrapper> > &outputs,
|
||||
const Ptr<BackendNode>& node)
|
||||
{
|
||||
#ifdef HAVE_VULKAN
|
||||
CV_Assert(!node.empty());
|
||||
|
||||
Ptr<VkComBackendNode> node_ = node.dynamicCast<VkComBackendNode>();
|
||||
|
||||
CV_Assert(node_->forward());
|
||||
setDirty(outputs);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
bool haveVulkan()
|
||||
{
|
||||
bool haveVulkan()
|
||||
{
|
||||
#ifdef HAVE_VULKAN
|
||||
return vkcom::isAvailable();
|
||||
return vkcom::isAvailable();
|
||||
#else
|
||||
return false;
|
||||
return false;
|
||||
#endif // HAVE_VULKAN
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace dnn
|
||||
} // namespace cv
|
||||
|
||||
@@ -18,56 +18,63 @@ namespace cv
|
||||
namespace dnn
|
||||
{
|
||||
#ifdef HAVE_VULKAN
|
||||
std::vector<vkcom::Tensor> VkComTensors(const std::vector<Ptr<BackendWrapper> >& ptrs);
|
||||
std::vector<vkcom::Tensor> VkComTensors(const std::vector<Ptr<BackendWrapper> >& ptrs);
|
||||
|
||||
vkcom::Tensor VkComTensor(const Ptr<BackendWrapper>& ptr);
|
||||
vkcom::Tensor VkComTensor(const Ptr<BackendWrapper>& ptr);
|
||||
|
||||
// Data copied from/to Mat to/from Tensor. Change the shape of dst if
|
||||
// needed to make it the same shape as src
|
||||
void copyToTensor(vkcom::Tensor &dst, const Mat &src);
|
||||
// the input is the OpenCV activation layer, and the output is the activation in Vulkan backend.
|
||||
int transFusedActivType(Ptr<ActivationLayer> &actLayer);
|
||||
|
||||
void copyToMat(Mat &dst, const vkcom::Tensor &src);
|
||||
// Data copied from/to Mat to/from Tensor. Change the shape of dst if
|
||||
// needed to make it the same shape as src
|
||||
void copyToMat(Mat &dst, const vkcom::Tensor &src);
|
||||
void copyToTensor(vkcom::Tensor &dst, const Mat &src);
|
||||
|
||||
class VkComBackendNode : public BackendNode
|
||||
{
|
||||
public:
|
||||
VkComBackendNode(const std::vector<Ptr<BackendWrapper> >& inputsWrapper,
|
||||
const std::shared_ptr<vkcom::OpBase> &op,
|
||||
const std::vector<Ptr<BackendWrapper> >& blobsWrapper =
|
||||
std::vector<Ptr<BackendWrapper> >());
|
||||
void printTensor(vkcom::Tensor &dst);
|
||||
|
||||
bool forward(std::vector<vkcom::Tensor>& outs);
|
||||
// VkComBackendNode contains the input and output of a layer/op.
|
||||
// And the specific weight and the parameter information of the layer will be saved in the Op instance.
|
||||
class VkComBackendNode : public BackendNode
|
||||
{
|
||||
public:
|
||||
VkComBackendNode(const std::vector<Ptr<BackendWrapper> >& inputsWrapper,
|
||||
const Ptr<vkcom::OpBase>& op,
|
||||
const std::vector<Ptr<BackendWrapper> >& outputsWrapper);
|
||||
bool forward();
|
||||
|
||||
private:
|
||||
std::vector<vkcom::Tensor> ins;
|
||||
std::vector<vkcom::Tensor> blobs;
|
||||
std::vector<vkcom::Tensor> outs;
|
||||
std::vector<Ptr<BackendWrapper> > inputsWrapper_;
|
||||
std::shared_ptr<vkcom::OpBase> operation;
|
||||
};
|
||||
std::vector<Ptr<BackendWrapper> > outputsWrapper_;
|
||||
Ptr<vkcom::OpBase> operation;
|
||||
};
|
||||
|
||||
class VkComBackendWrapper : public BackendWrapper
|
||||
{
|
||||
public:
|
||||
VkComBackendWrapper(Mat& m);
|
||||
VkComBackendWrapper(const Ptr<BackendWrapper>& baseBuffer, Mat& m);
|
||||
class VkComBackendWrapper : public BackendWrapper
|
||||
{
|
||||
public:
|
||||
VkComBackendWrapper(Mat& m);
|
||||
VkComBackendWrapper(const Ptr<BackendWrapper>& baseBuffer, Mat& m);
|
||||
|
||||
virtual void copyToHost() CV_OVERRIDE;
|
||||
virtual void setHostDirty() CV_OVERRIDE;
|
||||
void setDeviceDirty();
|
||||
void copyToDevice();
|
||||
vkcom::Tensor getTensor();
|
||||
virtual void copyToHost() CV_OVERRIDE;
|
||||
virtual void setHostDirty() CV_OVERRIDE;
|
||||
void setDeviceDirty();
|
||||
void copyToDevice();
|
||||
vkcom::Tensor getTensor();
|
||||
Mat* getMat();
|
||||
|
||||
private:
|
||||
vkcom::Tensor tensor;
|
||||
Mat* host;
|
||||
bool hostDirty;
|
||||
bool deviceDirty;
|
||||
};
|
||||
|
||||
private:
|
||||
vkcom::Tensor tensor;
|
||||
Mat* host;
|
||||
bool hostDirty;
|
||||
bool deviceDirty;
|
||||
};
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
void forwardVkCom(std::vector<Ptr<BackendWrapper> > &outputs, const Ptr<BackendNode>& node);
|
||||
void forwardVkCom(std::vector<Ptr<BackendWrapper> > &outputs, const Ptr<BackendNode>& node);
|
||||
|
||||
bool haveVulkan();
|
||||
bool haveVulkan();
|
||||
} // namespace dnn
|
||||
} // namespace cv
|
||||
|
||||
|
||||
@@ -89,4 +89,4 @@
|
||||
#include <opencv2/dnn/all_layers.hpp>
|
||||
#include <opencv2/dnn/shape_utils.hpp>
|
||||
|
||||
#include "dnn_common.hpp"
|
||||
#include "dnn_common.hpp"
|
||||
@@ -19,17 +19,15 @@ namespace cv { namespace dnn { namespace vkcom {
|
||||
class Buffer
|
||||
{
|
||||
public:
|
||||
Buffer(VkDevice& device)
|
||||
: device_(device), buffer_(VK_NULL_HANDLE), memory_(VK_NULL_HANDLE){};
|
||||
Buffer(VkDevice& device, size_t size_in_bytes, const char* data);
|
||||
Buffer(VkBufferUsageFlags usageFlag = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT);
|
||||
Buffer(size_t size_in_bytes, const char* data, VkBufferUsageFlags usageFlags = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT);
|
||||
~Buffer();
|
||||
VkDeviceMemory getVkMemory() { return memory_; }
|
||||
VkBuffer getVkBuffer() { return buffer_; }
|
||||
|
||||
private:
|
||||
Buffer();
|
||||
bool init(size_t size_in_bytes, const char* data);
|
||||
VkDevice device_;
|
||||
VkBufferUsageFlags usageFlag_;
|
||||
VkBuffer buffer_;
|
||||
VkDeviceMemory memory_;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
|
||||
#ifndef OPENCV_COMMAND_VULKAN_HPP
|
||||
#define OPENCV_COMMAND_VULKAN_HPP
|
||||
|
||||
#include <queue>
|
||||
#ifdef HAVE_VULKAN
|
||||
#include <vulkan/vulkan.h>
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
#include "fence.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
class CommandPool;
|
||||
// CommandBuffer will record and dispatch the VkCommand, it was allocated from CommandPool.
|
||||
class CommandBuffer
|
||||
{
|
||||
public:
|
||||
~CommandBuffer();
|
||||
|
||||
void beginRecord(VkCommandBufferUsageFlags flag = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT);
|
||||
void endRecord();
|
||||
|
||||
enum BarrierType {
|
||||
READ_WRITE = 0,
|
||||
WRITE_WRITE = 1,
|
||||
};
|
||||
void barrierSource(VkBuffer source, size_t start, size_t size, BarrierType type = READ_WRITE) const;
|
||||
|
||||
VkCommandBuffer get()
|
||||
{
|
||||
return cmdBuffer;
|
||||
}
|
||||
|
||||
private:
|
||||
friend class CommandPool;
|
||||
CommandBuffer(CommandPool* pool);
|
||||
|
||||
CommandPool* cmdPool;
|
||||
VkCommandBuffer cmdBuffer;
|
||||
// If is true, the deconstructor will release the instance, otherwise, re-use it.
|
||||
bool needRelease = true;
|
||||
};
|
||||
|
||||
class CommandPool
|
||||
{
|
||||
public:
|
||||
static Ptr<CommandPool> create(const VkQueue& q, uint32_t _queueFamilyIndex);
|
||||
|
||||
void operator=(const CommandPool &) = delete;
|
||||
CommandPool(CommandPool &other) = delete;
|
||||
|
||||
void reset();
|
||||
~CommandPool();
|
||||
VkCommandPool get() const
|
||||
{
|
||||
return cmdPool;
|
||||
}
|
||||
|
||||
Ptr<CommandBuffer> allocBuffer();
|
||||
void submitAndWait(VkCommandBuffer& buffer) const;
|
||||
|
||||
std::queue<VkCommandBuffer > bufferQueue; // For re-use the CommandBuffer.
|
||||
|
||||
private:
|
||||
CommandPool(const VkQueue& q, uint32_t _queueFamilyIndex);
|
||||
const VkQueue& queue;
|
||||
VkCommandPool cmdPool;
|
||||
uint32_t queueFamilyIndex;
|
||||
};
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
|
||||
|
||||
#endif //OPENCV_COMMAND_VULKAN_HPP
|
||||
@@ -0,0 +1,184 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
|
||||
/*
|
||||
The code has been borrowed from ncnn inference engine (https://github.com/Tencent/ncnn/blob/20230223/src/gpu.cpp)
|
||||
and adapted for OpenCV by Zihao Mu.
|
||||
Below is the original copyright:
|
||||
*/
|
||||
|
||||
// Tencent is pleased to support the open source community by making ncnn available.
|
||||
//
|
||||
// Copyright (C) 2018 THL A29 Limited, a Tencent company. All rights reserved.
|
||||
//
|
||||
// Licensed under the BSD 3-Clause License (the "License"); you may not use this file except
|
||||
// in compliance with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// https://opensource.org/licenses/BSD-3-Clause
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software distributed
|
||||
// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
||||
// CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations under the License.
|
||||
|
||||
#ifndef OPENCV_CONTEXT_VULKAN_HPP
|
||||
#define OPENCV_CONTEXT_VULKAN_HPP
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
#include <vulkan/vulkan.h>
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
#include "command.hpp"
|
||||
#include "pipeline.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
// NOTE: Manually set true to enable ValidationLayers, default is false.
|
||||
const bool enableValidationLayers = false;
|
||||
|
||||
enum GPU_TYPE {
|
||||
GPU_TYPE_NOFOUND = -1,
|
||||
GPU_TYPE_DISCRETE = 0,
|
||||
GPU_TYPE_INTEGRATED = 1,
|
||||
GPU_TYPE_VIRTUAL = 2,
|
||||
GPU_TYPE_CPU_ONLY = 3,
|
||||
};
|
||||
|
||||
// GPUInfo will parse GPU hardware information and save it in param.
|
||||
struct GPUInfo
|
||||
{
|
||||
// memory properties
|
||||
VkPhysicalDeviceMemoryProperties physicalDeviceMemoryProperties;
|
||||
|
||||
// basic info
|
||||
GPU_TYPE type; // cpu, integrated GPU, discrete GPU.
|
||||
uint32_t apiVersion;
|
||||
uint32_t driverVersion;
|
||||
uint32_t vendorId;
|
||||
uint32_t deviceId;
|
||||
char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
|
||||
uint8_t pipelineCacheUUID[VK_UUID_SIZE];
|
||||
|
||||
// hardware limit
|
||||
uint32_t maxSharedMemorySize;
|
||||
uint32_t maxWorkgroupCount_x;
|
||||
uint32_t maxWorkgroupCount_y;
|
||||
uint32_t maxWorkgroupCount_z;
|
||||
uint32_t maxWorkgroup_invocations;
|
||||
uint32_t maxWorkgroupSize_x;
|
||||
uint32_t maxWorkgroupSize_y;
|
||||
uint32_t maxWorkgroupSize_z;
|
||||
size_t memoryMapAlignment;
|
||||
size_t bufferOffsetAlignment;
|
||||
size_t non_coherent_atom_size;
|
||||
size_t bufferImageGranularity;
|
||||
|
||||
uint32_t maxImageDimension_1d;
|
||||
uint32_t maxImageDimension_2d;
|
||||
uint32_t maxImageDimension_3d;
|
||||
float timestampPeriod;
|
||||
|
||||
// runtime
|
||||
uint32_t computeQueueFamilyIndex;
|
||||
uint32_t graphicsQueueFamilyIndex;
|
||||
uint32_t transferQueueFamilyIndex;
|
||||
bool unifiedComputeTransferQueue;
|
||||
|
||||
uint32_t computeQueueCount;
|
||||
uint32_t graphicsQueueCount;
|
||||
uint32_t transferQueueCount;
|
||||
|
||||
// subgroup
|
||||
uint32_t subgroupSize;
|
||||
bool supportSubgroupBasic;
|
||||
bool supportSubgroupVote;
|
||||
bool supportSubgroupBallot;
|
||||
bool supportSubgroupShuffle;
|
||||
|
||||
// TODO! Maybe in OpenCV we just care about if the device supports the FP16 or INT8.
|
||||
// fp16 and int8 feature
|
||||
bool support_fp16_packed;
|
||||
bool support_fp16_storage;
|
||||
bool support_fp16_arithmetic;
|
||||
bool support_int8_packed;
|
||||
bool support_int8_storage;
|
||||
bool support_int8_arithmetic;
|
||||
|
||||
// cooperative matrix
|
||||
bool support_cooperative_matrix;
|
||||
|
||||
// extension capability
|
||||
int support_VK_KHR_8bit_storage;
|
||||
int support_VK_KHR_16bit_storage;
|
||||
int support_VK_KHR_bind_memory2;
|
||||
int support_VK_KHR_create_renderpass2;
|
||||
int support_VK_KHR_dedicated_allocation;
|
||||
int support_VK_KHR_descriptor_update_template;
|
||||
int support_VK_KHR_external_memory;
|
||||
int support_VK_KHR_get_memory_requirements2;
|
||||
int support_VK_KHR_maintenance1;
|
||||
int support_VK_KHR_maintenance2;
|
||||
int support_VK_KHR_maintenance3;
|
||||
int support_VK_KHR_multiview;
|
||||
int support_VK_KHR_portability_subset;
|
||||
int support_VK_KHR_push_descriptor;
|
||||
int support_VK_KHR_sampler_ycbcr_conversion;
|
||||
int support_VK_KHR_shader_float16_int8;
|
||||
int support_VK_KHR_shader_float_controls;
|
||||
int support_VK_KHR_storage_buffer_storage_class;
|
||||
int support_VK_KHR_swapchain;
|
||||
int support_VK_EXT_descriptor_indexing;
|
||||
int support_VK_EXT_memory_budget;
|
||||
int support_VK_EXT_queue_family_foreign;
|
||||
#if defined(__ANDROID_API__) && __ANDROID_API__ >= 26
|
||||
int support_VK_ANDROID_external_memory_android_hardware_buffer;
|
||||
#endif // __ANDROID_API__ >= 26
|
||||
int support_VK_NV_cooperative_matrix;
|
||||
};
|
||||
|
||||
// It contains all source we need in Vulkan Backend.
|
||||
// every class may need use the resource from context.
|
||||
class Context
|
||||
{
|
||||
public:
|
||||
static Ptr<Context> create();
|
||||
|
||||
void operator=(const Context &) = delete;
|
||||
Context(Context &other) = delete;
|
||||
~Context(); // TODO deconstruct this class when net was deconstructed.
|
||||
void reset();
|
||||
private:
|
||||
GPUInfo parseGPUInfo(VkPhysicalDevice& device);
|
||||
|
||||
// The following function will create kInstance.
|
||||
void createInstance();
|
||||
int findBestPhysicalGPUIndex();
|
||||
Context();
|
||||
|
||||
// Vulkan related resource.
|
||||
VkInstance kInstance = VK_NULL_HANDLE;
|
||||
VkPhysicalDevice kPhysicalDevice = VK_NULL_HANDLE;
|
||||
|
||||
uint32_t kQueueFamilyIndex;
|
||||
|
||||
std::vector<GPUInfo> gpuInfoList; // store all available GPU information.
|
||||
int bestGPUIndex;
|
||||
|
||||
std::vector<const char *> kEnabledLayers;
|
||||
VkDebugReportCallbackEXT kDebugReportCallback = VK_NULL_HANDLE;
|
||||
|
||||
// Extension things
|
||||
std::vector<const char *> enabledExtensions;
|
||||
uint32_t instanceExtensionPropertyCount;
|
||||
std::vector<VkExtensionProperties> instanceExtensionProperties;
|
||||
uint32_t instanceApiVersion;
|
||||
};
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
#endif //OPENCV_CONTEXT_VULKAN_HPP
|
||||
@@ -0,0 +1,33 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
|
||||
#ifndef OPENCV_FENCE_HPP
|
||||
#define OPENCV_FENCE_HPP
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
#include <vulkan/vulkan.h>
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
#ifdef HAVE_VULKAN
|
||||
// Used for synchronize and wait
|
||||
class Fence
|
||||
{
|
||||
public:
|
||||
Fence();
|
||||
~Fence();
|
||||
|
||||
VkFence get() const;
|
||||
VkResult reset() const;
|
||||
VkResult wait() const;
|
||||
|
||||
private:
|
||||
VkFence fence;
|
||||
};
|
||||
#endif // HAVE_VULKAN
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
|
||||
#endif //OPENCV_FENCE_HPP
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include "vkcom.hpp"
|
||||
#include "context.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
@@ -23,31 +24,14 @@ class OpBase
|
||||
public:
|
||||
OpBase();
|
||||
virtual ~OpBase();
|
||||
virtual bool forward(std::vector<Tensor>& ins,
|
||||
std::vector<Tensor>& blobs,
|
||||
std::vector<Tensor>& outs) = 0;
|
||||
virtual bool forward(std::vector<Tensor>& ins, std::vector<Tensor>& outs) = 0;
|
||||
protected:
|
||||
void initVulkanThing(int buffer_num);
|
||||
void createDescriptorSetLayout(int buffer_num);
|
||||
void createDescriptorSet(int buffer_num);
|
||||
void createShaderModule(const uint32_t* spv, size_t sz, const std::string& source = std::string());
|
||||
void createPipeline(size_t push_constants_size = 0, VkSpecializationInfo* specialization_info = 0);
|
||||
void createCommandBuffer();
|
||||
void recordCommandBuffer(void* push_constants = NULL, size_t push_constants_size = 0);
|
||||
void runCommandBuffer();
|
||||
|
||||
VkPipeline pipeline_;
|
||||
VkCommandBuffer cmd_buffer_;
|
||||
VkDescriptorPool descriptor_pool_;
|
||||
VkDescriptorSet descriptor_set_;
|
||||
VkDevice device_;
|
||||
VkDescriptorSetLayout descriptor_set_layout_;
|
||||
VkPipelineLayout pipeline_layout_;
|
||||
VkShaderModule module_;
|
||||
std::vector<VkDescriptorType> destTypes; // Save the input data type.
|
||||
std::string shader_name; // the key which is used for retrieve Pipeline from PipelineFactory.
|
||||
std::string type_;
|
||||
int group_x_;
|
||||
int group_y_;
|
||||
int group_z_;
|
||||
std::string type_;
|
||||
};
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#ifndef OPENCV_DNN_VKCOM_OP_CONCAT_HPP
|
||||
#define OPENCV_DNN_VKCOM_OP_CONCAT_HPP
|
||||
|
||||
#include "vkcom.hpp"
|
||||
#include "op_base.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
struct ConcatShaderConfig
|
||||
{
|
||||
int local_size_x;
|
||||
int local_size_y;
|
||||
int local_size_z;
|
||||
int block_height;
|
||||
int block_width;
|
||||
int block_depth;
|
||||
};
|
||||
|
||||
class OpConcat: public OpBase
|
||||
{
|
||||
public:
|
||||
OpConcat(const int axis);
|
||||
bool forward(std::vector<Tensor>& ins, Tensor& out);
|
||||
void reshapeOutTensor(std::vector<Tensor *>& in, Tensor& out);
|
||||
virtual bool forward(std::vector<Tensor>& ins,
|
||||
std::vector<Tensor>& blobs,
|
||||
std::vector<Tensor>& outs) CV_OVERRIDE;
|
||||
|
||||
private:
|
||||
bool init(const int axis);
|
||||
bool computeGroupCount();
|
||||
|
||||
ConcatShaderConfig config_;
|
||||
int axis_;
|
||||
int out_concat_axis_;
|
||||
int accumulated_concat_axis_;
|
||||
int concat_size_;
|
||||
int total_concat_size_;
|
||||
int thread_num_;
|
||||
};
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
|
||||
#endif // OPENCV_DNN_VKCOM_OP_CONCAT_HPP
|
||||
@@ -17,10 +17,10 @@ namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
enum ConvShaderType
|
||||
{
|
||||
kConvShaderTypeBasic = 0,
|
||||
kConvShaderType48,
|
||||
kConvShaderTypeDepthWise,
|
||||
kConvShaderTypeNum
|
||||
kConvShaderTypeGeneric = 0,
|
||||
kConvShaderTypeDepthWise = 2, // special branch
|
||||
kConvShaderTypeWinograd = 3,
|
||||
kConvShaderTest = 4,
|
||||
};
|
||||
|
||||
struct ConvShaderConfig
|
||||
@@ -28,55 +28,46 @@ struct ConvShaderConfig
|
||||
int local_size_x;
|
||||
int local_size_y;
|
||||
int local_size_z;
|
||||
int block_height;
|
||||
int block_width;
|
||||
int block_depth;
|
||||
ConvShaderType shader_type;
|
||||
};
|
||||
|
||||
// Current Vulkan Convolution layer only support Conv2D.
|
||||
class OpConv : public OpBase
|
||||
{
|
||||
public:
|
||||
OpConv(const int out_channel, const bool has_bias,
|
||||
const int* filter_size, const int* pad,
|
||||
const int* stride, const int* dilation,
|
||||
const int activation, const int group,
|
||||
const int padding_mode);
|
||||
void reshapeOutTensor(Tensor& in, Tensor& out);
|
||||
bool forward(Tensor& in, Tensor& filter_weights, Tensor& bias, Tensor& out);
|
||||
virtual bool forward(std::vector<Tensor>& ins,
|
||||
std::vector<Tensor>& blobs,
|
||||
std::vector<Tensor>& outs) CV_OVERRIDE;
|
||||
OpConv(const Mat& weightBlob, const std::vector<float>& biasvec, int activType, const int ngroups, const int K, const int C, const int Hk, const int Wk,
|
||||
const int stride_h, const int stride_w, const int dilation_h, const int dilation_w,
|
||||
const int pad_left, const int pad_top);
|
||||
~OpConv();
|
||||
|
||||
void firstForward(); // Execute only in the first forward.
|
||||
virtual bool forward(std::vector<Tensor>& ins, std::vector<Tensor>& outs) CV_OVERRIDE;
|
||||
|
||||
std::vector<float> biasCopy;
|
||||
Ptr<Tensor> weightTensorPtr;
|
||||
Ptr<Tensor> biasTensorPtr;
|
||||
|
||||
private:
|
||||
bool init(const int out_channel, const bool has_bias,
|
||||
const int* filter_size, const int* pad,
|
||||
const int* stride, const int* dilation,
|
||||
const int activation, const int group,
|
||||
const int padding_mode);
|
||||
bool computeGroupCount();
|
||||
|
||||
int batch_;
|
||||
int in_height_;
|
||||
int in_width_;
|
||||
int in_channel_;
|
||||
int out_height_;
|
||||
int out_width_;
|
||||
int out_channel_;
|
||||
int filter_height_;
|
||||
int filter_width_;
|
||||
int stride_height_;
|
||||
int stride_width_;
|
||||
int padding_top_;
|
||||
int padding_left_;
|
||||
int dilation_height_;
|
||||
int dilation_width_;
|
||||
int activation_;
|
||||
PaddingMode padding_mode_;
|
||||
int group_;
|
||||
int has_bias_;
|
||||
Tensor swizzled_weights;
|
||||
ConvShaderConfig config_;
|
||||
bool dwconv_;
|
||||
FusedActivationType activ;
|
||||
const int ngroups;
|
||||
const int K, C, Hk, Wk; // output channel, input channel, height of kernel, width of kernel.
|
||||
const int stride_h, stride_w;
|
||||
const int dilation_h, dilation_w;
|
||||
const int pad_left, pad_top;
|
||||
|
||||
int H0, W0;
|
||||
int Hi, Wi;
|
||||
int batch;
|
||||
int Kg, Cg;
|
||||
int CgHkWk, CgHkWk_aligned, ksize;
|
||||
|
||||
int STRIP_LEN;
|
||||
bool fast_1x1 = false;
|
||||
|
||||
ConvShaderType shaderType;
|
||||
ConvShaderConfig config;
|
||||
bool firstForwardFinsh = false;
|
||||
};
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#ifndef OPENCV_DNN_VKCOM_OP_LRN_HPP
|
||||
#define OPENCV_DNN_VKCOM_OP_LRN_HPP
|
||||
|
||||
#include "vkcom.hpp"
|
||||
#include "op_base.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
enum LRNShaderType
|
||||
{
|
||||
kLRNShaderTypeBasic = 0,
|
||||
kLRNShaderTypeNum
|
||||
};
|
||||
|
||||
struct LRNShaderConfig
|
||||
{
|
||||
int local_size_x;
|
||||
int local_size_y;
|
||||
int local_size_z;
|
||||
int block_height;
|
||||
int block_width;
|
||||
int block_depth;
|
||||
LRNShaderType shader_type;
|
||||
};
|
||||
|
||||
class OpLRN : public OpBase
|
||||
{
|
||||
public:
|
||||
OpLRN(const int radius, const float bias,
|
||||
const float alpha, const float beta,
|
||||
const bool norm_by_size);
|
||||
void reshapeOutTensor(Tensor& in, Tensor& out);
|
||||
bool forward(Tensor& in, Tensor& out);
|
||||
virtual bool forward(std::vector<Tensor>& ins,
|
||||
std::vector<Tensor>& blobs,
|
||||
std::vector<Tensor>& outs) CV_OVERRIDE;
|
||||
|
||||
private:
|
||||
bool init(const int radius, const float bias,
|
||||
const float alpha, const float beta,
|
||||
const bool norm_by_size);
|
||||
bool computeGroupCount();
|
||||
int batch_;
|
||||
int height_;
|
||||
int width_;
|
||||
int channels_;
|
||||
int radius_;
|
||||
float bias_;
|
||||
float alpha_;
|
||||
float beta_;
|
||||
int filter_len_;
|
||||
int thread_num_;
|
||||
bool norm_by_size_;
|
||||
LRNShaderConfig config_;
|
||||
};
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
|
||||
#endif // OPENCV_DNN_VKCOM_OP_LRN_HPP
|
||||
@@ -0,0 +1,47 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
|
||||
#ifndef OPENCV_OP_MATMUL_HPP
|
||||
#define OPENCV_OP_MATMUL_HPP
|
||||
|
||||
#include "vkcom.hpp"
|
||||
#include "op_base.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
struct MatMulShaderConfig
|
||||
{
|
||||
int local_size_x;
|
||||
int local_size_y;
|
||||
int local_size_z;
|
||||
};
|
||||
|
||||
// Current Vulkan Convolution layer only support Conv2D.
|
||||
class OpMatMul : public OpBase
|
||||
{
|
||||
public:
|
||||
OpMatMul(std::vector<Mat>& matBlobs, const int M, const int K, const int N);
|
||||
|
||||
void firstForward(); // Execute only in the first forward.
|
||||
virtual bool forward(std::vector<Tensor>& ins, std::vector<Tensor>& outs) CV_OVERRIDE;
|
||||
Ptr<Tensor> weightTensorPtr;
|
||||
private:
|
||||
bool computeGroupCount();
|
||||
|
||||
const int M, K, N;
|
||||
|
||||
int Hi, Wi;
|
||||
int H0, W0;
|
||||
int batch;
|
||||
|
||||
MatMulShaderConfig config;
|
||||
bool firstForwardFinsh = false;
|
||||
};
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
#endif //OPENCV_OP_MATMUL_HPP
|
||||
@@ -1,50 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#ifndef OPENCV_DNN_VKCOM_OP_PERMUTE_HPP
|
||||
#define OPENCV_DNN_VKCOM_OP_PERMUTE_HPP
|
||||
|
||||
#include "vkcom.hpp"
|
||||
#include "op_base.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
class OpPermute: public OpBase
|
||||
{
|
||||
public:
|
||||
OpPermute(std::vector<size_t>& order);
|
||||
bool forward(std::vector<Tensor>& ins, std::vector<Tensor>& outs);
|
||||
void reshapeOutTensor(std::vector<Tensor *>& in, std::vector<Tensor>& outs);
|
||||
virtual bool forward(std::vector<Tensor>& ins,
|
||||
std::vector<Tensor>& blobs,
|
||||
std::vector<Tensor>& outs) CV_OVERRIDE;
|
||||
|
||||
private:
|
||||
void prepareStrides(const Shape &shape_before, const Shape &shape_after);
|
||||
bool computeGroupCount();
|
||||
|
||||
std::vector<int> order_;
|
||||
bool need_permute_;
|
||||
int global_size_;
|
||||
int nthreads_;
|
||||
int dims_;
|
||||
Tensor tensor_order_;
|
||||
Tensor tensor_old_stride_;
|
||||
Tensor tensor_new_stride_;
|
||||
std::vector<int> old_stride_;
|
||||
std::vector<int> new_stride_;
|
||||
Shape in_shape_;
|
||||
Shape out_shape_;
|
||||
};
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
|
||||
#endif // OPENCV_DNN_VKCOM_OP_PERMUTE_HPP
|
||||
@@ -1,70 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#ifndef OPENCV_DNN_VKCOM_OP_POOL_HPP
|
||||
#define OPENCV_DNN_VKCOM_OP_POOL_HPP
|
||||
|
||||
#include "vkcom.hpp"
|
||||
#include "op_base.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
enum PoolType { kPoolTypeAvg, kPoolTypeMax, kPoolTypeNum };
|
||||
|
||||
struct PoolShaderConfig
|
||||
{
|
||||
int local_size_x;
|
||||
int local_size_y;
|
||||
int local_size_z;
|
||||
int block_height;
|
||||
int block_width;
|
||||
int block_depth;
|
||||
};
|
||||
|
||||
class OpPool: public OpBase
|
||||
{
|
||||
public:
|
||||
OpPool(const int* filter_size, const int* pad, const int* stride,
|
||||
const int padding_mode, const PoolType pool_type,
|
||||
const bool avg_pool_padded_area);
|
||||
bool forward(Tensor& in, Tensor& out, Tensor& mask);
|
||||
void reshapeOutTensor(Tensor& in, Tensor& out);
|
||||
virtual bool forward(std::vector<Tensor>& ins,
|
||||
std::vector<Tensor>& blobs,
|
||||
std::vector<Tensor>& outs) CV_OVERRIDE;
|
||||
private:
|
||||
bool init(const int* filter_size, const int* pad, const int* stride,
|
||||
const int padding_mode, const PoolType type, const bool avg_pool_padded_area);
|
||||
bool computeGroupCount();
|
||||
|
||||
int batch_;
|
||||
int channels_;
|
||||
int in_height_;
|
||||
int in_width_;
|
||||
int out_height_;
|
||||
int out_width_;
|
||||
int filter_height_;
|
||||
int filter_width_;
|
||||
int stride_height_;
|
||||
int stride_width_;
|
||||
int padding_left_;
|
||||
int padding_top_;
|
||||
PoolType pool_type_;
|
||||
int avg_pool_padded_area_;
|
||||
int need_mask_;
|
||||
PaddingMode padding_mode_;
|
||||
//int activation_;
|
||||
PoolShaderConfig config_;
|
||||
};
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
|
||||
#endif // OPENCV_DNN_VKCOM_OP_POOL_HPP
|
||||
@@ -1,66 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#ifndef OPENCV_DNN_VKCOM_OP_PRIOR_BOX_HPP
|
||||
#define OPENCV_DNN_VKCOM_OP_PRIOR_BOX_HPP
|
||||
|
||||
#include "vkcom.hpp"
|
||||
#include "op_base.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
class OpPriorBox: public OpBase
|
||||
{
|
||||
public:
|
||||
OpPriorBox(float step_x,
|
||||
float step_y,
|
||||
bool clip,
|
||||
int num_priors,
|
||||
std::vector<float>& variance,
|
||||
std::vector<float>& offsets_x,
|
||||
std::vector<float>& offsets_y,
|
||||
std::vector<float>& box_widths,
|
||||
std::vector<float>& box_heights);
|
||||
bool forward(std::vector<Tensor>& in, Tensor& out);
|
||||
void reshapeOutTensor(std::vector<Tensor *>& in, Tensor& out);
|
||||
virtual bool forward(std::vector<Tensor>& ins,
|
||||
std::vector<Tensor>& blobs,
|
||||
std::vector<Tensor>& outs) CV_OVERRIDE;
|
||||
private:
|
||||
bool computeGroupCount();
|
||||
|
||||
int global_size_;
|
||||
int nthreads_;
|
||||
float step_x_;
|
||||
float step_y_;
|
||||
bool clip_;
|
||||
int num_priors_;
|
||||
std::vector<float> variance_;
|
||||
std::vector<float> offsets_x_;
|
||||
std::vector<float> offsets_y_;
|
||||
std::vector<float> box_widths_;
|
||||
std::vector<float> box_heights_;
|
||||
int img_h_;
|
||||
int img_w_;
|
||||
int in_h_;
|
||||
int in_w_;
|
||||
int out_channel_;
|
||||
int out_channel_size_;
|
||||
Tensor tensor_offsets_x_;
|
||||
Tensor tensor_offsets_y_;
|
||||
Tensor tensor_widths_;
|
||||
Tensor tensor_heights_;
|
||||
Tensor tensor_variance_;
|
||||
};
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
|
||||
#endif // OPENCV_DNN_VKCOM_OP_PRIOR_BOX_HPP
|
||||
@@ -1,37 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#ifndef OPENCV_DNN_VKCOM_OP_RELU_HPP
|
||||
#define OPENCV_DNN_VKCOM_OP_RELU_HPP
|
||||
|
||||
#include "vkcom.hpp"
|
||||
#include "op_base.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
class OpReLU: public OpBase
|
||||
{
|
||||
public:
|
||||
OpReLU(const float slope = 1.f);
|
||||
bool forward(Tensor& in, Tensor& out);
|
||||
void reshapeOutTensor(Tensor& in, Tensor& out);
|
||||
virtual bool forward(std::vector<Tensor>& ins,
|
||||
std::vector<Tensor>& blobs,
|
||||
std::vector<Tensor>& outs) CV_OVERRIDE;
|
||||
private:
|
||||
bool computeGroupCount();
|
||||
int total_;
|
||||
float slope_;
|
||||
};
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
|
||||
#endif // OPENCV_DNN_VKCOM_OP_RELU_HPP
|
||||
@@ -1,56 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#ifndef OPENCV_DNN_VKCOM_OP_SOFTMAX_HPP
|
||||
#define OPENCV_DNN_VKCOM_OP_SOFTMAX_HPP
|
||||
|
||||
#include "vkcom.hpp"
|
||||
#include "op_base.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
struct SoftmaxShaderConfig
|
||||
{
|
||||
int local_size_x;
|
||||
int local_size_y;
|
||||
int local_size_z;
|
||||
int block_height;
|
||||
int block_width;
|
||||
int block_depth;
|
||||
};
|
||||
|
||||
class OpSoftmax: public OpBase
|
||||
{
|
||||
public:
|
||||
OpSoftmax(const int axis, const bool log_softmax = false);
|
||||
~OpSoftmax();
|
||||
void reshapeOutTensor(Tensor& in, Tensor& out);
|
||||
bool forward(Tensor& in, Tensor& out);
|
||||
virtual bool forward(std::vector<Tensor>& ins,
|
||||
std::vector<Tensor>& blobs,
|
||||
std::vector<Tensor>& outs) CV_OVERRIDE;
|
||||
private:
|
||||
bool init(const int axis, const bool log_softmax);
|
||||
bool computeGroupCount();
|
||||
|
||||
int axis_;
|
||||
int channels_;
|
||||
int channel_size_;
|
||||
int outer_size_;
|
||||
bool log_softmax_;
|
||||
SoftmaxShaderConfig config_;
|
||||
Tensor* max_tensor_;
|
||||
Tensor* sum_tensor_;
|
||||
};
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
|
||||
#endif // OPENCV_DNN_VKCOM_OP_SOFTMAX_HPP
|
||||
@@ -0,0 +1,104 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
|
||||
#ifndef OPENCV_PIPELINE_VULKAN_HPP
|
||||
#define OPENCV_PIPELINE_VULKAN_HPP
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include "tensor.hpp"
|
||||
#include <map>
|
||||
#include <queue>
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
#include <vulkan/vulkan.h>
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
class Pipeline;
|
||||
class Descriptor
|
||||
{
|
||||
public:
|
||||
static Ptr<Descriptor> create(const VkDescriptorPool& pool, const VkDescriptorSet& set,
|
||||
Pipeline* _pipeline);
|
||||
~Descriptor();
|
||||
|
||||
void writeTensor(Tensor tensor, int bindIndex);
|
||||
// the buffer is bond to the device VkMemory.
|
||||
void writeBuffer(VkBuffer buffer, int bindIndex, size_t size, VkDeviceSize offset = 0);
|
||||
|
||||
VkDescriptorSet get() const
|
||||
{
|
||||
return desSet;
|
||||
}
|
||||
|
||||
private:
|
||||
friend class Pipeline;
|
||||
Descriptor(const VkDescriptorPool& pool, const VkDescriptorSet& set, Pipeline* _pipeline);
|
||||
|
||||
VkDescriptorPool desPool;
|
||||
VkDescriptorSet desSet;
|
||||
Pipeline* pipeline;
|
||||
// If is true, the deconstruct will release the instance, otherwise, re-use it.
|
||||
bool needRelease = true;
|
||||
};
|
||||
|
||||
class Pipeline
|
||||
{
|
||||
public:
|
||||
static Ptr<Pipeline> create(const uint32_t* spv, size_t length, const std::vector<VkDescriptorType>& bufferTypes,
|
||||
VkPipelineCache& cache, const std::vector<uint32_t>& localSize = std::vector<uint32_t>());
|
||||
~Pipeline();
|
||||
|
||||
VkPipeline get() const
|
||||
{
|
||||
return pipelineVK;
|
||||
}
|
||||
|
||||
Ptr<Descriptor> createSet();
|
||||
|
||||
void bind(VkCommandBuffer buffer, VkDescriptorSet descriptorSet) const;
|
||||
|
||||
inline VkDescriptorType argType(int index) const
|
||||
{
|
||||
return bufferTypes[index];
|
||||
}
|
||||
|
||||
// To save the descriptor that can be reused.
|
||||
std::queue<std::pair<VkDescriptorPool, VkDescriptorSet> > descriptorPairQueue;
|
||||
private:
|
||||
Pipeline(const uint32_t* spv, size_t length, const std::vector<VkDescriptorType>& bufferTypes,
|
||||
VkPipelineCache& cache, const std::vector<uint32_t>& localSize = std::vector<uint32_t>());
|
||||
|
||||
VkPipeline pipelineVK;
|
||||
VkPipelineLayout pipelineLayout;
|
||||
std::vector<VkDescriptorPoolSize> desPoolSize;
|
||||
VkDescriptorSetLayout setLayout;
|
||||
std::vector<VkDescriptorType> bufferTypes;
|
||||
};
|
||||
|
||||
class PipelineFactory
|
||||
{
|
||||
public:
|
||||
static Ptr<PipelineFactory> create();
|
||||
|
||||
// Try to retrieve the Pipeline from pipelineCreated, create a new pipeline instance if not found.
|
||||
Ptr<Pipeline> getPipeline(const std::string& key, const std::vector<VkDescriptorType>& types,
|
||||
const std::vector<uint32_t>& localSize = std::vector<uint32_t>());
|
||||
~PipelineFactory();
|
||||
void reset();
|
||||
|
||||
void operator=(const PipelineFactory &) = delete;
|
||||
PipelineFactory(PipelineFactory &other) = delete;
|
||||
private:
|
||||
PipelineFactory();
|
||||
mutable std::map<std::string, Ptr<Pipeline> > pipelineCreated;
|
||||
VkPipelineCache pipelineCache;
|
||||
};
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
#endif //OPENCV_PIPELINE_VULKAN_HPP
|
||||
@@ -1,9 +1,6 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#ifndef OPENCV_DNN_VKCOM_TENSOR_HPP
|
||||
#define OPENCV_DNN_VKCOM_TENSOR_HPP
|
||||
@@ -23,8 +20,9 @@ class Buffer;
|
||||
class Tensor
|
||||
{
|
||||
public:
|
||||
Tensor(Format fmt = kFormatFp32);
|
||||
Tensor(const char* data, std::vector<int>& shape, Format fmt = kFormatFp32);
|
||||
Tensor(Format fmt = kFormatFp32, VkBufferUsageFlags usageFlag = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT);
|
||||
Tensor(const char* data, std::vector<int>& shape, Format fmt = kFormatFp32,
|
||||
VkBufferUsageFlags usageFlag = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT);
|
||||
void* map();
|
||||
void unMap();
|
||||
Shape getShape() const;
|
||||
@@ -42,14 +40,14 @@ public:
|
||||
size_t size() const { return size_in_byte_; }
|
||||
bool isEmpty() { return size_in_byte_ == 0 ? true : false; }
|
||||
void copyTo(Tensor& dst);
|
||||
std::shared_ptr<Buffer> getBuffer() { return buffer_; }
|
||||
Ptr<Buffer> getBuffer() { return buffer_; }
|
||||
|
||||
private:
|
||||
VkDevice device_;
|
||||
std::vector<int> shape_;
|
||||
size_t size_in_byte_;
|
||||
std::shared_ptr<Buffer> buffer_;
|
||||
Ptr<Buffer> buffer_;
|
||||
Format format_;
|
||||
VkBufferUsageFlags usageFlag_;
|
||||
};
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
@@ -24,19 +24,17 @@ enum Format{
|
||||
};
|
||||
|
||||
enum OpType {
|
||||
kOpTypeNull = -1,
|
||||
kOpTypeConv,
|
||||
kOpTypePool,
|
||||
kOpTypeDWConv,
|
||||
kOpTypeLRN,
|
||||
kOpTypeConcat,
|
||||
kOpTypeSoftmax,
|
||||
kOpTypeReLU,
|
||||
kOpTypePriorBox,
|
||||
kOpTypePermute,
|
||||
kOpTypeNum
|
||||
kOpTypeMatMul,
|
||||
};
|
||||
|
||||
enum FusedActivationType {
|
||||
kFusedActivUnsupport = -1,
|
||||
kFusedActivNone = 0,
|
||||
kFusedActivRelu = 1,
|
||||
kFusedActivRelu6 = 2,
|
||||
};
|
||||
enum PaddingMode { kPaddingModeSame, kPaddingModeValid, kPaddingModeCaffe, kPaddingModeNum };
|
||||
enum FusedActivationType { kNone, kRelu, kRelu1, kRelu6, kActivationNum };
|
||||
typedef std::vector<int> Shape;
|
||||
|
||||
bool isAvailable();
|
||||
@@ -45,16 +43,13 @@ bool isAvailable();
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
|
||||
#include "tensor.hpp"
|
||||
#include "buffer.hpp"
|
||||
#include "tensor.hpp"
|
||||
#include "context.hpp"
|
||||
|
||||
// layer
|
||||
#include "op_base.hpp"
|
||||
#include "op_concat.hpp"
|
||||
#include "op_conv.hpp"
|
||||
#include "op_lrn.hpp"
|
||||
#include "op_softmax.hpp"
|
||||
#include "op_relu.hpp"
|
||||
#include "op_pool.hpp"
|
||||
#include "op_prior_box.hpp"
|
||||
#include "op_permute.hpp"
|
||||
#include "op_matmul.hpp"
|
||||
|
||||
#endif // OPENCV_DNN_VKCOM_HPP
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
#version 450
|
||||
#define LOCAL_SZ_X 256
|
||||
layout(push_constant) uniform pushBlock {
|
||||
int channels;
|
||||
int in_h;
|
||||
int in_w;
|
||||
int out_h;
|
||||
int out_w;
|
||||
int padding_h;
|
||||
int padding_w;
|
||||
int filter_h;
|
||||
int filter_w;
|
||||
int stride_h;
|
||||
int stride_w;
|
||||
int total;
|
||||
int padded_area;
|
||||
} p;
|
||||
|
||||
layout(binding = 0) readonly buffer Input0{
|
||||
float in_buffer[];
|
||||
};
|
||||
|
||||
layout(binding = 1) writeonly buffer Output{
|
||||
float out_buffer[];
|
||||
};
|
||||
|
||||
layout(local_size_x = LOCAL_SZ_X, local_size_y = 1, local_size_z = 1) in;
|
||||
|
||||
void main()
|
||||
{
|
||||
int global_size = int(gl_WorkGroupSize.x * gl_NumWorkGroups.x);
|
||||
int gid = int(gl_GlobalInvocationID.x);
|
||||
for (int index = gid; index < p.total; index += global_size)
|
||||
{
|
||||
const int pw = index % p.out_w;
|
||||
const int ph = (index / p.out_w) % p.out_h;
|
||||
const int c = (index / p.out_w / p.out_h) % p.channels;
|
||||
const int n = index / p.out_w / p.out_h / p.channels;
|
||||
int hstart = ph * p.stride_h - p.padding_h;
|
||||
int wstart = pw * p.stride_w - p.padding_w;
|
||||
int hend = min(hstart + p.filter_h, p.in_h + p.padding_h);
|
||||
int wend = min(wstart + p.filter_w, p.in_w + p.padding_w);
|
||||
int pool_size;
|
||||
if (p.padded_area == 1)
|
||||
{
|
||||
pool_size = (hend - hstart) * (wend - wstart);
|
||||
hstart = max(hstart, 0);
|
||||
wstart = max(wstart, 0);
|
||||
hend = min(hend, p.in_h);
|
||||
wend = min(wend, p.in_w);
|
||||
}
|
||||
else
|
||||
{
|
||||
hstart = max(hstart, 0);
|
||||
wstart = max(wstart, 0);
|
||||
hend = min(hend, p.in_h);
|
||||
wend = min(wend, p.in_w);
|
||||
pool_size = (hend - hstart) * (wend - wstart);
|
||||
}
|
||||
float aveval = 0;
|
||||
int off = (n * p.channels + c) * p.in_h * p.in_w;
|
||||
for (int h = hstart; h < hend; ++h) {
|
||||
for (int w = wstart; w < wend; ++w) {
|
||||
aveval += in_buffer[off + h * p.in_w + w];
|
||||
}
|
||||
}
|
||||
out_buffer[index] = aveval / pool_size;
|
||||
}
|
||||
}
|
||||
@@ -1,208 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
extern const unsigned int avg_pool_spv[1538] = {
|
||||
0x07230203,0x00010000,0x00080001,0x000000f5,0x00000000,0x00020011,0x00000001,0x0006000b,
|
||||
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
|
||||
0x0007000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x00000015,0x00060010,
|
||||
0x00000004,0x00000011,0x00000100,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,
|
||||
0x00040005,0x00000004,0x6e69616d,0x00000000,0x00050005,0x00000008,0x626f6c67,0x735f6c61,
|
||||
0x00657a69,0x00070005,0x0000000d,0x4e5f6c67,0x6f576d75,0x72476b72,0x7370756f,0x00000000,
|
||||
0x00030005,0x00000014,0x00646967,0x00080005,0x00000015,0x475f6c67,0x61626f6c,0x766e496c,
|
||||
0x7461636f,0x496e6f69,0x00000044,0x00040005,0x00000019,0x65646e69,0x00000078,0x00050005,
|
||||
0x00000021,0x68737570,0x636f6c42,0x0000006b,0x00060006,0x00000021,0x00000000,0x6e616863,
|
||||
0x736c656e,0x00000000,0x00050006,0x00000021,0x00000001,0x685f6e69,0x00000000,0x00050006,
|
||||
0x00000021,0x00000002,0x775f6e69,0x00000000,0x00050006,0x00000021,0x00000003,0x5f74756f,
|
||||
0x00000068,0x00050006,0x00000021,0x00000004,0x5f74756f,0x00000077,0x00060006,0x00000021,
|
||||
0x00000005,0x64646170,0x5f676e69,0x00000068,0x00060006,0x00000021,0x00000006,0x64646170,
|
||||
0x5f676e69,0x00000077,0x00060006,0x00000021,0x00000007,0x746c6966,0x685f7265,0x00000000,
|
||||
0x00060006,0x00000021,0x00000008,0x746c6966,0x775f7265,0x00000000,0x00060006,0x00000021,
|
||||
0x00000009,0x69727473,0x685f6564,0x00000000,0x00060006,0x00000021,0x0000000a,0x69727473,
|
||||
0x775f6564,0x00000000,0x00050006,0x00000021,0x0000000b,0x61746f74,0x0000006c,0x00060006,
|
||||
0x00000021,0x0000000c,0x64646170,0x615f6465,0x00616572,0x00030005,0x00000023,0x00000070,
|
||||
0x00030005,0x0000002a,0x00007770,0x00030005,0x00000030,0x00006870,0x00030005,0x00000039,
|
||||
0x00000063,0x00030005,0x00000045,0x0000006e,0x00040005,0x00000050,0x61747368,0x00007472,
|
||||
0x00040005,0x0000005a,0x61747377,0x00007472,0x00040005,0x00000064,0x646e6568,0x00000000,
|
||||
0x00040005,0x00000071,0x646e6577,0x00000000,0x00050005,0x00000084,0x6c6f6f70,0x7a69735f,
|
||||
0x00000065,0x00040005,0x000000ae,0x76657661,0x00006c61,0x00030005,0x000000b0,0x0066666f,
|
||||
0x00030005,0x000000bd,0x00000068,0x00030005,0x000000c7,0x00000077,0x00040005,0x000000d2,
|
||||
0x75706e49,0x00003074,0x00060006,0x000000d2,0x00000000,0x625f6e69,0x65666675,0x00000072,
|
||||
0x00030005,0x000000d4,0x00000000,0x00040005,0x000000e7,0x7074754f,0x00007475,0x00060006,
|
||||
0x000000e7,0x00000000,0x5f74756f,0x66667562,0x00007265,0x00030005,0x000000e9,0x00000000,
|
||||
0x00040047,0x0000000d,0x0000000b,0x00000018,0x00040047,0x00000015,0x0000000b,0x0000001c,
|
||||
0x00050048,0x00000021,0x00000000,0x00000023,0x00000000,0x00050048,0x00000021,0x00000001,
|
||||
0x00000023,0x00000004,0x00050048,0x00000021,0x00000002,0x00000023,0x00000008,0x00050048,
|
||||
0x00000021,0x00000003,0x00000023,0x0000000c,0x00050048,0x00000021,0x00000004,0x00000023,
|
||||
0x00000010,0x00050048,0x00000021,0x00000005,0x00000023,0x00000014,0x00050048,0x00000021,
|
||||
0x00000006,0x00000023,0x00000018,0x00050048,0x00000021,0x00000007,0x00000023,0x0000001c,
|
||||
0x00050048,0x00000021,0x00000008,0x00000023,0x00000020,0x00050048,0x00000021,0x00000009,
|
||||
0x00000023,0x00000024,0x00050048,0x00000021,0x0000000a,0x00000023,0x00000028,0x00050048,
|
||||
0x00000021,0x0000000b,0x00000023,0x0000002c,0x00050048,0x00000021,0x0000000c,0x00000023,
|
||||
0x00000030,0x00030047,0x00000021,0x00000002,0x00040047,0x000000d1,0x00000006,0x00000004,
|
||||
0x00040048,0x000000d2,0x00000000,0x00000018,0x00050048,0x000000d2,0x00000000,0x00000023,
|
||||
0x00000000,0x00030047,0x000000d2,0x00000003,0x00040047,0x000000d4,0x00000022,0x00000000,
|
||||
0x00040047,0x000000d4,0x00000021,0x00000000,0x00040047,0x000000e6,0x00000006,0x00000004,
|
||||
0x00040048,0x000000e7,0x00000000,0x00000019,0x00050048,0x000000e7,0x00000000,0x00000023,
|
||||
0x00000000,0x00030047,0x000000e7,0x00000003,0x00040047,0x000000e9,0x00000022,0x00000000,
|
||||
0x00040047,0x000000e9,0x00000021,0x00000001,0x00040047,0x000000f4,0x0000000b,0x00000019,
|
||||
0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,
|
||||
0x00000001,0x00040020,0x00000007,0x00000007,0x00000006,0x00040015,0x00000009,0x00000020,
|
||||
0x00000000,0x0004002b,0x00000009,0x0000000a,0x00000100,0x00040017,0x0000000b,0x00000009,
|
||||
0x00000003,0x00040020,0x0000000c,0x00000001,0x0000000b,0x0004003b,0x0000000c,0x0000000d,
|
||||
0x00000001,0x0004002b,0x00000009,0x0000000e,0x00000000,0x00040020,0x0000000f,0x00000001,
|
||||
0x00000009,0x0004003b,0x0000000c,0x00000015,0x00000001,0x000f001e,0x00000021,0x00000006,
|
||||
0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,
|
||||
0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x00000022,0x00000009,0x00000021,
|
||||
0x0004003b,0x00000022,0x00000023,0x00000009,0x0004002b,0x00000006,0x00000024,0x0000000b,
|
||||
0x00040020,0x00000025,0x00000009,0x00000006,0x00020014,0x00000028,0x0004002b,0x00000006,
|
||||
0x0000002c,0x00000004,0x0004002b,0x00000006,0x00000035,0x00000003,0x0004002b,0x00000006,
|
||||
0x00000041,0x00000000,0x0004002b,0x00000006,0x00000052,0x00000009,0x0004002b,0x00000006,
|
||||
0x00000056,0x00000005,0x0004002b,0x00000006,0x0000005c,0x0000000a,0x0004002b,0x00000006,
|
||||
0x00000060,0x00000006,0x0004002b,0x00000006,0x00000066,0x00000007,0x0004002b,0x00000006,
|
||||
0x0000006a,0x00000001,0x0004002b,0x00000006,0x00000073,0x00000008,0x0004002b,0x00000006,
|
||||
0x00000077,0x00000002,0x0004002b,0x00000006,0x0000007e,0x0000000c,0x00030016,0x000000ac,
|
||||
0x00000020,0x00040020,0x000000ad,0x00000007,0x000000ac,0x0004002b,0x000000ac,0x000000af,
|
||||
0x00000000,0x0003001d,0x000000d1,0x000000ac,0x0003001e,0x000000d2,0x000000d1,0x00040020,
|
||||
0x000000d3,0x00000002,0x000000d2,0x0004003b,0x000000d3,0x000000d4,0x00000002,0x00040020,
|
||||
0x000000dd,0x00000002,0x000000ac,0x0003001d,0x000000e6,0x000000ac,0x0003001e,0x000000e7,
|
||||
0x000000e6,0x00040020,0x000000e8,0x00000002,0x000000e7,0x0004003b,0x000000e8,0x000000e9,
|
||||
0x00000002,0x0004002b,0x00000009,0x000000f3,0x00000001,0x0006002c,0x0000000b,0x000000f4,
|
||||
0x0000000a,0x000000f3,0x000000f3,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,
|
||||
0x000200f8,0x00000005,0x0004003b,0x00000007,0x00000008,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000014,0x00000007,0x0004003b,0x00000007,0x00000019,0x00000007,0x0004003b,0x00000007,
|
||||
0x0000002a,0x00000007,0x0004003b,0x00000007,0x00000030,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000039,0x00000007,0x0004003b,0x00000007,0x00000045,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000050,0x00000007,0x0004003b,0x00000007,0x0000005a,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000064,0x00000007,0x0004003b,0x00000007,0x00000071,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000084,0x00000007,0x0004003b,0x000000ad,0x000000ae,0x00000007,0x0004003b,0x00000007,
|
||||
0x000000b0,0x00000007,0x0004003b,0x00000007,0x000000bd,0x00000007,0x0004003b,0x00000007,
|
||||
0x000000c7,0x00000007,0x00050041,0x0000000f,0x00000010,0x0000000d,0x0000000e,0x0004003d,
|
||||
0x00000009,0x00000011,0x00000010,0x00050084,0x00000009,0x00000012,0x0000000a,0x00000011,
|
||||
0x0004007c,0x00000006,0x00000013,0x00000012,0x0003003e,0x00000008,0x00000013,0x00050041,
|
||||
0x0000000f,0x00000016,0x00000015,0x0000000e,0x0004003d,0x00000009,0x00000017,0x00000016,
|
||||
0x0004007c,0x00000006,0x00000018,0x00000017,0x0003003e,0x00000014,0x00000018,0x0004003d,
|
||||
0x00000006,0x0000001a,0x00000014,0x0003003e,0x00000019,0x0000001a,0x000200f9,0x0000001b,
|
||||
0x000200f8,0x0000001b,0x000400f6,0x0000001d,0x0000001e,0x00000000,0x000200f9,0x0000001f,
|
||||
0x000200f8,0x0000001f,0x0004003d,0x00000006,0x00000020,0x00000019,0x00050041,0x00000025,
|
||||
0x00000026,0x00000023,0x00000024,0x0004003d,0x00000006,0x00000027,0x00000026,0x000500b1,
|
||||
0x00000028,0x00000029,0x00000020,0x00000027,0x000400fa,0x00000029,0x0000001c,0x0000001d,
|
||||
0x000200f8,0x0000001c,0x0004003d,0x00000006,0x0000002b,0x00000019,0x00050041,0x00000025,
|
||||
0x0000002d,0x00000023,0x0000002c,0x0004003d,0x00000006,0x0000002e,0x0000002d,0x0005008b,
|
||||
0x00000006,0x0000002f,0x0000002b,0x0000002e,0x0003003e,0x0000002a,0x0000002f,0x0004003d,
|
||||
0x00000006,0x00000031,0x00000019,0x00050041,0x00000025,0x00000032,0x00000023,0x0000002c,
|
||||
0x0004003d,0x00000006,0x00000033,0x00000032,0x00050087,0x00000006,0x00000034,0x00000031,
|
||||
0x00000033,0x00050041,0x00000025,0x00000036,0x00000023,0x00000035,0x0004003d,0x00000006,
|
||||
0x00000037,0x00000036,0x0005008b,0x00000006,0x00000038,0x00000034,0x00000037,0x0003003e,
|
||||
0x00000030,0x00000038,0x0004003d,0x00000006,0x0000003a,0x00000019,0x00050041,0x00000025,
|
||||
0x0000003b,0x00000023,0x0000002c,0x0004003d,0x00000006,0x0000003c,0x0000003b,0x00050087,
|
||||
0x00000006,0x0000003d,0x0000003a,0x0000003c,0x00050041,0x00000025,0x0000003e,0x00000023,
|
||||
0x00000035,0x0004003d,0x00000006,0x0000003f,0x0000003e,0x00050087,0x00000006,0x00000040,
|
||||
0x0000003d,0x0000003f,0x00050041,0x00000025,0x00000042,0x00000023,0x00000041,0x0004003d,
|
||||
0x00000006,0x00000043,0x00000042,0x0005008b,0x00000006,0x00000044,0x00000040,0x00000043,
|
||||
0x0003003e,0x00000039,0x00000044,0x0004003d,0x00000006,0x00000046,0x00000019,0x00050041,
|
||||
0x00000025,0x00000047,0x00000023,0x0000002c,0x0004003d,0x00000006,0x00000048,0x00000047,
|
||||
0x00050087,0x00000006,0x00000049,0x00000046,0x00000048,0x00050041,0x00000025,0x0000004a,
|
||||
0x00000023,0x00000035,0x0004003d,0x00000006,0x0000004b,0x0000004a,0x00050087,0x00000006,
|
||||
0x0000004c,0x00000049,0x0000004b,0x00050041,0x00000025,0x0000004d,0x00000023,0x00000041,
|
||||
0x0004003d,0x00000006,0x0000004e,0x0000004d,0x00050087,0x00000006,0x0000004f,0x0000004c,
|
||||
0x0000004e,0x0003003e,0x00000045,0x0000004f,0x0004003d,0x00000006,0x00000051,0x00000030,
|
||||
0x00050041,0x00000025,0x00000053,0x00000023,0x00000052,0x0004003d,0x00000006,0x00000054,
|
||||
0x00000053,0x00050084,0x00000006,0x00000055,0x00000051,0x00000054,0x00050041,0x00000025,
|
||||
0x00000057,0x00000023,0x00000056,0x0004003d,0x00000006,0x00000058,0x00000057,0x00050082,
|
||||
0x00000006,0x00000059,0x00000055,0x00000058,0x0003003e,0x00000050,0x00000059,0x0004003d,
|
||||
0x00000006,0x0000005b,0x0000002a,0x00050041,0x00000025,0x0000005d,0x00000023,0x0000005c,
|
||||
0x0004003d,0x00000006,0x0000005e,0x0000005d,0x00050084,0x00000006,0x0000005f,0x0000005b,
|
||||
0x0000005e,0x00050041,0x00000025,0x00000061,0x00000023,0x00000060,0x0004003d,0x00000006,
|
||||
0x00000062,0x00000061,0x00050082,0x00000006,0x00000063,0x0000005f,0x00000062,0x0003003e,
|
||||
0x0000005a,0x00000063,0x0004003d,0x00000006,0x00000065,0x00000050,0x00050041,0x00000025,
|
||||
0x00000067,0x00000023,0x00000066,0x0004003d,0x00000006,0x00000068,0x00000067,0x00050080,
|
||||
0x00000006,0x00000069,0x00000065,0x00000068,0x00050041,0x00000025,0x0000006b,0x00000023,
|
||||
0x0000006a,0x0004003d,0x00000006,0x0000006c,0x0000006b,0x00050041,0x00000025,0x0000006d,
|
||||
0x00000023,0x00000056,0x0004003d,0x00000006,0x0000006e,0x0000006d,0x00050080,0x00000006,
|
||||
0x0000006f,0x0000006c,0x0000006e,0x0007000c,0x00000006,0x00000070,0x00000001,0x00000027,
|
||||
0x00000069,0x0000006f,0x0003003e,0x00000064,0x00000070,0x0004003d,0x00000006,0x00000072,
|
||||
0x0000005a,0x00050041,0x00000025,0x00000074,0x00000023,0x00000073,0x0004003d,0x00000006,
|
||||
0x00000075,0x00000074,0x00050080,0x00000006,0x00000076,0x00000072,0x00000075,0x00050041,
|
||||
0x00000025,0x00000078,0x00000023,0x00000077,0x0004003d,0x00000006,0x00000079,0x00000078,
|
||||
0x00050041,0x00000025,0x0000007a,0x00000023,0x00000060,0x0004003d,0x00000006,0x0000007b,
|
||||
0x0000007a,0x00050080,0x00000006,0x0000007c,0x00000079,0x0000007b,0x0007000c,0x00000006,
|
||||
0x0000007d,0x00000001,0x00000027,0x00000076,0x0000007c,0x0003003e,0x00000071,0x0000007d,
|
||||
0x00050041,0x00000025,0x0000007f,0x00000023,0x0000007e,0x0004003d,0x00000006,0x00000080,
|
||||
0x0000007f,0x000500aa,0x00000028,0x00000081,0x00000080,0x0000006a,0x000300f7,0x00000083,
|
||||
0x00000000,0x000400fa,0x00000081,0x00000082,0x00000098,0x000200f8,0x00000082,0x0004003d,
|
||||
0x00000006,0x00000085,0x00000064,0x0004003d,0x00000006,0x00000086,0x00000050,0x00050082,
|
||||
0x00000006,0x00000087,0x00000085,0x00000086,0x0004003d,0x00000006,0x00000088,0x00000071,
|
||||
0x0004003d,0x00000006,0x00000089,0x0000005a,0x00050082,0x00000006,0x0000008a,0x00000088,
|
||||
0x00000089,0x00050084,0x00000006,0x0000008b,0x00000087,0x0000008a,0x0003003e,0x00000084,
|
||||
0x0000008b,0x0004003d,0x00000006,0x0000008c,0x00000050,0x0007000c,0x00000006,0x0000008d,
|
||||
0x00000001,0x0000002a,0x0000008c,0x00000041,0x0003003e,0x00000050,0x0000008d,0x0004003d,
|
||||
0x00000006,0x0000008e,0x0000005a,0x0007000c,0x00000006,0x0000008f,0x00000001,0x0000002a,
|
||||
0x0000008e,0x00000041,0x0003003e,0x0000005a,0x0000008f,0x0004003d,0x00000006,0x00000090,
|
||||
0x00000064,0x00050041,0x00000025,0x00000091,0x00000023,0x0000006a,0x0004003d,0x00000006,
|
||||
0x00000092,0x00000091,0x0007000c,0x00000006,0x00000093,0x00000001,0x00000027,0x00000090,
|
||||
0x00000092,0x0003003e,0x00000064,0x00000093,0x0004003d,0x00000006,0x00000094,0x00000071,
|
||||
0x00050041,0x00000025,0x00000095,0x00000023,0x00000077,0x0004003d,0x00000006,0x00000096,
|
||||
0x00000095,0x0007000c,0x00000006,0x00000097,0x00000001,0x00000027,0x00000094,0x00000096,
|
||||
0x0003003e,0x00000071,0x00000097,0x000200f9,0x00000083,0x000200f8,0x00000098,0x0004003d,
|
||||
0x00000006,0x00000099,0x00000050,0x0007000c,0x00000006,0x0000009a,0x00000001,0x0000002a,
|
||||
0x00000099,0x00000041,0x0003003e,0x00000050,0x0000009a,0x0004003d,0x00000006,0x0000009b,
|
||||
0x0000005a,0x0007000c,0x00000006,0x0000009c,0x00000001,0x0000002a,0x0000009b,0x00000041,
|
||||
0x0003003e,0x0000005a,0x0000009c,0x0004003d,0x00000006,0x0000009d,0x00000064,0x00050041,
|
||||
0x00000025,0x0000009e,0x00000023,0x0000006a,0x0004003d,0x00000006,0x0000009f,0x0000009e,
|
||||
0x0007000c,0x00000006,0x000000a0,0x00000001,0x00000027,0x0000009d,0x0000009f,0x0003003e,
|
||||
0x00000064,0x000000a0,0x0004003d,0x00000006,0x000000a1,0x00000071,0x00050041,0x00000025,
|
||||
0x000000a2,0x00000023,0x00000077,0x0004003d,0x00000006,0x000000a3,0x000000a2,0x0007000c,
|
||||
0x00000006,0x000000a4,0x00000001,0x00000027,0x000000a1,0x000000a3,0x0003003e,0x00000071,
|
||||
0x000000a4,0x0004003d,0x00000006,0x000000a5,0x00000064,0x0004003d,0x00000006,0x000000a6,
|
||||
0x00000050,0x00050082,0x00000006,0x000000a7,0x000000a5,0x000000a6,0x0004003d,0x00000006,
|
||||
0x000000a8,0x00000071,0x0004003d,0x00000006,0x000000a9,0x0000005a,0x00050082,0x00000006,
|
||||
0x000000aa,0x000000a8,0x000000a9,0x00050084,0x00000006,0x000000ab,0x000000a7,0x000000aa,
|
||||
0x0003003e,0x00000084,0x000000ab,0x000200f9,0x00000083,0x000200f8,0x00000083,0x0003003e,
|
||||
0x000000ae,0x000000af,0x0004003d,0x00000006,0x000000b1,0x00000045,0x00050041,0x00000025,
|
||||
0x000000b2,0x00000023,0x00000041,0x0004003d,0x00000006,0x000000b3,0x000000b2,0x00050084,
|
||||
0x00000006,0x000000b4,0x000000b1,0x000000b3,0x0004003d,0x00000006,0x000000b5,0x00000039,
|
||||
0x00050080,0x00000006,0x000000b6,0x000000b4,0x000000b5,0x00050041,0x00000025,0x000000b7,
|
||||
0x00000023,0x0000006a,0x0004003d,0x00000006,0x000000b8,0x000000b7,0x00050084,0x00000006,
|
||||
0x000000b9,0x000000b6,0x000000b8,0x00050041,0x00000025,0x000000ba,0x00000023,0x00000077,
|
||||
0x0004003d,0x00000006,0x000000bb,0x000000ba,0x00050084,0x00000006,0x000000bc,0x000000b9,
|
||||
0x000000bb,0x0003003e,0x000000b0,0x000000bc,0x0004003d,0x00000006,0x000000be,0x00000050,
|
||||
0x0003003e,0x000000bd,0x000000be,0x000200f9,0x000000bf,0x000200f8,0x000000bf,0x000400f6,
|
||||
0x000000c1,0x000000c2,0x00000000,0x000200f9,0x000000c3,0x000200f8,0x000000c3,0x0004003d,
|
||||
0x00000006,0x000000c4,0x000000bd,0x0004003d,0x00000006,0x000000c5,0x00000064,0x000500b1,
|
||||
0x00000028,0x000000c6,0x000000c4,0x000000c5,0x000400fa,0x000000c6,0x000000c0,0x000000c1,
|
||||
0x000200f8,0x000000c0,0x0004003d,0x00000006,0x000000c8,0x0000005a,0x0003003e,0x000000c7,
|
||||
0x000000c8,0x000200f9,0x000000c9,0x000200f8,0x000000c9,0x000400f6,0x000000cb,0x000000cc,
|
||||
0x00000000,0x000200f9,0x000000cd,0x000200f8,0x000000cd,0x0004003d,0x00000006,0x000000ce,
|
||||
0x000000c7,0x0004003d,0x00000006,0x000000cf,0x00000071,0x000500b1,0x00000028,0x000000d0,
|
||||
0x000000ce,0x000000cf,0x000400fa,0x000000d0,0x000000ca,0x000000cb,0x000200f8,0x000000ca,
|
||||
0x0004003d,0x00000006,0x000000d5,0x000000b0,0x0004003d,0x00000006,0x000000d6,0x000000bd,
|
||||
0x00050041,0x00000025,0x000000d7,0x00000023,0x00000077,0x0004003d,0x00000006,0x000000d8,
|
||||
0x000000d7,0x00050084,0x00000006,0x000000d9,0x000000d6,0x000000d8,0x00050080,0x00000006,
|
||||
0x000000da,0x000000d5,0x000000d9,0x0004003d,0x00000006,0x000000db,0x000000c7,0x00050080,
|
||||
0x00000006,0x000000dc,0x000000da,0x000000db,0x00060041,0x000000dd,0x000000de,0x000000d4,
|
||||
0x00000041,0x000000dc,0x0004003d,0x000000ac,0x000000df,0x000000de,0x0004003d,0x000000ac,
|
||||
0x000000e0,0x000000ae,0x00050081,0x000000ac,0x000000e1,0x000000e0,0x000000df,0x0003003e,
|
||||
0x000000ae,0x000000e1,0x000200f9,0x000000cc,0x000200f8,0x000000cc,0x0004003d,0x00000006,
|
||||
0x000000e2,0x000000c7,0x00050080,0x00000006,0x000000e3,0x000000e2,0x0000006a,0x0003003e,
|
||||
0x000000c7,0x000000e3,0x000200f9,0x000000c9,0x000200f8,0x000000cb,0x000200f9,0x000000c2,
|
||||
0x000200f8,0x000000c2,0x0004003d,0x00000006,0x000000e4,0x000000bd,0x00050080,0x00000006,
|
||||
0x000000e5,0x000000e4,0x0000006a,0x0003003e,0x000000bd,0x000000e5,0x000200f9,0x000000bf,
|
||||
0x000200f8,0x000000c1,0x0004003d,0x00000006,0x000000ea,0x00000019,0x0004003d,0x000000ac,
|
||||
0x000000eb,0x000000ae,0x0004003d,0x00000006,0x000000ec,0x00000084,0x0004006f,0x000000ac,
|
||||
0x000000ed,0x000000ec,0x00050088,0x000000ac,0x000000ee,0x000000eb,0x000000ed,0x00060041,
|
||||
0x000000dd,0x000000ef,0x000000e9,0x00000041,0x000000ea,0x0003003e,0x000000ef,0x000000ee,
|
||||
0x000200f9,0x0000001e,0x000200f8,0x0000001e,0x0004003d,0x00000006,0x000000f0,0x00000008,
|
||||
0x0004003d,0x00000006,0x000000f1,0x00000019,0x00050080,0x00000006,0x000000f2,0x000000f1,
|
||||
0x000000f0,0x0003003e,0x00000019,0x000000f2,0x000200f9,0x0000001b,0x000200f8,0x0000001d,
|
||||
0x000100fd,0x00010038
|
||||
};
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,29 +0,0 @@
|
||||
#version 450
|
||||
#define LOCAL_SZ_X 256
|
||||
|
||||
layout(push_constant) uniform pushBlock {
|
||||
int out_concat_axis;
|
||||
int accumulated_concat_axis;
|
||||
int concat_size;
|
||||
int total_concat_size;
|
||||
int thread_num;
|
||||
} p;
|
||||
|
||||
layout(binding = 0) readonly buffer Input0{
|
||||
float data[];
|
||||
} src;
|
||||
layout(binding = 1) writeonly buffer Output{
|
||||
float data[];
|
||||
} dst;
|
||||
layout(local_size_x = LOCAL_SZ_X, local_size_y = 1, local_size_z = 1) in;
|
||||
void main()
|
||||
{
|
||||
int index = int(gl_GlobalInvocationID.x);
|
||||
if (index < p.thread_num)
|
||||
{
|
||||
int concat_num = index / p.total_concat_size;
|
||||
int concat_index = index % p.total_concat_size;
|
||||
int out_index = concat_index + (concat_num * p.out_concat_axis + p.accumulated_concat_axis) * p.concat_size;
|
||||
dst.data[out_index] = src.data[index];
|
||||
}
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
extern const unsigned int concat_spv[541] = {
|
||||
0x07230203,0x00010000,0x00080001,0x0000004b,0x00000000,0x00020011,0x00000001,0x0006000b,
|
||||
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
|
||||
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000c,0x00060010,0x00000004,
|
||||
0x00000011,0x00000100,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005,
|
||||
0x00000004,0x6e69616d,0x00000000,0x00040005,0x00000008,0x65646e69,0x00000078,0x00080005,
|
||||
0x0000000c,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00050005,
|
||||
0x00000013,0x68737570,0x636f6c42,0x0000006b,0x00070006,0x00000013,0x00000000,0x5f74756f,
|
||||
0x636e6f63,0x615f7461,0x00736978,0x00090006,0x00000013,0x00000001,0x75636361,0x616c756d,
|
||||
0x5f646574,0x636e6f63,0x615f7461,0x00736978,0x00060006,0x00000013,0x00000002,0x636e6f63,
|
||||
0x735f7461,0x00657a69,0x00080006,0x00000013,0x00000003,0x61746f74,0x6f635f6c,0x7461636e,
|
||||
0x7a69735f,0x00000065,0x00060006,0x00000013,0x00000004,0x65726874,0x6e5f6461,0x00006d75,
|
||||
0x00030005,0x00000015,0x00000070,0x00050005,0x0000001e,0x636e6f63,0x6e5f7461,0x00006d75,
|
||||
0x00060005,0x00000024,0x636e6f63,0x695f7461,0x7865646e,0x00000000,0x00050005,0x00000029,
|
||||
0x5f74756f,0x65646e69,0x00000078,0x00040005,0x0000003b,0x7074754f,0x00007475,0x00050006,
|
||||
0x0000003b,0x00000000,0x61746164,0x00000000,0x00030005,0x0000003d,0x00747364,0x00040005,
|
||||
0x00000040,0x75706e49,0x00003074,0x00050006,0x00000040,0x00000000,0x61746164,0x00000000,
|
||||
0x00030005,0x00000042,0x00637273,0x00040047,0x0000000c,0x0000000b,0x0000001c,0x00050048,
|
||||
0x00000013,0x00000000,0x00000023,0x00000000,0x00050048,0x00000013,0x00000001,0x00000023,
|
||||
0x00000004,0x00050048,0x00000013,0x00000002,0x00000023,0x00000008,0x00050048,0x00000013,
|
||||
0x00000003,0x00000023,0x0000000c,0x00050048,0x00000013,0x00000004,0x00000023,0x00000010,
|
||||
0x00030047,0x00000013,0x00000002,0x00040047,0x0000003a,0x00000006,0x00000004,0x00040048,
|
||||
0x0000003b,0x00000000,0x00000019,0x00050048,0x0000003b,0x00000000,0x00000023,0x00000000,
|
||||
0x00030047,0x0000003b,0x00000003,0x00040047,0x0000003d,0x00000022,0x00000000,0x00040047,
|
||||
0x0000003d,0x00000021,0x00000001,0x00040047,0x0000003f,0x00000006,0x00000004,0x00040048,
|
||||
0x00000040,0x00000000,0x00000018,0x00050048,0x00000040,0x00000000,0x00000023,0x00000000,
|
||||
0x00030047,0x00000040,0x00000003,0x00040047,0x00000042,0x00000022,0x00000000,0x00040047,
|
||||
0x00000042,0x00000021,0x00000000,0x00040047,0x0000004a,0x0000000b,0x00000019,0x00020013,
|
||||
0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000001,
|
||||
0x00040020,0x00000007,0x00000007,0x00000006,0x00040015,0x00000009,0x00000020,0x00000000,
|
||||
0x00040017,0x0000000a,0x00000009,0x00000003,0x00040020,0x0000000b,0x00000001,0x0000000a,
|
||||
0x0004003b,0x0000000b,0x0000000c,0x00000001,0x0004002b,0x00000009,0x0000000d,0x00000000,
|
||||
0x00040020,0x0000000e,0x00000001,0x00000009,0x0007001e,0x00000013,0x00000006,0x00000006,
|
||||
0x00000006,0x00000006,0x00000006,0x00040020,0x00000014,0x00000009,0x00000013,0x0004003b,
|
||||
0x00000014,0x00000015,0x00000009,0x0004002b,0x00000006,0x00000016,0x00000004,0x00040020,
|
||||
0x00000017,0x00000009,0x00000006,0x00020014,0x0000001a,0x0004002b,0x00000006,0x00000020,
|
||||
0x00000003,0x0004002b,0x00000006,0x0000002c,0x00000000,0x0004002b,0x00000006,0x00000030,
|
||||
0x00000001,0x0004002b,0x00000006,0x00000034,0x00000002,0x00030016,0x00000039,0x00000020,
|
||||
0x0003001d,0x0000003a,0x00000039,0x0003001e,0x0000003b,0x0000003a,0x00040020,0x0000003c,
|
||||
0x00000002,0x0000003b,0x0004003b,0x0000003c,0x0000003d,0x00000002,0x0003001d,0x0000003f,
|
||||
0x00000039,0x0003001e,0x00000040,0x0000003f,0x00040020,0x00000041,0x00000002,0x00000040,
|
||||
0x0004003b,0x00000041,0x00000042,0x00000002,0x00040020,0x00000044,0x00000002,0x00000039,
|
||||
0x0004002b,0x00000009,0x00000048,0x00000100,0x0004002b,0x00000009,0x00000049,0x00000001,
|
||||
0x0006002c,0x0000000a,0x0000004a,0x00000048,0x00000049,0x00000049,0x00050036,0x00000002,
|
||||
0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x00000008,
|
||||
0x00000007,0x0004003b,0x00000007,0x0000001e,0x00000007,0x0004003b,0x00000007,0x00000024,
|
||||
0x00000007,0x0004003b,0x00000007,0x00000029,0x00000007,0x00050041,0x0000000e,0x0000000f,
|
||||
0x0000000c,0x0000000d,0x0004003d,0x00000009,0x00000010,0x0000000f,0x0004007c,0x00000006,
|
||||
0x00000011,0x00000010,0x0003003e,0x00000008,0x00000011,0x0004003d,0x00000006,0x00000012,
|
||||
0x00000008,0x00050041,0x00000017,0x00000018,0x00000015,0x00000016,0x0004003d,0x00000006,
|
||||
0x00000019,0x00000018,0x000500b1,0x0000001a,0x0000001b,0x00000012,0x00000019,0x000300f7,
|
||||
0x0000001d,0x00000000,0x000400fa,0x0000001b,0x0000001c,0x0000001d,0x000200f8,0x0000001c,
|
||||
0x0004003d,0x00000006,0x0000001f,0x00000008,0x00050041,0x00000017,0x00000021,0x00000015,
|
||||
0x00000020,0x0004003d,0x00000006,0x00000022,0x00000021,0x00050087,0x00000006,0x00000023,
|
||||
0x0000001f,0x00000022,0x0003003e,0x0000001e,0x00000023,0x0004003d,0x00000006,0x00000025,
|
||||
0x00000008,0x00050041,0x00000017,0x00000026,0x00000015,0x00000020,0x0004003d,0x00000006,
|
||||
0x00000027,0x00000026,0x0005008b,0x00000006,0x00000028,0x00000025,0x00000027,0x0003003e,
|
||||
0x00000024,0x00000028,0x0004003d,0x00000006,0x0000002a,0x00000024,0x0004003d,0x00000006,
|
||||
0x0000002b,0x0000001e,0x00050041,0x00000017,0x0000002d,0x00000015,0x0000002c,0x0004003d,
|
||||
0x00000006,0x0000002e,0x0000002d,0x00050084,0x00000006,0x0000002f,0x0000002b,0x0000002e,
|
||||
0x00050041,0x00000017,0x00000031,0x00000015,0x00000030,0x0004003d,0x00000006,0x00000032,
|
||||
0x00000031,0x00050080,0x00000006,0x00000033,0x0000002f,0x00000032,0x00050041,0x00000017,
|
||||
0x00000035,0x00000015,0x00000034,0x0004003d,0x00000006,0x00000036,0x00000035,0x00050084,
|
||||
0x00000006,0x00000037,0x00000033,0x00000036,0x00050080,0x00000006,0x00000038,0x0000002a,
|
||||
0x00000037,0x0003003e,0x00000029,0x00000038,0x0004003d,0x00000006,0x0000003e,0x00000029,
|
||||
0x0004003d,0x00000006,0x00000043,0x00000008,0x00060041,0x00000044,0x00000045,0x00000042,
|
||||
0x0000002c,0x00000043,0x0004003d,0x00000039,0x00000046,0x00000045,0x00060041,0x00000044,
|
||||
0x00000047,0x0000003d,0x0000002c,0x0000003e,0x0003003e,0x00000047,0x00000046,0x000200f9,
|
||||
0x0000001d,0x000200f8,0x0000001d,0x000100fd,0x00010038
|
||||
};
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,76 +0,0 @@
|
||||
#version 450
|
||||
#define LOCAL_SZ_X 256
|
||||
layout(binding = 0) readonly buffer Input0{
|
||||
float image_data[];
|
||||
};
|
||||
layout(binding = 1) readonly buffer Input1 {
|
||||
float bias_data[];
|
||||
};
|
||||
layout(binding = 2) readonly buffer Input3{
|
||||
float weight_data[];
|
||||
};
|
||||
layout(binding = 3) writeonly buffer Output{
|
||||
float convolved_image_data[];
|
||||
};
|
||||
|
||||
layout(push_constant) uniform pushBlock {
|
||||
int in_h;
|
||||
int in_w;
|
||||
int out_h;
|
||||
int out_w;
|
||||
int stride_h;
|
||||
int stride_w;
|
||||
int pad_h;
|
||||
int pad_w;
|
||||
int filter_h;
|
||||
int filter_w;
|
||||
int dilation_h;
|
||||
int dilation_w;
|
||||
int channels;
|
||||
int batch;
|
||||
int has_bias;
|
||||
int M;
|
||||
int K;
|
||||
int N;
|
||||
int basic_shader_batch_idx;
|
||||
int basic_shader_partition_idx;
|
||||
int basic_shader_partition_size;
|
||||
} p;
|
||||
|
||||
layout(local_size_x = LOCAL_SZ_X, local_size_y = 1, local_size_z = 1) in;
|
||||
void main()
|
||||
{
|
||||
int gx = int(gl_GlobalInvocationID.x);
|
||||
int gy = int(gl_GlobalInvocationID.y) + p.basic_shader_partition_idx * p.basic_shader_partition_size;
|
||||
int gz = p.basic_shader_batch_idx;
|
||||
if(gx < p.M && gy < p.N)
|
||||
{
|
||||
float sum = 0.0f;
|
||||
int output_y = gx / p.out_w;
|
||||
int output_x = gx % p.out_w;
|
||||
int org_y = output_y * p.stride_h - p.pad_h;
|
||||
int org_x = output_x * p.stride_w - p.pad_w;
|
||||
int weight_off = gy * p.K;
|
||||
int input_off = gz * p.in_h * p.in_w * p.channels + (org_y * p.in_w + org_x);
|
||||
for(int c = 0; c < p.channels; c++)
|
||||
{
|
||||
for(int y = 0; y < p.filter_h; y++)
|
||||
{
|
||||
for(int x = 0; x < p.filter_w; x++)
|
||||
{
|
||||
if((org_y + y * p.dilation_h >= 0) && (org_y + y * p.dilation_h < p.in_h) && (org_x + x * p.dilation_w >= 0) && (org_x + x * p.dilation_w < p.in_w))
|
||||
{
|
||||
sum += image_data[input_off + x * p.dilation_w] * weight_data[weight_off + x];
|
||||
}
|
||||
}
|
||||
input_off += p.in_w * p.dilation_h;
|
||||
weight_off += p.filter_w;
|
||||
}
|
||||
input_off += p.in_h * p.in_w - p.in_w * p.filter_h * p.dilation_h;
|
||||
}
|
||||
int offset = gz * p.M * p.N + gx + gy * p.M;
|
||||
if (p.has_bias == 1)
|
||||
sum += bias_data[gy];
|
||||
convolved_image_data[offset] = sum;
|
||||
}
|
||||
}
|
||||
@@ -1,140 +0,0 @@
|
||||
#version 450
|
||||
|
||||
layout (constant_id = 0) const int LOCAL_SZ_X = 0;
|
||||
layout (constant_id = 1) const int LOCAL_SZ_Y = 0;
|
||||
layout (constant_id = 2) const int LOCAL_SZ_Z = 0;
|
||||
layout (constant_id = 3) const int IN_H = 0;
|
||||
layout (constant_id = 4) const int IN_W = 0;
|
||||
layout (constant_id = 5) const int OUT_W = 0;
|
||||
layout (constant_id = 6) const int STRIDE_H = 0;
|
||||
layout (constant_id = 7) const int STRIDE_W = 0;
|
||||
layout (constant_id = 8) const int PAD_H = 0;
|
||||
layout (constant_id = 9) const int PAD_W = 0;
|
||||
layout (constant_id = 10) const int FILTER_H = 0;
|
||||
layout (constant_id = 11) const int FILTER_W = 0;
|
||||
layout (constant_id = 12) const int CHANNELS = 0;
|
||||
layout (constant_id = 13) const int BATCH = 0;
|
||||
layout (constant_id = 14) const int M = 0;
|
||||
layout (constant_id = 15) const int K = 0;
|
||||
layout (constant_id = 16) const int N = 0;
|
||||
layout (constant_id = 17) const int TAIL_M = 0;
|
||||
layout (constant_id = 18) const int DILATION_H = 0;
|
||||
layout (constant_id = 19) const int DILATION_W = 0;
|
||||
|
||||
#if defined(ACTIVATION_RELU)
|
||||
#define ACTIVATION_FUNCTION(x) clamp(x, vec4(0.0), vec4(999999999.0))
|
||||
#elif defined(ACTIVATION_RELU1)
|
||||
#define ACTIVATION_FUNCTION(x) clamp(x, vec4(-1.0), vec4(1.0))
|
||||
#elif defined(ACTIVATION_RELU6)
|
||||
#define ACTIVATION_FUNCTION(x) clamp(x, vec4(0.0), vec4(6.0))
|
||||
#else
|
||||
#define ACTIVATION_FUNCTION(x) (x)
|
||||
#endif
|
||||
|
||||
layout(binding = 0) readonly buffer Input0{
|
||||
float data[];
|
||||
} src0;
|
||||
layout(binding = 1) readonly buffer Input1 {
|
||||
vec4 data[];
|
||||
} bias;
|
||||
layout(binding = 2) readonly buffer Input3{
|
||||
vec4 data[];
|
||||
} src1;
|
||||
layout(binding = 3) writeonly buffer Output{
|
||||
vec4 data[];
|
||||
} out0;
|
||||
|
||||
layout(local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in;
|
||||
|
||||
#define VEC_SIZE 4
|
||||
#define BLOCK_H 4
|
||||
#define BLOCK_W 8
|
||||
#define FILTER_AREA (FILTER_H * FILTER_W)
|
||||
#define LOAD_A(elm_idx, a_component) \
|
||||
src0_x = org_x + ((i * VEC_SIZE + elm_idx) % FILTER_W) * DILATION_W; \
|
||||
src0_y = org_y + (((i * VEC_SIZE + elm_idx) % FILTER_AREA) / FILTER_W) * DILATION_H; \
|
||||
src0_z = (i * VEC_SIZE + elm_idx) / FILTER_AREA; \
|
||||
if(src0_y >= 0 && src0_y < IN_H && src0_x >= 0 && src0_x < IN_W) \
|
||||
{ \
|
||||
a_component = src0.data[input_batch_offset + src0_z * (IN_H * IN_W) + src0_y * IN_W + src0_x]; \
|
||||
}
|
||||
|
||||
#define A_MULTIPLY_BTILE(a, sliver_num, comp) \
|
||||
dst_x = (out_y + sliver_num) % OUT_W; \
|
||||
dst_y = (out_y + sliver_num) / OUT_W; \
|
||||
org_y = dst_y * STRIDE_H - PAD_H; \
|
||||
org_x = dst_x * STRIDE_W - PAD_W; \
|
||||
LOAD_A(0, a.x); \
|
||||
LOAD_A(1, a.y); \
|
||||
LOAD_A(2, a.z); \
|
||||
LOAD_A(3, a.w); \
|
||||
dot0.comp += dot(brow0, a); \
|
||||
dot1.comp += dot(brow1, a); \
|
||||
dot2.comp += dot(brow2, a); \
|
||||
dot3.comp += dot(brow3, a); \
|
||||
dot4.comp += dot(brow4, a); \
|
||||
dot5.comp += dot(brow5, a); \
|
||||
dot6.comp += dot(brow6, a); \
|
||||
dot7.comp += dot(brow7, a);
|
||||
|
||||
void main()
|
||||
{
|
||||
int gx = int(gl_GlobalInvocationID.x);
|
||||
int gy = int(gl_GlobalInvocationID.y);
|
||||
int gz = int(gl_GlobalInvocationID.z);
|
||||
int out_x = BLOCK_W * gx;
|
||||
int out_y = BLOCK_H * gy;
|
||||
int input_batch_offset = gz * IN_H * IN_W * CHANNELS;
|
||||
int output_batch_offset = gz * M * N / VEC_SIZE;
|
||||
if (out_x < N && gy < M / BLOCK_H)
|
||||
{
|
||||
int width0 = K / VEC_SIZE;
|
||||
int width1 = N / VEC_SIZE;
|
||||
int src1_read0_offset = out_x * width0;
|
||||
vec4 dot0 = vec4(0.f);
|
||||
vec4 dot1 = vec4(0.f);
|
||||
vec4 dot2 = vec4(0.f);
|
||||
vec4 dot3 = vec4(0.f);
|
||||
vec4 dot4 = vec4(0.f);
|
||||
vec4 dot5 = vec4(0.f);
|
||||
vec4 dot6 = vec4(0.f);
|
||||
vec4 dot7 = vec4(0.f);
|
||||
int i = 0;
|
||||
do
|
||||
{
|
||||
int dst_x, dst_y, org_x, org_y, src0_x, src0_y, src0_z;
|
||||
vec4 a0 = vec4(0.f), a1 = vec4(0.f), a2 = vec4(0.f), a3 = vec4(0.f);
|
||||
vec4 brow0 = src1.data[src1_read0_offset]; src1_read0_offset += width0;
|
||||
vec4 brow1 = src1.data[src1_read0_offset]; src1_read0_offset += width0;
|
||||
vec4 brow2 = src1.data[src1_read0_offset]; src1_read0_offset += width0;
|
||||
vec4 brow3 = src1.data[src1_read0_offset]; src1_read0_offset += width0;
|
||||
vec4 brow4 = src1.data[src1_read0_offset]; src1_read0_offset += width0;
|
||||
vec4 brow5 = src1.data[src1_read0_offset]; src1_read0_offset += width0;
|
||||
vec4 brow6 = src1.data[src1_read0_offset]; src1_read0_offset += width0;
|
||||
vec4 brow7 = src1.data[src1_read0_offset]; src1_read0_offset += width0;
|
||||
src1_read0_offset += 1 - BLOCK_W * width0;
|
||||
|
||||
A_MULTIPLY_BTILE(a0, 0, x);
|
||||
A_MULTIPLY_BTILE(a1, 1, y);
|
||||
A_MULTIPLY_BTILE(a2, 2, z);
|
||||
A_MULTIPLY_BTILE(a3, 3, w);
|
||||
i++;
|
||||
}
|
||||
while( i < width0 );
|
||||
|
||||
vec4 bias_val;
|
||||
bias_val = bias.data[2 * int(gl_GlobalInvocationID.x)];
|
||||
dot0 += bias_val.xxxx; dot1 += bias_val.yyyy; dot2 += bias_val.zzzz; dot3 += bias_val.wwww;
|
||||
bias_val = bias.data[2 * int(gl_GlobalInvocationID.x) + 1];
|
||||
dot4 += bias_val.xxxx; dot5 += bias_val.yyyy; dot6 += bias_val.zzzz; dot7 += bias_val.wwww;
|
||||
|
||||
out0.data[output_batch_offset + (out_x + 0) * M / VEC_SIZE + gy] = ACTIVATION_FUNCTION(dot0);
|
||||
out0.data[output_batch_offset + (out_x + 1) * M / VEC_SIZE + gy] = ACTIVATION_FUNCTION(dot1);
|
||||
out0.data[output_batch_offset + (out_x + 2) * M / VEC_SIZE + gy] = ACTIVATION_FUNCTION(dot2);
|
||||
out0.data[output_batch_offset + (out_x + 3) * M / VEC_SIZE + gy] = ACTIVATION_FUNCTION(dot3);
|
||||
out0.data[output_batch_offset + (out_x + 4) * M / VEC_SIZE + gy] = ACTIVATION_FUNCTION(dot4);
|
||||
out0.data[output_batch_offset + (out_x + 5) * M / VEC_SIZE + gy] = ACTIVATION_FUNCTION(dot5);
|
||||
out0.data[output_batch_offset + (out_x + 6) * M / VEC_SIZE + gy] = ACTIVATION_FUNCTION(dot6);
|
||||
out0.data[output_batch_offset + (out_x + 7) * M / VEC_SIZE + gy] = ACTIVATION_FUNCTION(dot7);
|
||||
}
|
||||
}
|
||||
@@ -1,134 +0,0 @@
|
||||
#version 450
|
||||
|
||||
layout (constant_id = 0) const int LOCAL_SZ_X = 0;
|
||||
layout (constant_id = 1) const int LOCAL_SZ_Y = 0;
|
||||
layout (constant_id = 2) const int LOCAL_SZ_Z = 0;
|
||||
layout (constant_id = 3) const int IN_H = 0;
|
||||
layout (constant_id = 4) const int IN_W = 0;
|
||||
layout (constant_id = 5) const int OUT_W = 0;
|
||||
layout (constant_id = 6) const int STRIDE_H = 0;
|
||||
layout (constant_id = 7) const int STRIDE_W = 0;
|
||||
layout (constant_id = 8) const int PAD_H = 0;
|
||||
layout (constant_id = 9) const int PAD_W = 0;
|
||||
layout (constant_id = 10) const int FILTER_H = 0;
|
||||
layout (constant_id = 11) const int FILTER_W = 0;
|
||||
layout (constant_id = 12) const int CHANNELS = 0;
|
||||
layout (constant_id = 13) const int BATCH = 0;
|
||||
layout (constant_id = 14) const int M = 0;
|
||||
layout (constant_id = 15) const int K = 0;
|
||||
layout (constant_id = 16) const int N = 0;
|
||||
layout (constant_id = 17) const int TAIL_M = 0;
|
||||
layout (constant_id = 18) const int DILATION_H = 0;
|
||||
layout (constant_id = 19) const int DILATION_W = 0;
|
||||
|
||||
#if defined(ACTIVATION_RELU)
|
||||
#define ACTIVATION_FUNCTION(x) clamp(x, vec4(0.0), vec4(999999999.0))
|
||||
#elif defined(ACTIVATION_RELU1)
|
||||
#define ACTIVATION_FUNCTION(x) clamp(x, vec4(-1.0), vec4(1.0))
|
||||
#elif defined(ACTIVATION_RELU6)
|
||||
#define ACTIVATION_FUNCTION(x) clamp(x, vec4(0.0), vec4(6.0))
|
||||
#else
|
||||
#define ACTIVATION_FUNCTION(x) (x)
|
||||
#endif
|
||||
|
||||
layout(binding = 0) readonly buffer Input0{
|
||||
float data[];
|
||||
} src0;
|
||||
layout(binding = 1) readonly buffer Input1 {
|
||||
vec4 data[];
|
||||
} bias;
|
||||
layout(binding = 2) readonly buffer Input3{
|
||||
vec4 data[];
|
||||
} src1;
|
||||
layout(binding = 3) writeonly buffer Output{
|
||||
vec4 data[];
|
||||
} out0;
|
||||
|
||||
layout(local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in;
|
||||
|
||||
#define VEC_SIZE 4
|
||||
#define BLOCK_H 4
|
||||
#define BLOCK_W 8
|
||||
#define FILTER_AREA (FILTER_H * FILTER_W)
|
||||
#define LOAD_A(elm_idx, a_component) \
|
||||
src0_x = org_x + ((i * VEC_SIZE + elm_idx) % FILTER_W) * DILATION_W; \
|
||||
src0_y = org_y + (((i * VEC_SIZE + elm_idx) % FILTER_AREA) / FILTER_W) * DILATION_H; \
|
||||
src0_z = (i * VEC_SIZE + elm_idx) / FILTER_AREA; \
|
||||
if(src0_y >= 0 && src0_y < IN_H && src0_x >= 0 && src0_x < IN_W) \
|
||||
{ \
|
||||
a_component = src0.data[input_batch_offset + src0_z * (IN_H * IN_W) + src0_y * IN_W + src0_x]; \
|
||||
}
|
||||
|
||||
#define A_MULTIPLY_BTILE(a, sliver_num, comp) \
|
||||
dst_x = (out_y + sliver_num) % OUT_W; \
|
||||
dst_y = (out_y + sliver_num) / OUT_W; \
|
||||
org_y = dst_y * STRIDE_H - PAD_H; \
|
||||
org_x = dst_x * STRIDE_W - PAD_W; \
|
||||
LOAD_A(0, a.x); \
|
||||
LOAD_A(1, a.y); \
|
||||
LOAD_A(2, a.z); \
|
||||
LOAD_A(3, a.w); \
|
||||
dot0.comp += dot(brow0, a); \
|
||||
dot1.comp += dot(brow1, a); \
|
||||
dot2.comp += dot(brow2, a); \
|
||||
dot3.comp += dot(brow3, a); \
|
||||
dot4.comp += dot(brow4, a); \
|
||||
dot5.comp += dot(brow5, a); \
|
||||
dot6.comp += dot(brow6, a); \
|
||||
dot7.comp += dot(brow7, a);
|
||||
|
||||
void main()
|
||||
{
|
||||
int gx = int(gl_GlobalInvocationID.x);
|
||||
int gy = int(gl_GlobalInvocationID.y);
|
||||
int gz = int(gl_GlobalInvocationID.z);
|
||||
int out_x = BLOCK_W * gx;
|
||||
int out_y = BLOCK_H * gy;
|
||||
int input_batch_offset = gz * IN_H * IN_W * CHANNELS;
|
||||
int output_batch_offset = gz * M * N / VEC_SIZE;
|
||||
if (out_x < N && gy < M / BLOCK_H)
|
||||
{
|
||||
int width0 = K / VEC_SIZE;
|
||||
int width1 = N / VEC_SIZE;
|
||||
int src1_read0_offset = out_x * width0;
|
||||
vec4 dot0 = vec4(0.f);
|
||||
vec4 dot1 = vec4(0.f);
|
||||
vec4 dot2 = vec4(0.f);
|
||||
vec4 dot3 = vec4(0.f);
|
||||
vec4 dot4 = vec4(0.f);
|
||||
vec4 dot5 = vec4(0.f);
|
||||
vec4 dot6 = vec4(0.f);
|
||||
vec4 dot7 = vec4(0.f);
|
||||
int i = 0;
|
||||
do
|
||||
{
|
||||
int dst_x, dst_y, org_x, org_y, src0_x, src0_y, src0_z;
|
||||
vec4 a0 = vec4(0.f), a1 = vec4(0.f), a2 = vec4(0.f), a3 = vec4(0.f);
|
||||
vec4 brow0 = src1.data[src1_read0_offset]; src1_read0_offset += width0;
|
||||
vec4 brow1 = src1.data[src1_read0_offset]; src1_read0_offset += width0;
|
||||
vec4 brow2 = src1.data[src1_read0_offset]; src1_read0_offset += width0;
|
||||
vec4 brow3 = src1.data[src1_read0_offset]; src1_read0_offset += width0;
|
||||
vec4 brow4 = src1.data[src1_read0_offset]; src1_read0_offset += width0;
|
||||
vec4 brow5 = src1.data[src1_read0_offset]; src1_read0_offset += width0;
|
||||
vec4 brow6 = src1.data[src1_read0_offset]; src1_read0_offset += width0;
|
||||
vec4 brow7 = src1.data[src1_read0_offset]; src1_read0_offset += width0;
|
||||
src1_read0_offset += 1 - BLOCK_W * width0;
|
||||
|
||||
A_MULTIPLY_BTILE(a0, 0, x);
|
||||
A_MULTIPLY_BTILE(a1, 1, y);
|
||||
A_MULTIPLY_BTILE(a2, 2, z);
|
||||
A_MULTIPLY_BTILE(a3, 3, w);
|
||||
i++;
|
||||
}
|
||||
while( i < width0 );
|
||||
|
||||
out0.data[output_batch_offset + (out_x + 0) * M / VEC_SIZE + gy] = ACTIVATION_FUNCTION(dot0);
|
||||
out0.data[output_batch_offset + (out_x + 1) * M / VEC_SIZE + gy] = ACTIVATION_FUNCTION(dot1);
|
||||
out0.data[output_batch_offset + (out_x + 2) * M / VEC_SIZE + gy] = ACTIVATION_FUNCTION(dot2);
|
||||
out0.data[output_batch_offset + (out_x + 3) * M / VEC_SIZE + gy] = ACTIVATION_FUNCTION(dot3);
|
||||
out0.data[output_batch_offset + (out_x + 4) * M / VEC_SIZE + gy] = ACTIVATION_FUNCTION(dot4);
|
||||
out0.data[output_batch_offset + (out_x + 5) * M / VEC_SIZE + gy] = ACTIVATION_FUNCTION(dot5);
|
||||
out0.data[output_batch_offset + (out_x + 6) * M / VEC_SIZE + gy] = ACTIVATION_FUNCTION(dot6);
|
||||
out0.data[output_batch_offset + (out_x + 7) * M / VEC_SIZE + gy] = ACTIVATION_FUNCTION(dot7);
|
||||
}
|
||||
}
|
||||
@@ -1,913 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
extern const unsigned int conv48_nobias_spv[7182] = {
|
||||
0x07230203,0x00010000,0x0008000a,0x00000523,0x00000000,0x00020011,0x00000001,0x0006000b,
|
||||
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
|
||||
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000c,0x00060010,0x00000004,
|
||||
0x00000011,0x00000001,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005,
|
||||
0x00000004,0x6e69616d,0x00000000,0x00030005,0x00000008,0x00007867,0x00080005,0x0000000c,
|
||||
0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00030005,0x00000012,
|
||||
0x00007967,0x00030005,0x00000017,0x00007a67,0x00040005,0x0000001c,0x5f74756f,0x00000078,
|
||||
0x00040005,0x00000020,0x5f74756f,0x00000079,0x00070005,0x00000024,0x75706e69,0x61625f74,
|
||||
0x5f686374,0x7366666f,0x00007465,0x00040005,0x00000026,0x485f4e49,0x00000000,0x00040005,
|
||||
0x00000028,0x575f4e49,0x00000000,0x00050005,0x0000002a,0x4e414843,0x534c454e,0x00000000,
|
||||
0x00070005,0x0000002c,0x7074756f,0x625f7475,0x68637461,0x66666f5f,0x00746573,0x00030005,
|
||||
0x0000002e,0x0000004d,0x00030005,0x00000030,0x0000004e,0x00040005,0x0000003e,0x74646977,
|
||||
0x00003068,0x00030005,0x0000003f,0x0000004b,0x00040005,0x00000041,0x74646977,0x00003168,
|
||||
0x00070005,0x00000043,0x31637273,0x6165725f,0x6f5f3064,0x65736666,0x00000074,0x00040005,
|
||||
0x0000004a,0x30746f64,0x00000000,0x00040005,0x0000004d,0x31746f64,0x00000000,0x00040005,
|
||||
0x0000004e,0x32746f64,0x00000000,0x00040005,0x0000004f,0x33746f64,0x00000000,0x00040005,
|
||||
0x00000050,0x34746f64,0x00000000,0x00040005,0x00000051,0x35746f64,0x00000000,0x00040005,
|
||||
0x00000052,0x36746f64,0x00000000,0x00040005,0x00000053,0x37746f64,0x00000000,0x00030005,
|
||||
0x00000054,0x00000069,0x00030005,0x0000005a,0x00003061,0x00030005,0x0000005b,0x00003161,
|
||||
0x00030005,0x0000005c,0x00003261,0x00030005,0x0000005d,0x00003361,0x00040005,0x0000005e,
|
||||
0x776f7262,0x00000030,0x00040005,0x00000060,0x75706e49,0x00003374,0x00050006,0x00000060,
|
||||
0x00000000,0x61746164,0x00000000,0x00040005,0x00000062,0x31637273,0x00000000,0x00040005,
|
||||
0x0000006a,0x776f7262,0x00000031,0x00040005,0x00000071,0x776f7262,0x00000032,0x00040005,
|
||||
0x00000078,0x776f7262,0x00000033,0x00040005,0x0000007f,0x776f7262,0x00000034,0x00040005,
|
||||
0x00000086,0x776f7262,0x00000035,0x00040005,0x0000008d,0x776f7262,0x00000036,0x00040005,
|
||||
0x00000094,0x776f7262,0x00000037,0x00040005,0x000000a1,0x5f747364,0x00000078,0x00040005,
|
||||
0x000000a4,0x5f54554f,0x00000057,0x00040005,0x000000a6,0x5f747364,0x00000079,0x00040005,
|
||||
0x000000aa,0x5f67726f,0x00000079,0x00050005,0x000000ac,0x49525453,0x485f4544,0x00000000,
|
||||
0x00040005,0x000000ae,0x5f444150,0x00000048,0x00040005,0x000000b0,0x5f67726f,0x00000078,
|
||||
0x00050005,0x000000b2,0x49525453,0x575f4544,0x00000000,0x00040005,0x000000b4,0x5f444150,
|
||||
0x00000057,0x00040005,0x000000b6,0x30637273,0x0000785f,0x00050005,0x000000bb,0x544c4946,
|
||||
0x575f5245,0x00000000,0x00050005,0x000000bd,0x414c4944,0x4e4f4954,0x0000575f,0x00040005,
|
||||
0x000000c0,0x30637273,0x0000795f,0x00050005,0x000000c5,0x544c4946,0x485f5245,0x00000000,
|
||||
0x00050005,0x000000c9,0x414c4944,0x4e4f4954,0x0000485f,0x00040005,0x000000cc,0x30637273,
|
||||
0x00007a5f,0x00040005,0x000000e0,0x75706e49,0x00003074,0x00050006,0x000000e0,0x00000000,
|
||||
0x61746164,0x00000000,0x00040005,0x000000e2,0x30637273,0x00000000,0x00040005,0x000004c0,
|
||||
0x7074754f,0x00007475,0x00050006,0x000004c0,0x00000000,0x61746164,0x00000000,0x00040005,
|
||||
0x000004c2,0x3074756f,0x00000000,0x00050005,0x00000516,0x41434f4c,0x5a535f4c,0x0000585f,
|
||||
0x00050005,0x00000517,0x41434f4c,0x5a535f4c,0x0000595f,0x00050005,0x00000518,0x41434f4c,
|
||||
0x5a535f4c,0x00005a5f,0x00040005,0x00000519,0x43544142,0x00000048,0x00040005,0x0000051a,
|
||||
0x4c494154,0x00004d5f,0x00040005,0x0000051c,0x75706e49,0x00003174,0x00050006,0x0000051c,
|
||||
0x00000000,0x61746164,0x00000000,0x00040005,0x0000051e,0x73616962,0x00000000,0x00040047,
|
||||
0x0000000c,0x0000000b,0x0000001c,0x00040047,0x00000026,0x00000001,0x00000003,0x00040047,
|
||||
0x00000028,0x00000001,0x00000004,0x00040047,0x0000002a,0x00000001,0x0000000c,0x00040047,
|
||||
0x0000002e,0x00000001,0x0000000e,0x00040047,0x00000030,0x00000001,0x00000010,0x00040047,
|
||||
0x0000003f,0x00000001,0x0000000f,0x00040047,0x0000005f,0x00000006,0x00000010,0x00040048,
|
||||
0x00000060,0x00000000,0x00000018,0x00050048,0x00000060,0x00000000,0x00000023,0x00000000,
|
||||
0x00030047,0x00000060,0x00000003,0x00040047,0x00000062,0x00000022,0x00000000,0x00040047,
|
||||
0x00000062,0x00000021,0x00000002,0x00040047,0x000000a4,0x00000001,0x00000005,0x00040047,
|
||||
0x000000ac,0x00000001,0x00000006,0x00040047,0x000000ae,0x00000001,0x00000008,0x00040047,
|
||||
0x000000b2,0x00000001,0x00000007,0x00040047,0x000000b4,0x00000001,0x00000009,0x00040047,
|
||||
0x000000bb,0x00000001,0x0000000b,0x00040047,0x000000bd,0x00000001,0x00000013,0x00040047,
|
||||
0x000000c5,0x00000001,0x0000000a,0x00040047,0x000000c9,0x00000001,0x00000012,0x00040047,
|
||||
0x000000df,0x00000006,0x00000004,0x00040048,0x000000e0,0x00000000,0x00000018,0x00050048,
|
||||
0x000000e0,0x00000000,0x00000023,0x00000000,0x00030047,0x000000e0,0x00000003,0x00040047,
|
||||
0x000000e2,0x00000022,0x00000000,0x00040047,0x000000e2,0x00000021,0x00000000,0x00040047,
|
||||
0x000004bf,0x00000006,0x00000010,0x00040048,0x000004c0,0x00000000,0x00000019,0x00050048,
|
||||
0x000004c0,0x00000000,0x00000023,0x00000000,0x00030047,0x000004c0,0x00000003,0x00040047,
|
||||
0x000004c2,0x00000022,0x00000000,0x00040047,0x000004c2,0x00000021,0x00000003,0x00040047,
|
||||
0x00000516,0x00000001,0x00000000,0x00040047,0x00000517,0x00000001,0x00000001,0x00040047,
|
||||
0x00000518,0x00000001,0x00000002,0x00040047,0x00000519,0x00000001,0x0000000d,0x00040047,
|
||||
0x0000051a,0x00000001,0x00000011,0x00040047,0x0000051b,0x00000006,0x00000010,0x00040048,
|
||||
0x0000051c,0x00000000,0x00000018,0x00050048,0x0000051c,0x00000000,0x00000023,0x00000000,
|
||||
0x00030047,0x0000051c,0x00000003,0x00040047,0x0000051e,0x00000022,0x00000000,0x00040047,
|
||||
0x0000051e,0x00000021,0x00000001,0x00040047,0x0000051f,0x00000001,0x00000000,0x00040047,
|
||||
0x00000520,0x00000001,0x00000001,0x00040047,0x00000521,0x00000001,0x00000002,0x00040047,
|
||||
0x00000522,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,
|
||||
0x00040015,0x00000006,0x00000020,0x00000001,0x00040020,0x00000007,0x00000007,0x00000006,
|
||||
0x00040015,0x00000009,0x00000020,0x00000000,0x00040017,0x0000000a,0x00000009,0x00000003,
|
||||
0x00040020,0x0000000b,0x00000001,0x0000000a,0x0004003b,0x0000000b,0x0000000c,0x00000001,
|
||||
0x0004002b,0x00000009,0x0000000d,0x00000000,0x00040020,0x0000000e,0x00000001,0x00000009,
|
||||
0x0004002b,0x00000009,0x00000013,0x00000001,0x0004002b,0x00000009,0x00000018,0x00000002,
|
||||
0x0004002b,0x00000006,0x0000001d,0x00000008,0x0004002b,0x00000006,0x00000021,0x00000004,
|
||||
0x00040032,0x00000006,0x00000026,0x00000000,0x00040032,0x00000006,0x00000028,0x00000000,
|
||||
0x00040032,0x00000006,0x0000002a,0x00000000,0x00040032,0x00000006,0x0000002e,0x00000000,
|
||||
0x00040032,0x00000006,0x00000030,0x00000000,0x00020014,0x00000033,0x00060034,0x00000006,
|
||||
0x00000039,0x00000087,0x0000002e,0x00000021,0x00040032,0x00000006,0x0000003f,0x00000000,
|
||||
0x00060034,0x00000006,0x00000040,0x00000087,0x0000003f,0x00000021,0x00060034,0x00000006,
|
||||
0x00000042,0x00000087,0x00000030,0x00000021,0x00030016,0x00000047,0x00000020,0x00040017,
|
||||
0x00000048,0x00000047,0x00000004,0x00040020,0x00000049,0x00000007,0x00000048,0x0004002b,
|
||||
0x00000047,0x0000004b,0x00000000,0x0007002c,0x00000048,0x0000004c,0x0000004b,0x0000004b,
|
||||
0x0000004b,0x0000004b,0x0004002b,0x00000006,0x00000055,0x00000000,0x0003001d,0x0000005f,
|
||||
0x00000048,0x0003001e,0x00000060,0x0000005f,0x00040020,0x00000061,0x00000002,0x00000060,
|
||||
0x0004003b,0x00000061,0x00000062,0x00000002,0x00040020,0x00000064,0x00000002,0x00000048,
|
||||
0x0004002b,0x00000006,0x0000009b,0x00000001,0x00040032,0x00000006,0x000000a4,0x00000000,
|
||||
0x00040032,0x00000006,0x000000ac,0x00000000,0x00040032,0x00000006,0x000000ae,0x00000000,
|
||||
0x00040032,0x00000006,0x000000b2,0x00000000,0x00040032,0x00000006,0x000000b4,0x00000000,
|
||||
0x00040032,0x00000006,0x000000bb,0x00000000,0x00040032,0x00000006,0x000000bd,0x00000000,
|
||||
0x00040032,0x00000006,0x000000c5,0x00000000,0x00060034,0x00000006,0x000000c6,0x00000084,
|
||||
0x000000c5,0x000000bb,0x00040032,0x00000006,0x000000c9,0x00000000,0x00060034,0x00000006,
|
||||
0x000000d0,0x00000084,0x000000c5,0x000000bb,0x0003001d,0x000000df,0x00000047,0x0003001e,
|
||||
0x000000e0,0x000000df,0x00040020,0x000000e1,0x00000002,0x000000e0,0x0004003b,0x000000e1,
|
||||
0x000000e2,0x00000002,0x00060034,0x00000006,0x000000e5,0x00000084,0x00000026,0x00000028,
|
||||
0x00040020,0x000000ed,0x00000002,0x00000047,0x00040020,0x000000f0,0x00000007,0x00000047,
|
||||
0x00060034,0x00000006,0x000000fd,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,
|
||||
0x00000105,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000116,0x00000084,
|
||||
0x00000026,0x00000028,0x0004002b,0x00000006,0x00000124,0x00000002,0x00060034,0x00000006,
|
||||
0x0000012d,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000135,0x00000084,
|
||||
0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000146,0x00000084,0x00000026,0x00000028,
|
||||
0x0004002b,0x00000006,0x00000154,0x00000003,0x00060034,0x00000006,0x0000015d,0x00000084,
|
||||
0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000165,0x00000084,0x000000c5,0x000000bb,
|
||||
0x00060034,0x00000006,0x00000176,0x00000084,0x00000026,0x00000028,0x0004002b,0x00000009,
|
||||
0x00000180,0x00000003,0x00060034,0x00000006,0x000001d1,0x00000084,0x000000c5,0x000000bb,
|
||||
0x00060034,0x00000006,0x000001d9,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,
|
||||
0x000001ea,0x00000084,0x00000026,0x00000028,0x00060034,0x00000006,0x00000200,0x00000084,
|
||||
0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000208,0x00000084,0x000000c5,0x000000bb,
|
||||
0x00060034,0x00000006,0x00000219,0x00000084,0x00000026,0x00000028,0x00060034,0x00000006,
|
||||
0x0000022f,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000237,0x00000084,
|
||||
0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000248,0x00000084,0x00000026,0x00000028,
|
||||
0x00060034,0x00000006,0x0000025e,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,
|
||||
0x00000266,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000277,0x00000084,
|
||||
0x00000026,0x00000028,0x00060034,0x00000006,0x000002d1,0x00000084,0x000000c5,0x000000bb,
|
||||
0x00060034,0x00000006,0x000002d9,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,
|
||||
0x000002ea,0x00000084,0x00000026,0x00000028,0x00060034,0x00000006,0x00000300,0x00000084,
|
||||
0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000308,0x00000084,0x000000c5,0x000000bb,
|
||||
0x00060034,0x00000006,0x00000319,0x00000084,0x00000026,0x00000028,0x00060034,0x00000006,
|
||||
0x0000032f,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000337,0x00000084,
|
||||
0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000348,0x00000084,0x00000026,0x00000028,
|
||||
0x00060034,0x00000006,0x0000035e,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,
|
||||
0x00000366,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000377,0x00000084,
|
||||
0x00000026,0x00000028,0x00060034,0x00000006,0x000003d1,0x00000084,0x000000c5,0x000000bb,
|
||||
0x00060034,0x00000006,0x000003d9,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,
|
||||
0x000003ea,0x00000084,0x00000026,0x00000028,0x00060034,0x00000006,0x00000400,0x00000084,
|
||||
0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000408,0x00000084,0x000000c5,0x000000bb,
|
||||
0x00060034,0x00000006,0x00000419,0x00000084,0x00000026,0x00000028,0x00060034,0x00000006,
|
||||
0x0000042f,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000437,0x00000084,
|
||||
0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000448,0x00000084,0x00000026,0x00000028,
|
||||
0x00060034,0x00000006,0x0000045e,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,
|
||||
0x00000466,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000477,0x00000084,
|
||||
0x00000026,0x00000028,0x0003001d,0x000004bf,0x00000048,0x0003001e,0x000004c0,0x000004bf,
|
||||
0x00040020,0x000004c1,0x00000002,0x000004c0,0x0004003b,0x000004c1,0x000004c2,0x00000002,
|
||||
0x0004002b,0x00000006,0x000004f7,0x00000005,0x0004002b,0x00000006,0x00000502,0x00000006,
|
||||
0x0004002b,0x00000006,0x0000050d,0x00000007,0x00040032,0x00000006,0x00000516,0x00000000,
|
||||
0x00040032,0x00000006,0x00000517,0x00000000,0x00040032,0x00000006,0x00000518,0x00000000,
|
||||
0x00040032,0x00000006,0x00000519,0x00000000,0x00040032,0x00000006,0x0000051a,0x00000000,
|
||||
0x0003001d,0x0000051b,0x00000048,0x0003001e,0x0000051c,0x0000051b,0x00040020,0x0000051d,
|
||||
0x00000002,0x0000051c,0x0004003b,0x0000051d,0x0000051e,0x00000002,0x00040032,0x00000009,
|
||||
0x0000051f,0x00000001,0x00040032,0x00000009,0x00000520,0x00000001,0x00040032,0x00000009,
|
||||
0x00000521,0x00000001,0x00060033,0x0000000a,0x00000522,0x0000051f,0x00000520,0x00000521,
|
||||
0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,
|
||||
0x00000007,0x00000008,0x00000007,0x0004003b,0x00000007,0x00000012,0x00000007,0x0004003b,
|
||||
0x00000007,0x00000017,0x00000007,0x0004003b,0x00000007,0x0000001c,0x00000007,0x0004003b,
|
||||
0x00000007,0x00000020,0x00000007,0x0004003b,0x00000007,0x00000024,0x00000007,0x0004003b,
|
||||
0x00000007,0x0000002c,0x00000007,0x0004003b,0x00000007,0x0000003e,0x00000007,0x0004003b,
|
||||
0x00000007,0x00000041,0x00000007,0x0004003b,0x00000007,0x00000043,0x00000007,0x0004003b,
|
||||
0x00000049,0x0000004a,0x00000007,0x0004003b,0x00000049,0x0000004d,0x00000007,0x0004003b,
|
||||
0x00000049,0x0000004e,0x00000007,0x0004003b,0x00000049,0x0000004f,0x00000007,0x0004003b,
|
||||
0x00000049,0x00000050,0x00000007,0x0004003b,0x00000049,0x00000051,0x00000007,0x0004003b,
|
||||
0x00000049,0x00000052,0x00000007,0x0004003b,0x00000049,0x00000053,0x00000007,0x0004003b,
|
||||
0x00000007,0x00000054,0x00000007,0x0004003b,0x00000049,0x0000005a,0x00000007,0x0004003b,
|
||||
0x00000049,0x0000005b,0x00000007,0x0004003b,0x00000049,0x0000005c,0x00000007,0x0004003b,
|
||||
0x00000049,0x0000005d,0x00000007,0x0004003b,0x00000049,0x0000005e,0x00000007,0x0004003b,
|
||||
0x00000049,0x0000006a,0x00000007,0x0004003b,0x00000049,0x00000071,0x00000007,0x0004003b,
|
||||
0x00000049,0x00000078,0x00000007,0x0004003b,0x00000049,0x0000007f,0x00000007,0x0004003b,
|
||||
0x00000049,0x00000086,0x00000007,0x0004003b,0x00000049,0x0000008d,0x00000007,0x0004003b,
|
||||
0x00000049,0x00000094,0x00000007,0x0004003b,0x00000007,0x000000a1,0x00000007,0x0004003b,
|
||||
0x00000007,0x000000a6,0x00000007,0x0004003b,0x00000007,0x000000aa,0x00000007,0x0004003b,
|
||||
0x00000007,0x000000b0,0x00000007,0x0004003b,0x00000007,0x000000b6,0x00000007,0x0004003b,
|
||||
0x00000007,0x000000c0,0x00000007,0x0004003b,0x00000007,0x000000cc,0x00000007,0x00050041,
|
||||
0x0000000e,0x0000000f,0x0000000c,0x0000000d,0x0004003d,0x00000009,0x00000010,0x0000000f,
|
||||
0x0004007c,0x00000006,0x00000011,0x00000010,0x0003003e,0x00000008,0x00000011,0x00050041,
|
||||
0x0000000e,0x00000014,0x0000000c,0x00000013,0x0004003d,0x00000009,0x00000015,0x00000014,
|
||||
0x0004007c,0x00000006,0x00000016,0x00000015,0x0003003e,0x00000012,0x00000016,0x00050041,
|
||||
0x0000000e,0x00000019,0x0000000c,0x00000018,0x0004003d,0x00000009,0x0000001a,0x00000019,
|
||||
0x0004007c,0x00000006,0x0000001b,0x0000001a,0x0003003e,0x00000017,0x0000001b,0x0004003d,
|
||||
0x00000006,0x0000001e,0x00000008,0x00050084,0x00000006,0x0000001f,0x0000001d,0x0000001e,
|
||||
0x0003003e,0x0000001c,0x0000001f,0x0004003d,0x00000006,0x00000022,0x00000012,0x00050084,
|
||||
0x00000006,0x00000023,0x00000021,0x00000022,0x0003003e,0x00000020,0x00000023,0x0004003d,
|
||||
0x00000006,0x00000025,0x00000017,0x00050084,0x00000006,0x00000027,0x00000025,0x00000026,
|
||||
0x00050084,0x00000006,0x00000029,0x00000027,0x00000028,0x00050084,0x00000006,0x0000002b,
|
||||
0x00000029,0x0000002a,0x0003003e,0x00000024,0x0000002b,0x0004003d,0x00000006,0x0000002d,
|
||||
0x00000017,0x00050084,0x00000006,0x0000002f,0x0000002d,0x0000002e,0x00050084,0x00000006,
|
||||
0x00000031,0x0000002f,0x00000030,0x00050087,0x00000006,0x00000032,0x00000031,0x00000021,
|
||||
0x0003003e,0x0000002c,0x00000032,0x0004003d,0x00000006,0x00000034,0x0000001c,0x000500b1,
|
||||
0x00000033,0x00000035,0x00000034,0x00000030,0x000300f7,0x00000037,0x00000000,0x000400fa,
|
||||
0x00000035,0x00000036,0x00000037,0x000200f8,0x00000036,0x0004003d,0x00000006,0x00000038,
|
||||
0x00000012,0x000500b1,0x00000033,0x0000003a,0x00000038,0x00000039,0x000200f9,0x00000037,
|
||||
0x000200f8,0x00000037,0x000700f5,0x00000033,0x0000003b,0x00000035,0x00000005,0x0000003a,
|
||||
0x00000036,0x000300f7,0x0000003d,0x00000000,0x000400fa,0x0000003b,0x0000003c,0x0000003d,
|
||||
0x000200f8,0x0000003c,0x0003003e,0x0000003e,0x00000040,0x0003003e,0x00000041,0x00000042,
|
||||
0x0004003d,0x00000006,0x00000044,0x0000001c,0x0004003d,0x00000006,0x00000045,0x0000003e,
|
||||
0x00050084,0x00000006,0x00000046,0x00000044,0x00000045,0x0003003e,0x00000043,0x00000046,
|
||||
0x0003003e,0x0000004a,0x0000004c,0x0003003e,0x0000004d,0x0000004c,0x0003003e,0x0000004e,
|
||||
0x0000004c,0x0003003e,0x0000004f,0x0000004c,0x0003003e,0x00000050,0x0000004c,0x0003003e,
|
||||
0x00000051,0x0000004c,0x0003003e,0x00000052,0x0000004c,0x0003003e,0x00000053,0x0000004c,
|
||||
0x0003003e,0x00000054,0x00000055,0x000200f9,0x00000056,0x000200f8,0x00000056,0x000400f6,
|
||||
0x00000058,0x00000059,0x00000000,0x000200f9,0x00000057,0x000200f8,0x00000057,0x0003003e,
|
||||
0x0000005a,0x0000004c,0x0003003e,0x0000005b,0x0000004c,0x0003003e,0x0000005c,0x0000004c,
|
||||
0x0003003e,0x0000005d,0x0000004c,0x0004003d,0x00000006,0x00000063,0x00000043,0x00060041,
|
||||
0x00000064,0x00000065,0x00000062,0x00000055,0x00000063,0x0004003d,0x00000048,0x00000066,
|
||||
0x00000065,0x0003003e,0x0000005e,0x00000066,0x0004003d,0x00000006,0x00000067,0x0000003e,
|
||||
0x0004003d,0x00000006,0x00000068,0x00000043,0x00050080,0x00000006,0x00000069,0x00000068,
|
||||
0x00000067,0x0003003e,0x00000043,0x00000069,0x0004003d,0x00000006,0x0000006b,0x00000043,
|
||||
0x00060041,0x00000064,0x0000006c,0x00000062,0x00000055,0x0000006b,0x0004003d,0x00000048,
|
||||
0x0000006d,0x0000006c,0x0003003e,0x0000006a,0x0000006d,0x0004003d,0x00000006,0x0000006e,
|
||||
0x0000003e,0x0004003d,0x00000006,0x0000006f,0x00000043,0x00050080,0x00000006,0x00000070,
|
||||
0x0000006f,0x0000006e,0x0003003e,0x00000043,0x00000070,0x0004003d,0x00000006,0x00000072,
|
||||
0x00000043,0x00060041,0x00000064,0x00000073,0x00000062,0x00000055,0x00000072,0x0004003d,
|
||||
0x00000048,0x00000074,0x00000073,0x0003003e,0x00000071,0x00000074,0x0004003d,0x00000006,
|
||||
0x00000075,0x0000003e,0x0004003d,0x00000006,0x00000076,0x00000043,0x00050080,0x00000006,
|
||||
0x00000077,0x00000076,0x00000075,0x0003003e,0x00000043,0x00000077,0x0004003d,0x00000006,
|
||||
0x00000079,0x00000043,0x00060041,0x00000064,0x0000007a,0x00000062,0x00000055,0x00000079,
|
||||
0x0004003d,0x00000048,0x0000007b,0x0000007a,0x0003003e,0x00000078,0x0000007b,0x0004003d,
|
||||
0x00000006,0x0000007c,0x0000003e,0x0004003d,0x00000006,0x0000007d,0x00000043,0x00050080,
|
||||
0x00000006,0x0000007e,0x0000007d,0x0000007c,0x0003003e,0x00000043,0x0000007e,0x0004003d,
|
||||
0x00000006,0x00000080,0x00000043,0x00060041,0x00000064,0x00000081,0x00000062,0x00000055,
|
||||
0x00000080,0x0004003d,0x00000048,0x00000082,0x00000081,0x0003003e,0x0000007f,0x00000082,
|
||||
0x0004003d,0x00000006,0x00000083,0x0000003e,0x0004003d,0x00000006,0x00000084,0x00000043,
|
||||
0x00050080,0x00000006,0x00000085,0x00000084,0x00000083,0x0003003e,0x00000043,0x00000085,
|
||||
0x0004003d,0x00000006,0x00000087,0x00000043,0x00060041,0x00000064,0x00000088,0x00000062,
|
||||
0x00000055,0x00000087,0x0004003d,0x00000048,0x00000089,0x00000088,0x0003003e,0x00000086,
|
||||
0x00000089,0x0004003d,0x00000006,0x0000008a,0x0000003e,0x0004003d,0x00000006,0x0000008b,
|
||||
0x00000043,0x00050080,0x00000006,0x0000008c,0x0000008b,0x0000008a,0x0003003e,0x00000043,
|
||||
0x0000008c,0x0004003d,0x00000006,0x0000008e,0x00000043,0x00060041,0x00000064,0x0000008f,
|
||||
0x00000062,0x00000055,0x0000008e,0x0004003d,0x00000048,0x00000090,0x0000008f,0x0003003e,
|
||||
0x0000008d,0x00000090,0x0004003d,0x00000006,0x00000091,0x0000003e,0x0004003d,0x00000006,
|
||||
0x00000092,0x00000043,0x00050080,0x00000006,0x00000093,0x00000092,0x00000091,0x0003003e,
|
||||
0x00000043,0x00000093,0x0004003d,0x00000006,0x00000095,0x00000043,0x00060041,0x00000064,
|
||||
0x00000096,0x00000062,0x00000055,0x00000095,0x0004003d,0x00000048,0x00000097,0x00000096,
|
||||
0x0003003e,0x00000094,0x00000097,0x0004003d,0x00000006,0x00000098,0x0000003e,0x0004003d,
|
||||
0x00000006,0x00000099,0x00000043,0x00050080,0x00000006,0x0000009a,0x00000099,0x00000098,
|
||||
0x0003003e,0x00000043,0x0000009a,0x0004003d,0x00000006,0x0000009c,0x0000003e,0x00050084,
|
||||
0x00000006,0x0000009d,0x0000001d,0x0000009c,0x00050082,0x00000006,0x0000009e,0x0000009b,
|
||||
0x0000009d,0x0004003d,0x00000006,0x0000009f,0x00000043,0x00050080,0x00000006,0x000000a0,
|
||||
0x0000009f,0x0000009e,0x0003003e,0x00000043,0x000000a0,0x0004003d,0x00000006,0x000000a2,
|
||||
0x00000020,0x00050080,0x00000006,0x000000a3,0x000000a2,0x00000055,0x0005008b,0x00000006,
|
||||
0x000000a5,0x000000a3,0x000000a4,0x0003003e,0x000000a1,0x000000a5,0x0004003d,0x00000006,
|
||||
0x000000a7,0x00000020,0x00050080,0x00000006,0x000000a8,0x000000a7,0x00000055,0x00050087,
|
||||
0x00000006,0x000000a9,0x000000a8,0x000000a4,0x0003003e,0x000000a6,0x000000a9,0x0004003d,
|
||||
0x00000006,0x000000ab,0x000000a6,0x00050084,0x00000006,0x000000ad,0x000000ab,0x000000ac,
|
||||
0x00050082,0x00000006,0x000000af,0x000000ad,0x000000ae,0x0003003e,0x000000aa,0x000000af,
|
||||
0x0004003d,0x00000006,0x000000b1,0x000000a1,0x00050084,0x00000006,0x000000b3,0x000000b1,
|
||||
0x000000b2,0x00050082,0x00000006,0x000000b5,0x000000b3,0x000000b4,0x0003003e,0x000000b0,
|
||||
0x000000b5,0x0004003d,0x00000006,0x000000b7,0x000000b0,0x0004003d,0x00000006,0x000000b8,
|
||||
0x00000054,0x00050084,0x00000006,0x000000b9,0x000000b8,0x00000021,0x00050080,0x00000006,
|
||||
0x000000ba,0x000000b9,0x00000055,0x0005008b,0x00000006,0x000000bc,0x000000ba,0x000000bb,
|
||||
0x00050084,0x00000006,0x000000be,0x000000bc,0x000000bd,0x00050080,0x00000006,0x000000bf,
|
||||
0x000000b7,0x000000be,0x0003003e,0x000000b6,0x000000bf,0x0004003d,0x00000006,0x000000c1,
|
||||
0x000000aa,0x0004003d,0x00000006,0x000000c2,0x00000054,0x00050084,0x00000006,0x000000c3,
|
||||
0x000000c2,0x00000021,0x00050080,0x00000006,0x000000c4,0x000000c3,0x00000055,0x0005008b,
|
||||
0x00000006,0x000000c7,0x000000c4,0x000000c6,0x00050087,0x00000006,0x000000c8,0x000000c7,
|
||||
0x000000bb,0x00050084,0x00000006,0x000000ca,0x000000c8,0x000000c9,0x00050080,0x00000006,
|
||||
0x000000cb,0x000000c1,0x000000ca,0x0003003e,0x000000c0,0x000000cb,0x0004003d,0x00000006,
|
||||
0x000000cd,0x00000054,0x00050084,0x00000006,0x000000ce,0x000000cd,0x00000021,0x00050080,
|
||||
0x00000006,0x000000cf,0x000000ce,0x00000055,0x00050087,0x00000006,0x000000d1,0x000000cf,
|
||||
0x000000d0,0x0003003e,0x000000cc,0x000000d1,0x0004003d,0x00000006,0x000000d2,0x000000c0,
|
||||
0x000500af,0x00000033,0x000000d3,0x000000d2,0x00000055,0x0004003d,0x00000006,0x000000d4,
|
||||
0x000000c0,0x000500b1,0x00000033,0x000000d5,0x000000d4,0x00000026,0x000500a7,0x00000033,
|
||||
0x000000d6,0x000000d3,0x000000d5,0x0004003d,0x00000006,0x000000d7,0x000000b6,0x000500af,
|
||||
0x00000033,0x000000d8,0x000000d7,0x00000055,0x000500a7,0x00000033,0x000000d9,0x000000d6,
|
||||
0x000000d8,0x0004003d,0x00000006,0x000000da,0x000000b6,0x000500b1,0x00000033,0x000000db,
|
||||
0x000000da,0x00000028,0x000500a7,0x00000033,0x000000dc,0x000000d9,0x000000db,0x000300f7,
|
||||
0x000000de,0x00000000,0x000400fa,0x000000dc,0x000000dd,0x000000de,0x000200f8,0x000000dd,
|
||||
0x0004003d,0x00000006,0x000000e3,0x00000024,0x0004003d,0x00000006,0x000000e4,0x000000cc,
|
||||
0x00050084,0x00000006,0x000000e6,0x000000e4,0x000000e5,0x00050080,0x00000006,0x000000e7,
|
||||
0x000000e3,0x000000e6,0x0004003d,0x00000006,0x000000e8,0x000000c0,0x00050084,0x00000006,
|
||||
0x000000e9,0x000000e8,0x00000028,0x00050080,0x00000006,0x000000ea,0x000000e7,0x000000e9,
|
||||
0x0004003d,0x00000006,0x000000eb,0x000000b6,0x00050080,0x00000006,0x000000ec,0x000000ea,
|
||||
0x000000eb,0x00060041,0x000000ed,0x000000ee,0x000000e2,0x00000055,0x000000ec,0x0004003d,
|
||||
0x00000047,0x000000ef,0x000000ee,0x00050041,0x000000f0,0x000000f1,0x0000005a,0x0000000d,
|
||||
0x0003003e,0x000000f1,0x000000ef,0x000200f9,0x000000de,0x000200f8,0x000000de,0x0004003d,
|
||||
0x00000006,0x000000f2,0x000000b0,0x0004003d,0x00000006,0x000000f3,0x00000054,0x00050084,
|
||||
0x00000006,0x000000f4,0x000000f3,0x00000021,0x00050080,0x00000006,0x000000f5,0x000000f4,
|
||||
0x0000009b,0x0005008b,0x00000006,0x000000f6,0x000000f5,0x000000bb,0x00050084,0x00000006,
|
||||
0x000000f7,0x000000f6,0x000000bd,0x00050080,0x00000006,0x000000f8,0x000000f2,0x000000f7,
|
||||
0x0003003e,0x000000b6,0x000000f8,0x0004003d,0x00000006,0x000000f9,0x000000aa,0x0004003d,
|
||||
0x00000006,0x000000fa,0x00000054,0x00050084,0x00000006,0x000000fb,0x000000fa,0x00000021,
|
||||
0x00050080,0x00000006,0x000000fc,0x000000fb,0x0000009b,0x0005008b,0x00000006,0x000000fe,
|
||||
0x000000fc,0x000000fd,0x00050087,0x00000006,0x000000ff,0x000000fe,0x000000bb,0x00050084,
|
||||
0x00000006,0x00000100,0x000000ff,0x000000c9,0x00050080,0x00000006,0x00000101,0x000000f9,
|
||||
0x00000100,0x0003003e,0x000000c0,0x00000101,0x0004003d,0x00000006,0x00000102,0x00000054,
|
||||
0x00050084,0x00000006,0x00000103,0x00000102,0x00000021,0x00050080,0x00000006,0x00000104,
|
||||
0x00000103,0x0000009b,0x00050087,0x00000006,0x00000106,0x00000104,0x00000105,0x0003003e,
|
||||
0x000000cc,0x00000106,0x0004003d,0x00000006,0x00000107,0x000000c0,0x000500af,0x00000033,
|
||||
0x00000108,0x00000107,0x00000055,0x0004003d,0x00000006,0x00000109,0x000000c0,0x000500b1,
|
||||
0x00000033,0x0000010a,0x00000109,0x00000026,0x000500a7,0x00000033,0x0000010b,0x00000108,
|
||||
0x0000010a,0x0004003d,0x00000006,0x0000010c,0x000000b6,0x000500af,0x00000033,0x0000010d,
|
||||
0x0000010c,0x00000055,0x000500a7,0x00000033,0x0000010e,0x0000010b,0x0000010d,0x0004003d,
|
||||
0x00000006,0x0000010f,0x000000b6,0x000500b1,0x00000033,0x00000110,0x0000010f,0x00000028,
|
||||
0x000500a7,0x00000033,0x00000111,0x0000010e,0x00000110,0x000300f7,0x00000113,0x00000000,
|
||||
0x000400fa,0x00000111,0x00000112,0x00000113,0x000200f8,0x00000112,0x0004003d,0x00000006,
|
||||
0x00000114,0x00000024,0x0004003d,0x00000006,0x00000115,0x000000cc,0x00050084,0x00000006,
|
||||
0x00000117,0x00000115,0x00000116,0x00050080,0x00000006,0x00000118,0x00000114,0x00000117,
|
||||
0x0004003d,0x00000006,0x00000119,0x000000c0,0x00050084,0x00000006,0x0000011a,0x00000119,
|
||||
0x00000028,0x00050080,0x00000006,0x0000011b,0x00000118,0x0000011a,0x0004003d,0x00000006,
|
||||
0x0000011c,0x000000b6,0x00050080,0x00000006,0x0000011d,0x0000011b,0x0000011c,0x00060041,
|
||||
0x000000ed,0x0000011e,0x000000e2,0x00000055,0x0000011d,0x0004003d,0x00000047,0x0000011f,
|
||||
0x0000011e,0x00050041,0x000000f0,0x00000120,0x0000005a,0x00000013,0x0003003e,0x00000120,
|
||||
0x0000011f,0x000200f9,0x00000113,0x000200f8,0x00000113,0x0004003d,0x00000006,0x00000121,
|
||||
0x000000b0,0x0004003d,0x00000006,0x00000122,0x00000054,0x00050084,0x00000006,0x00000123,
|
||||
0x00000122,0x00000021,0x00050080,0x00000006,0x00000125,0x00000123,0x00000124,0x0005008b,
|
||||
0x00000006,0x00000126,0x00000125,0x000000bb,0x00050084,0x00000006,0x00000127,0x00000126,
|
||||
0x000000bd,0x00050080,0x00000006,0x00000128,0x00000121,0x00000127,0x0003003e,0x000000b6,
|
||||
0x00000128,0x0004003d,0x00000006,0x00000129,0x000000aa,0x0004003d,0x00000006,0x0000012a,
|
||||
0x00000054,0x00050084,0x00000006,0x0000012b,0x0000012a,0x00000021,0x00050080,0x00000006,
|
||||
0x0000012c,0x0000012b,0x00000124,0x0005008b,0x00000006,0x0000012e,0x0000012c,0x0000012d,
|
||||
0x00050087,0x00000006,0x0000012f,0x0000012e,0x000000bb,0x00050084,0x00000006,0x00000130,
|
||||
0x0000012f,0x000000c9,0x00050080,0x00000006,0x00000131,0x00000129,0x00000130,0x0003003e,
|
||||
0x000000c0,0x00000131,0x0004003d,0x00000006,0x00000132,0x00000054,0x00050084,0x00000006,
|
||||
0x00000133,0x00000132,0x00000021,0x00050080,0x00000006,0x00000134,0x00000133,0x00000124,
|
||||
0x00050087,0x00000006,0x00000136,0x00000134,0x00000135,0x0003003e,0x000000cc,0x00000136,
|
||||
0x0004003d,0x00000006,0x00000137,0x000000c0,0x000500af,0x00000033,0x00000138,0x00000137,
|
||||
0x00000055,0x0004003d,0x00000006,0x00000139,0x000000c0,0x000500b1,0x00000033,0x0000013a,
|
||||
0x00000139,0x00000026,0x000500a7,0x00000033,0x0000013b,0x00000138,0x0000013a,0x0004003d,
|
||||
0x00000006,0x0000013c,0x000000b6,0x000500af,0x00000033,0x0000013d,0x0000013c,0x00000055,
|
||||
0x000500a7,0x00000033,0x0000013e,0x0000013b,0x0000013d,0x0004003d,0x00000006,0x0000013f,
|
||||
0x000000b6,0x000500b1,0x00000033,0x00000140,0x0000013f,0x00000028,0x000500a7,0x00000033,
|
||||
0x00000141,0x0000013e,0x00000140,0x000300f7,0x00000143,0x00000000,0x000400fa,0x00000141,
|
||||
0x00000142,0x00000143,0x000200f8,0x00000142,0x0004003d,0x00000006,0x00000144,0x00000024,
|
||||
0x0004003d,0x00000006,0x00000145,0x000000cc,0x00050084,0x00000006,0x00000147,0x00000145,
|
||||
0x00000146,0x00050080,0x00000006,0x00000148,0x00000144,0x00000147,0x0004003d,0x00000006,
|
||||
0x00000149,0x000000c0,0x00050084,0x00000006,0x0000014a,0x00000149,0x00000028,0x00050080,
|
||||
0x00000006,0x0000014b,0x00000148,0x0000014a,0x0004003d,0x00000006,0x0000014c,0x000000b6,
|
||||
0x00050080,0x00000006,0x0000014d,0x0000014b,0x0000014c,0x00060041,0x000000ed,0x0000014e,
|
||||
0x000000e2,0x00000055,0x0000014d,0x0004003d,0x00000047,0x0000014f,0x0000014e,0x00050041,
|
||||
0x000000f0,0x00000150,0x0000005a,0x00000018,0x0003003e,0x00000150,0x0000014f,0x000200f9,
|
||||
0x00000143,0x000200f8,0x00000143,0x0004003d,0x00000006,0x00000151,0x000000b0,0x0004003d,
|
||||
0x00000006,0x00000152,0x00000054,0x00050084,0x00000006,0x00000153,0x00000152,0x00000021,
|
||||
0x00050080,0x00000006,0x00000155,0x00000153,0x00000154,0x0005008b,0x00000006,0x00000156,
|
||||
0x00000155,0x000000bb,0x00050084,0x00000006,0x00000157,0x00000156,0x000000bd,0x00050080,
|
||||
0x00000006,0x00000158,0x00000151,0x00000157,0x0003003e,0x000000b6,0x00000158,0x0004003d,
|
||||
0x00000006,0x00000159,0x000000aa,0x0004003d,0x00000006,0x0000015a,0x00000054,0x00050084,
|
||||
0x00000006,0x0000015b,0x0000015a,0x00000021,0x00050080,0x00000006,0x0000015c,0x0000015b,
|
||||
0x00000154,0x0005008b,0x00000006,0x0000015e,0x0000015c,0x0000015d,0x00050087,0x00000006,
|
||||
0x0000015f,0x0000015e,0x000000bb,0x00050084,0x00000006,0x00000160,0x0000015f,0x000000c9,
|
||||
0x00050080,0x00000006,0x00000161,0x00000159,0x00000160,0x0003003e,0x000000c0,0x00000161,
|
||||
0x0004003d,0x00000006,0x00000162,0x00000054,0x00050084,0x00000006,0x00000163,0x00000162,
|
||||
0x00000021,0x00050080,0x00000006,0x00000164,0x00000163,0x00000154,0x00050087,0x00000006,
|
||||
0x00000166,0x00000164,0x00000165,0x0003003e,0x000000cc,0x00000166,0x0004003d,0x00000006,
|
||||
0x00000167,0x000000c0,0x000500af,0x00000033,0x00000168,0x00000167,0x00000055,0x0004003d,
|
||||
0x00000006,0x00000169,0x000000c0,0x000500b1,0x00000033,0x0000016a,0x00000169,0x00000026,
|
||||
0x000500a7,0x00000033,0x0000016b,0x00000168,0x0000016a,0x0004003d,0x00000006,0x0000016c,
|
||||
0x000000b6,0x000500af,0x00000033,0x0000016d,0x0000016c,0x00000055,0x000500a7,0x00000033,
|
||||
0x0000016e,0x0000016b,0x0000016d,0x0004003d,0x00000006,0x0000016f,0x000000b6,0x000500b1,
|
||||
0x00000033,0x00000170,0x0000016f,0x00000028,0x000500a7,0x00000033,0x00000171,0x0000016e,
|
||||
0x00000170,0x000300f7,0x00000173,0x00000000,0x000400fa,0x00000171,0x00000172,0x00000173,
|
||||
0x000200f8,0x00000172,0x0004003d,0x00000006,0x00000174,0x00000024,0x0004003d,0x00000006,
|
||||
0x00000175,0x000000cc,0x00050084,0x00000006,0x00000177,0x00000175,0x00000176,0x00050080,
|
||||
0x00000006,0x00000178,0x00000174,0x00000177,0x0004003d,0x00000006,0x00000179,0x000000c0,
|
||||
0x00050084,0x00000006,0x0000017a,0x00000179,0x00000028,0x00050080,0x00000006,0x0000017b,
|
||||
0x00000178,0x0000017a,0x0004003d,0x00000006,0x0000017c,0x000000b6,0x00050080,0x00000006,
|
||||
0x0000017d,0x0000017b,0x0000017c,0x00060041,0x000000ed,0x0000017e,0x000000e2,0x00000055,
|
||||
0x0000017d,0x0004003d,0x00000047,0x0000017f,0x0000017e,0x00050041,0x000000f0,0x00000181,
|
||||
0x0000005a,0x00000180,0x0003003e,0x00000181,0x0000017f,0x000200f9,0x00000173,0x000200f8,
|
||||
0x00000173,0x0004003d,0x00000048,0x00000182,0x0000005e,0x0004003d,0x00000048,0x00000183,
|
||||
0x0000005a,0x00050094,0x00000047,0x00000184,0x00000182,0x00000183,0x00050041,0x000000f0,
|
||||
0x00000185,0x0000004a,0x0000000d,0x0004003d,0x00000047,0x00000186,0x00000185,0x00050081,
|
||||
0x00000047,0x00000187,0x00000186,0x00000184,0x00050041,0x000000f0,0x00000188,0x0000004a,
|
||||
0x0000000d,0x0003003e,0x00000188,0x00000187,0x0004003d,0x00000048,0x00000189,0x0000006a,
|
||||
0x0004003d,0x00000048,0x0000018a,0x0000005a,0x00050094,0x00000047,0x0000018b,0x00000189,
|
||||
0x0000018a,0x00050041,0x000000f0,0x0000018c,0x0000004d,0x0000000d,0x0004003d,0x00000047,
|
||||
0x0000018d,0x0000018c,0x00050081,0x00000047,0x0000018e,0x0000018d,0x0000018b,0x00050041,
|
||||
0x000000f0,0x0000018f,0x0000004d,0x0000000d,0x0003003e,0x0000018f,0x0000018e,0x0004003d,
|
||||
0x00000048,0x00000190,0x00000071,0x0004003d,0x00000048,0x00000191,0x0000005a,0x00050094,
|
||||
0x00000047,0x00000192,0x00000190,0x00000191,0x00050041,0x000000f0,0x00000193,0x0000004e,
|
||||
0x0000000d,0x0004003d,0x00000047,0x00000194,0x00000193,0x00050081,0x00000047,0x00000195,
|
||||
0x00000194,0x00000192,0x00050041,0x000000f0,0x00000196,0x0000004e,0x0000000d,0x0003003e,
|
||||
0x00000196,0x00000195,0x0004003d,0x00000048,0x00000197,0x00000078,0x0004003d,0x00000048,
|
||||
0x00000198,0x0000005a,0x00050094,0x00000047,0x00000199,0x00000197,0x00000198,0x00050041,
|
||||
0x000000f0,0x0000019a,0x0000004f,0x0000000d,0x0004003d,0x00000047,0x0000019b,0x0000019a,
|
||||
0x00050081,0x00000047,0x0000019c,0x0000019b,0x00000199,0x00050041,0x000000f0,0x0000019d,
|
||||
0x0000004f,0x0000000d,0x0003003e,0x0000019d,0x0000019c,0x0004003d,0x00000048,0x0000019e,
|
||||
0x0000007f,0x0004003d,0x00000048,0x0000019f,0x0000005a,0x00050094,0x00000047,0x000001a0,
|
||||
0x0000019e,0x0000019f,0x00050041,0x000000f0,0x000001a1,0x00000050,0x0000000d,0x0004003d,
|
||||
0x00000047,0x000001a2,0x000001a1,0x00050081,0x00000047,0x000001a3,0x000001a2,0x000001a0,
|
||||
0x00050041,0x000000f0,0x000001a4,0x00000050,0x0000000d,0x0003003e,0x000001a4,0x000001a3,
|
||||
0x0004003d,0x00000048,0x000001a5,0x00000086,0x0004003d,0x00000048,0x000001a6,0x0000005a,
|
||||
0x00050094,0x00000047,0x000001a7,0x000001a5,0x000001a6,0x00050041,0x000000f0,0x000001a8,
|
||||
0x00000051,0x0000000d,0x0004003d,0x00000047,0x000001a9,0x000001a8,0x00050081,0x00000047,
|
||||
0x000001aa,0x000001a9,0x000001a7,0x00050041,0x000000f0,0x000001ab,0x00000051,0x0000000d,
|
||||
0x0003003e,0x000001ab,0x000001aa,0x0004003d,0x00000048,0x000001ac,0x0000008d,0x0004003d,
|
||||
0x00000048,0x000001ad,0x0000005a,0x00050094,0x00000047,0x000001ae,0x000001ac,0x000001ad,
|
||||
0x00050041,0x000000f0,0x000001af,0x00000052,0x0000000d,0x0004003d,0x00000047,0x000001b0,
|
||||
0x000001af,0x00050081,0x00000047,0x000001b1,0x000001b0,0x000001ae,0x00050041,0x000000f0,
|
||||
0x000001b2,0x00000052,0x0000000d,0x0003003e,0x000001b2,0x000001b1,0x0004003d,0x00000048,
|
||||
0x000001b3,0x00000094,0x0004003d,0x00000048,0x000001b4,0x0000005a,0x00050094,0x00000047,
|
||||
0x000001b5,0x000001b3,0x000001b4,0x00050041,0x000000f0,0x000001b6,0x00000053,0x0000000d,
|
||||
0x0004003d,0x00000047,0x000001b7,0x000001b6,0x00050081,0x00000047,0x000001b8,0x000001b7,
|
||||
0x000001b5,0x00050041,0x000000f0,0x000001b9,0x00000053,0x0000000d,0x0003003e,0x000001b9,
|
||||
0x000001b8,0x0004003d,0x00000006,0x000001ba,0x00000020,0x00050080,0x00000006,0x000001bb,
|
||||
0x000001ba,0x0000009b,0x0005008b,0x00000006,0x000001bc,0x000001bb,0x000000a4,0x0003003e,
|
||||
0x000000a1,0x000001bc,0x0004003d,0x00000006,0x000001bd,0x00000020,0x00050080,0x00000006,
|
||||
0x000001be,0x000001bd,0x0000009b,0x00050087,0x00000006,0x000001bf,0x000001be,0x000000a4,
|
||||
0x0003003e,0x000000a6,0x000001bf,0x0004003d,0x00000006,0x000001c0,0x000000a6,0x00050084,
|
||||
0x00000006,0x000001c1,0x000001c0,0x000000ac,0x00050082,0x00000006,0x000001c2,0x000001c1,
|
||||
0x000000ae,0x0003003e,0x000000aa,0x000001c2,0x0004003d,0x00000006,0x000001c3,0x000000a1,
|
||||
0x00050084,0x00000006,0x000001c4,0x000001c3,0x000000b2,0x00050082,0x00000006,0x000001c5,
|
||||
0x000001c4,0x000000b4,0x0003003e,0x000000b0,0x000001c5,0x0004003d,0x00000006,0x000001c6,
|
||||
0x000000b0,0x0004003d,0x00000006,0x000001c7,0x00000054,0x00050084,0x00000006,0x000001c8,
|
||||
0x000001c7,0x00000021,0x00050080,0x00000006,0x000001c9,0x000001c8,0x00000055,0x0005008b,
|
||||
0x00000006,0x000001ca,0x000001c9,0x000000bb,0x00050084,0x00000006,0x000001cb,0x000001ca,
|
||||
0x000000bd,0x00050080,0x00000006,0x000001cc,0x000001c6,0x000001cb,0x0003003e,0x000000b6,
|
||||
0x000001cc,0x0004003d,0x00000006,0x000001cd,0x000000aa,0x0004003d,0x00000006,0x000001ce,
|
||||
0x00000054,0x00050084,0x00000006,0x000001cf,0x000001ce,0x00000021,0x00050080,0x00000006,
|
||||
0x000001d0,0x000001cf,0x00000055,0x0005008b,0x00000006,0x000001d2,0x000001d0,0x000001d1,
|
||||
0x00050087,0x00000006,0x000001d3,0x000001d2,0x000000bb,0x00050084,0x00000006,0x000001d4,
|
||||
0x000001d3,0x000000c9,0x00050080,0x00000006,0x000001d5,0x000001cd,0x000001d4,0x0003003e,
|
||||
0x000000c0,0x000001d5,0x0004003d,0x00000006,0x000001d6,0x00000054,0x00050084,0x00000006,
|
||||
0x000001d7,0x000001d6,0x00000021,0x00050080,0x00000006,0x000001d8,0x000001d7,0x00000055,
|
||||
0x00050087,0x00000006,0x000001da,0x000001d8,0x000001d9,0x0003003e,0x000000cc,0x000001da,
|
||||
0x0004003d,0x00000006,0x000001db,0x000000c0,0x000500af,0x00000033,0x000001dc,0x000001db,
|
||||
0x00000055,0x0004003d,0x00000006,0x000001dd,0x000000c0,0x000500b1,0x00000033,0x000001de,
|
||||
0x000001dd,0x00000026,0x000500a7,0x00000033,0x000001df,0x000001dc,0x000001de,0x0004003d,
|
||||
0x00000006,0x000001e0,0x000000b6,0x000500af,0x00000033,0x000001e1,0x000001e0,0x00000055,
|
||||
0x000500a7,0x00000033,0x000001e2,0x000001df,0x000001e1,0x0004003d,0x00000006,0x000001e3,
|
||||
0x000000b6,0x000500b1,0x00000033,0x000001e4,0x000001e3,0x00000028,0x000500a7,0x00000033,
|
||||
0x000001e5,0x000001e2,0x000001e4,0x000300f7,0x000001e7,0x00000000,0x000400fa,0x000001e5,
|
||||
0x000001e6,0x000001e7,0x000200f8,0x000001e6,0x0004003d,0x00000006,0x000001e8,0x00000024,
|
||||
0x0004003d,0x00000006,0x000001e9,0x000000cc,0x00050084,0x00000006,0x000001eb,0x000001e9,
|
||||
0x000001ea,0x00050080,0x00000006,0x000001ec,0x000001e8,0x000001eb,0x0004003d,0x00000006,
|
||||
0x000001ed,0x000000c0,0x00050084,0x00000006,0x000001ee,0x000001ed,0x00000028,0x00050080,
|
||||
0x00000006,0x000001ef,0x000001ec,0x000001ee,0x0004003d,0x00000006,0x000001f0,0x000000b6,
|
||||
0x00050080,0x00000006,0x000001f1,0x000001ef,0x000001f0,0x00060041,0x000000ed,0x000001f2,
|
||||
0x000000e2,0x00000055,0x000001f1,0x0004003d,0x00000047,0x000001f3,0x000001f2,0x00050041,
|
||||
0x000000f0,0x000001f4,0x0000005b,0x0000000d,0x0003003e,0x000001f4,0x000001f3,0x000200f9,
|
||||
0x000001e7,0x000200f8,0x000001e7,0x0004003d,0x00000006,0x000001f5,0x000000b0,0x0004003d,
|
||||
0x00000006,0x000001f6,0x00000054,0x00050084,0x00000006,0x000001f7,0x000001f6,0x00000021,
|
||||
0x00050080,0x00000006,0x000001f8,0x000001f7,0x0000009b,0x0005008b,0x00000006,0x000001f9,
|
||||
0x000001f8,0x000000bb,0x00050084,0x00000006,0x000001fa,0x000001f9,0x000000bd,0x00050080,
|
||||
0x00000006,0x000001fb,0x000001f5,0x000001fa,0x0003003e,0x000000b6,0x000001fb,0x0004003d,
|
||||
0x00000006,0x000001fc,0x000000aa,0x0004003d,0x00000006,0x000001fd,0x00000054,0x00050084,
|
||||
0x00000006,0x000001fe,0x000001fd,0x00000021,0x00050080,0x00000006,0x000001ff,0x000001fe,
|
||||
0x0000009b,0x0005008b,0x00000006,0x00000201,0x000001ff,0x00000200,0x00050087,0x00000006,
|
||||
0x00000202,0x00000201,0x000000bb,0x00050084,0x00000006,0x00000203,0x00000202,0x000000c9,
|
||||
0x00050080,0x00000006,0x00000204,0x000001fc,0x00000203,0x0003003e,0x000000c0,0x00000204,
|
||||
0x0004003d,0x00000006,0x00000205,0x00000054,0x00050084,0x00000006,0x00000206,0x00000205,
|
||||
0x00000021,0x00050080,0x00000006,0x00000207,0x00000206,0x0000009b,0x00050087,0x00000006,
|
||||
0x00000209,0x00000207,0x00000208,0x0003003e,0x000000cc,0x00000209,0x0004003d,0x00000006,
|
||||
0x0000020a,0x000000c0,0x000500af,0x00000033,0x0000020b,0x0000020a,0x00000055,0x0004003d,
|
||||
0x00000006,0x0000020c,0x000000c0,0x000500b1,0x00000033,0x0000020d,0x0000020c,0x00000026,
|
||||
0x000500a7,0x00000033,0x0000020e,0x0000020b,0x0000020d,0x0004003d,0x00000006,0x0000020f,
|
||||
0x000000b6,0x000500af,0x00000033,0x00000210,0x0000020f,0x00000055,0x000500a7,0x00000033,
|
||||
0x00000211,0x0000020e,0x00000210,0x0004003d,0x00000006,0x00000212,0x000000b6,0x000500b1,
|
||||
0x00000033,0x00000213,0x00000212,0x00000028,0x000500a7,0x00000033,0x00000214,0x00000211,
|
||||
0x00000213,0x000300f7,0x00000216,0x00000000,0x000400fa,0x00000214,0x00000215,0x00000216,
|
||||
0x000200f8,0x00000215,0x0004003d,0x00000006,0x00000217,0x00000024,0x0004003d,0x00000006,
|
||||
0x00000218,0x000000cc,0x00050084,0x00000006,0x0000021a,0x00000218,0x00000219,0x00050080,
|
||||
0x00000006,0x0000021b,0x00000217,0x0000021a,0x0004003d,0x00000006,0x0000021c,0x000000c0,
|
||||
0x00050084,0x00000006,0x0000021d,0x0000021c,0x00000028,0x00050080,0x00000006,0x0000021e,
|
||||
0x0000021b,0x0000021d,0x0004003d,0x00000006,0x0000021f,0x000000b6,0x00050080,0x00000006,
|
||||
0x00000220,0x0000021e,0x0000021f,0x00060041,0x000000ed,0x00000221,0x000000e2,0x00000055,
|
||||
0x00000220,0x0004003d,0x00000047,0x00000222,0x00000221,0x00050041,0x000000f0,0x00000223,
|
||||
0x0000005b,0x00000013,0x0003003e,0x00000223,0x00000222,0x000200f9,0x00000216,0x000200f8,
|
||||
0x00000216,0x0004003d,0x00000006,0x00000224,0x000000b0,0x0004003d,0x00000006,0x00000225,
|
||||
0x00000054,0x00050084,0x00000006,0x00000226,0x00000225,0x00000021,0x00050080,0x00000006,
|
||||
0x00000227,0x00000226,0x00000124,0x0005008b,0x00000006,0x00000228,0x00000227,0x000000bb,
|
||||
0x00050084,0x00000006,0x00000229,0x00000228,0x000000bd,0x00050080,0x00000006,0x0000022a,
|
||||
0x00000224,0x00000229,0x0003003e,0x000000b6,0x0000022a,0x0004003d,0x00000006,0x0000022b,
|
||||
0x000000aa,0x0004003d,0x00000006,0x0000022c,0x00000054,0x00050084,0x00000006,0x0000022d,
|
||||
0x0000022c,0x00000021,0x00050080,0x00000006,0x0000022e,0x0000022d,0x00000124,0x0005008b,
|
||||
0x00000006,0x00000230,0x0000022e,0x0000022f,0x00050087,0x00000006,0x00000231,0x00000230,
|
||||
0x000000bb,0x00050084,0x00000006,0x00000232,0x00000231,0x000000c9,0x00050080,0x00000006,
|
||||
0x00000233,0x0000022b,0x00000232,0x0003003e,0x000000c0,0x00000233,0x0004003d,0x00000006,
|
||||
0x00000234,0x00000054,0x00050084,0x00000006,0x00000235,0x00000234,0x00000021,0x00050080,
|
||||
0x00000006,0x00000236,0x00000235,0x00000124,0x00050087,0x00000006,0x00000238,0x00000236,
|
||||
0x00000237,0x0003003e,0x000000cc,0x00000238,0x0004003d,0x00000006,0x00000239,0x000000c0,
|
||||
0x000500af,0x00000033,0x0000023a,0x00000239,0x00000055,0x0004003d,0x00000006,0x0000023b,
|
||||
0x000000c0,0x000500b1,0x00000033,0x0000023c,0x0000023b,0x00000026,0x000500a7,0x00000033,
|
||||
0x0000023d,0x0000023a,0x0000023c,0x0004003d,0x00000006,0x0000023e,0x000000b6,0x000500af,
|
||||
0x00000033,0x0000023f,0x0000023e,0x00000055,0x000500a7,0x00000033,0x00000240,0x0000023d,
|
||||
0x0000023f,0x0004003d,0x00000006,0x00000241,0x000000b6,0x000500b1,0x00000033,0x00000242,
|
||||
0x00000241,0x00000028,0x000500a7,0x00000033,0x00000243,0x00000240,0x00000242,0x000300f7,
|
||||
0x00000245,0x00000000,0x000400fa,0x00000243,0x00000244,0x00000245,0x000200f8,0x00000244,
|
||||
0x0004003d,0x00000006,0x00000246,0x00000024,0x0004003d,0x00000006,0x00000247,0x000000cc,
|
||||
0x00050084,0x00000006,0x00000249,0x00000247,0x00000248,0x00050080,0x00000006,0x0000024a,
|
||||
0x00000246,0x00000249,0x0004003d,0x00000006,0x0000024b,0x000000c0,0x00050084,0x00000006,
|
||||
0x0000024c,0x0000024b,0x00000028,0x00050080,0x00000006,0x0000024d,0x0000024a,0x0000024c,
|
||||
0x0004003d,0x00000006,0x0000024e,0x000000b6,0x00050080,0x00000006,0x0000024f,0x0000024d,
|
||||
0x0000024e,0x00060041,0x000000ed,0x00000250,0x000000e2,0x00000055,0x0000024f,0x0004003d,
|
||||
0x00000047,0x00000251,0x00000250,0x00050041,0x000000f0,0x00000252,0x0000005b,0x00000018,
|
||||
0x0003003e,0x00000252,0x00000251,0x000200f9,0x00000245,0x000200f8,0x00000245,0x0004003d,
|
||||
0x00000006,0x00000253,0x000000b0,0x0004003d,0x00000006,0x00000254,0x00000054,0x00050084,
|
||||
0x00000006,0x00000255,0x00000254,0x00000021,0x00050080,0x00000006,0x00000256,0x00000255,
|
||||
0x00000154,0x0005008b,0x00000006,0x00000257,0x00000256,0x000000bb,0x00050084,0x00000006,
|
||||
0x00000258,0x00000257,0x000000bd,0x00050080,0x00000006,0x00000259,0x00000253,0x00000258,
|
||||
0x0003003e,0x000000b6,0x00000259,0x0004003d,0x00000006,0x0000025a,0x000000aa,0x0004003d,
|
||||
0x00000006,0x0000025b,0x00000054,0x00050084,0x00000006,0x0000025c,0x0000025b,0x00000021,
|
||||
0x00050080,0x00000006,0x0000025d,0x0000025c,0x00000154,0x0005008b,0x00000006,0x0000025f,
|
||||
0x0000025d,0x0000025e,0x00050087,0x00000006,0x00000260,0x0000025f,0x000000bb,0x00050084,
|
||||
0x00000006,0x00000261,0x00000260,0x000000c9,0x00050080,0x00000006,0x00000262,0x0000025a,
|
||||
0x00000261,0x0003003e,0x000000c0,0x00000262,0x0004003d,0x00000006,0x00000263,0x00000054,
|
||||
0x00050084,0x00000006,0x00000264,0x00000263,0x00000021,0x00050080,0x00000006,0x00000265,
|
||||
0x00000264,0x00000154,0x00050087,0x00000006,0x00000267,0x00000265,0x00000266,0x0003003e,
|
||||
0x000000cc,0x00000267,0x0004003d,0x00000006,0x00000268,0x000000c0,0x000500af,0x00000033,
|
||||
0x00000269,0x00000268,0x00000055,0x0004003d,0x00000006,0x0000026a,0x000000c0,0x000500b1,
|
||||
0x00000033,0x0000026b,0x0000026a,0x00000026,0x000500a7,0x00000033,0x0000026c,0x00000269,
|
||||
0x0000026b,0x0004003d,0x00000006,0x0000026d,0x000000b6,0x000500af,0x00000033,0x0000026e,
|
||||
0x0000026d,0x00000055,0x000500a7,0x00000033,0x0000026f,0x0000026c,0x0000026e,0x0004003d,
|
||||
0x00000006,0x00000270,0x000000b6,0x000500b1,0x00000033,0x00000271,0x00000270,0x00000028,
|
||||
0x000500a7,0x00000033,0x00000272,0x0000026f,0x00000271,0x000300f7,0x00000274,0x00000000,
|
||||
0x000400fa,0x00000272,0x00000273,0x00000274,0x000200f8,0x00000273,0x0004003d,0x00000006,
|
||||
0x00000275,0x00000024,0x0004003d,0x00000006,0x00000276,0x000000cc,0x00050084,0x00000006,
|
||||
0x00000278,0x00000276,0x00000277,0x00050080,0x00000006,0x00000279,0x00000275,0x00000278,
|
||||
0x0004003d,0x00000006,0x0000027a,0x000000c0,0x00050084,0x00000006,0x0000027b,0x0000027a,
|
||||
0x00000028,0x00050080,0x00000006,0x0000027c,0x00000279,0x0000027b,0x0004003d,0x00000006,
|
||||
0x0000027d,0x000000b6,0x00050080,0x00000006,0x0000027e,0x0000027c,0x0000027d,0x00060041,
|
||||
0x000000ed,0x0000027f,0x000000e2,0x00000055,0x0000027e,0x0004003d,0x00000047,0x00000280,
|
||||
0x0000027f,0x00050041,0x000000f0,0x00000281,0x0000005b,0x00000180,0x0003003e,0x00000281,
|
||||
0x00000280,0x000200f9,0x00000274,0x000200f8,0x00000274,0x0004003d,0x00000048,0x00000282,
|
||||
0x0000005e,0x0004003d,0x00000048,0x00000283,0x0000005b,0x00050094,0x00000047,0x00000284,
|
||||
0x00000282,0x00000283,0x00050041,0x000000f0,0x00000285,0x0000004a,0x00000013,0x0004003d,
|
||||
0x00000047,0x00000286,0x00000285,0x00050081,0x00000047,0x00000287,0x00000286,0x00000284,
|
||||
0x00050041,0x000000f0,0x00000288,0x0000004a,0x00000013,0x0003003e,0x00000288,0x00000287,
|
||||
0x0004003d,0x00000048,0x00000289,0x0000006a,0x0004003d,0x00000048,0x0000028a,0x0000005b,
|
||||
0x00050094,0x00000047,0x0000028b,0x00000289,0x0000028a,0x00050041,0x000000f0,0x0000028c,
|
||||
0x0000004d,0x00000013,0x0004003d,0x00000047,0x0000028d,0x0000028c,0x00050081,0x00000047,
|
||||
0x0000028e,0x0000028d,0x0000028b,0x00050041,0x000000f0,0x0000028f,0x0000004d,0x00000013,
|
||||
0x0003003e,0x0000028f,0x0000028e,0x0004003d,0x00000048,0x00000290,0x00000071,0x0004003d,
|
||||
0x00000048,0x00000291,0x0000005b,0x00050094,0x00000047,0x00000292,0x00000290,0x00000291,
|
||||
0x00050041,0x000000f0,0x00000293,0x0000004e,0x00000013,0x0004003d,0x00000047,0x00000294,
|
||||
0x00000293,0x00050081,0x00000047,0x00000295,0x00000294,0x00000292,0x00050041,0x000000f0,
|
||||
0x00000296,0x0000004e,0x00000013,0x0003003e,0x00000296,0x00000295,0x0004003d,0x00000048,
|
||||
0x00000297,0x00000078,0x0004003d,0x00000048,0x00000298,0x0000005b,0x00050094,0x00000047,
|
||||
0x00000299,0x00000297,0x00000298,0x00050041,0x000000f0,0x0000029a,0x0000004f,0x00000013,
|
||||
0x0004003d,0x00000047,0x0000029b,0x0000029a,0x00050081,0x00000047,0x0000029c,0x0000029b,
|
||||
0x00000299,0x00050041,0x000000f0,0x0000029d,0x0000004f,0x00000013,0x0003003e,0x0000029d,
|
||||
0x0000029c,0x0004003d,0x00000048,0x0000029e,0x0000007f,0x0004003d,0x00000048,0x0000029f,
|
||||
0x0000005b,0x00050094,0x00000047,0x000002a0,0x0000029e,0x0000029f,0x00050041,0x000000f0,
|
||||
0x000002a1,0x00000050,0x00000013,0x0004003d,0x00000047,0x000002a2,0x000002a1,0x00050081,
|
||||
0x00000047,0x000002a3,0x000002a2,0x000002a0,0x00050041,0x000000f0,0x000002a4,0x00000050,
|
||||
0x00000013,0x0003003e,0x000002a4,0x000002a3,0x0004003d,0x00000048,0x000002a5,0x00000086,
|
||||
0x0004003d,0x00000048,0x000002a6,0x0000005b,0x00050094,0x00000047,0x000002a7,0x000002a5,
|
||||
0x000002a6,0x00050041,0x000000f0,0x000002a8,0x00000051,0x00000013,0x0004003d,0x00000047,
|
||||
0x000002a9,0x000002a8,0x00050081,0x00000047,0x000002aa,0x000002a9,0x000002a7,0x00050041,
|
||||
0x000000f0,0x000002ab,0x00000051,0x00000013,0x0003003e,0x000002ab,0x000002aa,0x0004003d,
|
||||
0x00000048,0x000002ac,0x0000008d,0x0004003d,0x00000048,0x000002ad,0x0000005b,0x00050094,
|
||||
0x00000047,0x000002ae,0x000002ac,0x000002ad,0x00050041,0x000000f0,0x000002af,0x00000052,
|
||||
0x00000013,0x0004003d,0x00000047,0x000002b0,0x000002af,0x00050081,0x00000047,0x000002b1,
|
||||
0x000002b0,0x000002ae,0x00050041,0x000000f0,0x000002b2,0x00000052,0x00000013,0x0003003e,
|
||||
0x000002b2,0x000002b1,0x0004003d,0x00000048,0x000002b3,0x00000094,0x0004003d,0x00000048,
|
||||
0x000002b4,0x0000005b,0x00050094,0x00000047,0x000002b5,0x000002b3,0x000002b4,0x00050041,
|
||||
0x000000f0,0x000002b6,0x00000053,0x00000013,0x0004003d,0x00000047,0x000002b7,0x000002b6,
|
||||
0x00050081,0x00000047,0x000002b8,0x000002b7,0x000002b5,0x00050041,0x000000f0,0x000002b9,
|
||||
0x00000053,0x00000013,0x0003003e,0x000002b9,0x000002b8,0x0004003d,0x00000006,0x000002ba,
|
||||
0x00000020,0x00050080,0x00000006,0x000002bb,0x000002ba,0x00000124,0x0005008b,0x00000006,
|
||||
0x000002bc,0x000002bb,0x000000a4,0x0003003e,0x000000a1,0x000002bc,0x0004003d,0x00000006,
|
||||
0x000002bd,0x00000020,0x00050080,0x00000006,0x000002be,0x000002bd,0x00000124,0x00050087,
|
||||
0x00000006,0x000002bf,0x000002be,0x000000a4,0x0003003e,0x000000a6,0x000002bf,0x0004003d,
|
||||
0x00000006,0x000002c0,0x000000a6,0x00050084,0x00000006,0x000002c1,0x000002c0,0x000000ac,
|
||||
0x00050082,0x00000006,0x000002c2,0x000002c1,0x000000ae,0x0003003e,0x000000aa,0x000002c2,
|
||||
0x0004003d,0x00000006,0x000002c3,0x000000a1,0x00050084,0x00000006,0x000002c4,0x000002c3,
|
||||
0x000000b2,0x00050082,0x00000006,0x000002c5,0x000002c4,0x000000b4,0x0003003e,0x000000b0,
|
||||
0x000002c5,0x0004003d,0x00000006,0x000002c6,0x000000b0,0x0004003d,0x00000006,0x000002c7,
|
||||
0x00000054,0x00050084,0x00000006,0x000002c8,0x000002c7,0x00000021,0x00050080,0x00000006,
|
||||
0x000002c9,0x000002c8,0x00000055,0x0005008b,0x00000006,0x000002ca,0x000002c9,0x000000bb,
|
||||
0x00050084,0x00000006,0x000002cb,0x000002ca,0x000000bd,0x00050080,0x00000006,0x000002cc,
|
||||
0x000002c6,0x000002cb,0x0003003e,0x000000b6,0x000002cc,0x0004003d,0x00000006,0x000002cd,
|
||||
0x000000aa,0x0004003d,0x00000006,0x000002ce,0x00000054,0x00050084,0x00000006,0x000002cf,
|
||||
0x000002ce,0x00000021,0x00050080,0x00000006,0x000002d0,0x000002cf,0x00000055,0x0005008b,
|
||||
0x00000006,0x000002d2,0x000002d0,0x000002d1,0x00050087,0x00000006,0x000002d3,0x000002d2,
|
||||
0x000000bb,0x00050084,0x00000006,0x000002d4,0x000002d3,0x000000c9,0x00050080,0x00000006,
|
||||
0x000002d5,0x000002cd,0x000002d4,0x0003003e,0x000000c0,0x000002d5,0x0004003d,0x00000006,
|
||||
0x000002d6,0x00000054,0x00050084,0x00000006,0x000002d7,0x000002d6,0x00000021,0x00050080,
|
||||
0x00000006,0x000002d8,0x000002d7,0x00000055,0x00050087,0x00000006,0x000002da,0x000002d8,
|
||||
0x000002d9,0x0003003e,0x000000cc,0x000002da,0x0004003d,0x00000006,0x000002db,0x000000c0,
|
||||
0x000500af,0x00000033,0x000002dc,0x000002db,0x00000055,0x0004003d,0x00000006,0x000002dd,
|
||||
0x000000c0,0x000500b1,0x00000033,0x000002de,0x000002dd,0x00000026,0x000500a7,0x00000033,
|
||||
0x000002df,0x000002dc,0x000002de,0x0004003d,0x00000006,0x000002e0,0x000000b6,0x000500af,
|
||||
0x00000033,0x000002e1,0x000002e0,0x00000055,0x000500a7,0x00000033,0x000002e2,0x000002df,
|
||||
0x000002e1,0x0004003d,0x00000006,0x000002e3,0x000000b6,0x000500b1,0x00000033,0x000002e4,
|
||||
0x000002e3,0x00000028,0x000500a7,0x00000033,0x000002e5,0x000002e2,0x000002e4,0x000300f7,
|
||||
0x000002e7,0x00000000,0x000400fa,0x000002e5,0x000002e6,0x000002e7,0x000200f8,0x000002e6,
|
||||
0x0004003d,0x00000006,0x000002e8,0x00000024,0x0004003d,0x00000006,0x000002e9,0x000000cc,
|
||||
0x00050084,0x00000006,0x000002eb,0x000002e9,0x000002ea,0x00050080,0x00000006,0x000002ec,
|
||||
0x000002e8,0x000002eb,0x0004003d,0x00000006,0x000002ed,0x000000c0,0x00050084,0x00000006,
|
||||
0x000002ee,0x000002ed,0x00000028,0x00050080,0x00000006,0x000002ef,0x000002ec,0x000002ee,
|
||||
0x0004003d,0x00000006,0x000002f0,0x000000b6,0x00050080,0x00000006,0x000002f1,0x000002ef,
|
||||
0x000002f0,0x00060041,0x000000ed,0x000002f2,0x000000e2,0x00000055,0x000002f1,0x0004003d,
|
||||
0x00000047,0x000002f3,0x000002f2,0x00050041,0x000000f0,0x000002f4,0x0000005c,0x0000000d,
|
||||
0x0003003e,0x000002f4,0x000002f3,0x000200f9,0x000002e7,0x000200f8,0x000002e7,0x0004003d,
|
||||
0x00000006,0x000002f5,0x000000b0,0x0004003d,0x00000006,0x000002f6,0x00000054,0x00050084,
|
||||
0x00000006,0x000002f7,0x000002f6,0x00000021,0x00050080,0x00000006,0x000002f8,0x000002f7,
|
||||
0x0000009b,0x0005008b,0x00000006,0x000002f9,0x000002f8,0x000000bb,0x00050084,0x00000006,
|
||||
0x000002fa,0x000002f9,0x000000bd,0x00050080,0x00000006,0x000002fb,0x000002f5,0x000002fa,
|
||||
0x0003003e,0x000000b6,0x000002fb,0x0004003d,0x00000006,0x000002fc,0x000000aa,0x0004003d,
|
||||
0x00000006,0x000002fd,0x00000054,0x00050084,0x00000006,0x000002fe,0x000002fd,0x00000021,
|
||||
0x00050080,0x00000006,0x000002ff,0x000002fe,0x0000009b,0x0005008b,0x00000006,0x00000301,
|
||||
0x000002ff,0x00000300,0x00050087,0x00000006,0x00000302,0x00000301,0x000000bb,0x00050084,
|
||||
0x00000006,0x00000303,0x00000302,0x000000c9,0x00050080,0x00000006,0x00000304,0x000002fc,
|
||||
0x00000303,0x0003003e,0x000000c0,0x00000304,0x0004003d,0x00000006,0x00000305,0x00000054,
|
||||
0x00050084,0x00000006,0x00000306,0x00000305,0x00000021,0x00050080,0x00000006,0x00000307,
|
||||
0x00000306,0x0000009b,0x00050087,0x00000006,0x00000309,0x00000307,0x00000308,0x0003003e,
|
||||
0x000000cc,0x00000309,0x0004003d,0x00000006,0x0000030a,0x000000c0,0x000500af,0x00000033,
|
||||
0x0000030b,0x0000030a,0x00000055,0x0004003d,0x00000006,0x0000030c,0x000000c0,0x000500b1,
|
||||
0x00000033,0x0000030d,0x0000030c,0x00000026,0x000500a7,0x00000033,0x0000030e,0x0000030b,
|
||||
0x0000030d,0x0004003d,0x00000006,0x0000030f,0x000000b6,0x000500af,0x00000033,0x00000310,
|
||||
0x0000030f,0x00000055,0x000500a7,0x00000033,0x00000311,0x0000030e,0x00000310,0x0004003d,
|
||||
0x00000006,0x00000312,0x000000b6,0x000500b1,0x00000033,0x00000313,0x00000312,0x00000028,
|
||||
0x000500a7,0x00000033,0x00000314,0x00000311,0x00000313,0x000300f7,0x00000316,0x00000000,
|
||||
0x000400fa,0x00000314,0x00000315,0x00000316,0x000200f8,0x00000315,0x0004003d,0x00000006,
|
||||
0x00000317,0x00000024,0x0004003d,0x00000006,0x00000318,0x000000cc,0x00050084,0x00000006,
|
||||
0x0000031a,0x00000318,0x00000319,0x00050080,0x00000006,0x0000031b,0x00000317,0x0000031a,
|
||||
0x0004003d,0x00000006,0x0000031c,0x000000c0,0x00050084,0x00000006,0x0000031d,0x0000031c,
|
||||
0x00000028,0x00050080,0x00000006,0x0000031e,0x0000031b,0x0000031d,0x0004003d,0x00000006,
|
||||
0x0000031f,0x000000b6,0x00050080,0x00000006,0x00000320,0x0000031e,0x0000031f,0x00060041,
|
||||
0x000000ed,0x00000321,0x000000e2,0x00000055,0x00000320,0x0004003d,0x00000047,0x00000322,
|
||||
0x00000321,0x00050041,0x000000f0,0x00000323,0x0000005c,0x00000013,0x0003003e,0x00000323,
|
||||
0x00000322,0x000200f9,0x00000316,0x000200f8,0x00000316,0x0004003d,0x00000006,0x00000324,
|
||||
0x000000b0,0x0004003d,0x00000006,0x00000325,0x00000054,0x00050084,0x00000006,0x00000326,
|
||||
0x00000325,0x00000021,0x00050080,0x00000006,0x00000327,0x00000326,0x00000124,0x0005008b,
|
||||
0x00000006,0x00000328,0x00000327,0x000000bb,0x00050084,0x00000006,0x00000329,0x00000328,
|
||||
0x000000bd,0x00050080,0x00000006,0x0000032a,0x00000324,0x00000329,0x0003003e,0x000000b6,
|
||||
0x0000032a,0x0004003d,0x00000006,0x0000032b,0x000000aa,0x0004003d,0x00000006,0x0000032c,
|
||||
0x00000054,0x00050084,0x00000006,0x0000032d,0x0000032c,0x00000021,0x00050080,0x00000006,
|
||||
0x0000032e,0x0000032d,0x00000124,0x0005008b,0x00000006,0x00000330,0x0000032e,0x0000032f,
|
||||
0x00050087,0x00000006,0x00000331,0x00000330,0x000000bb,0x00050084,0x00000006,0x00000332,
|
||||
0x00000331,0x000000c9,0x00050080,0x00000006,0x00000333,0x0000032b,0x00000332,0x0003003e,
|
||||
0x000000c0,0x00000333,0x0004003d,0x00000006,0x00000334,0x00000054,0x00050084,0x00000006,
|
||||
0x00000335,0x00000334,0x00000021,0x00050080,0x00000006,0x00000336,0x00000335,0x00000124,
|
||||
0x00050087,0x00000006,0x00000338,0x00000336,0x00000337,0x0003003e,0x000000cc,0x00000338,
|
||||
0x0004003d,0x00000006,0x00000339,0x000000c0,0x000500af,0x00000033,0x0000033a,0x00000339,
|
||||
0x00000055,0x0004003d,0x00000006,0x0000033b,0x000000c0,0x000500b1,0x00000033,0x0000033c,
|
||||
0x0000033b,0x00000026,0x000500a7,0x00000033,0x0000033d,0x0000033a,0x0000033c,0x0004003d,
|
||||
0x00000006,0x0000033e,0x000000b6,0x000500af,0x00000033,0x0000033f,0x0000033e,0x00000055,
|
||||
0x000500a7,0x00000033,0x00000340,0x0000033d,0x0000033f,0x0004003d,0x00000006,0x00000341,
|
||||
0x000000b6,0x000500b1,0x00000033,0x00000342,0x00000341,0x00000028,0x000500a7,0x00000033,
|
||||
0x00000343,0x00000340,0x00000342,0x000300f7,0x00000345,0x00000000,0x000400fa,0x00000343,
|
||||
0x00000344,0x00000345,0x000200f8,0x00000344,0x0004003d,0x00000006,0x00000346,0x00000024,
|
||||
0x0004003d,0x00000006,0x00000347,0x000000cc,0x00050084,0x00000006,0x00000349,0x00000347,
|
||||
0x00000348,0x00050080,0x00000006,0x0000034a,0x00000346,0x00000349,0x0004003d,0x00000006,
|
||||
0x0000034b,0x000000c0,0x00050084,0x00000006,0x0000034c,0x0000034b,0x00000028,0x00050080,
|
||||
0x00000006,0x0000034d,0x0000034a,0x0000034c,0x0004003d,0x00000006,0x0000034e,0x000000b6,
|
||||
0x00050080,0x00000006,0x0000034f,0x0000034d,0x0000034e,0x00060041,0x000000ed,0x00000350,
|
||||
0x000000e2,0x00000055,0x0000034f,0x0004003d,0x00000047,0x00000351,0x00000350,0x00050041,
|
||||
0x000000f0,0x00000352,0x0000005c,0x00000018,0x0003003e,0x00000352,0x00000351,0x000200f9,
|
||||
0x00000345,0x000200f8,0x00000345,0x0004003d,0x00000006,0x00000353,0x000000b0,0x0004003d,
|
||||
0x00000006,0x00000354,0x00000054,0x00050084,0x00000006,0x00000355,0x00000354,0x00000021,
|
||||
0x00050080,0x00000006,0x00000356,0x00000355,0x00000154,0x0005008b,0x00000006,0x00000357,
|
||||
0x00000356,0x000000bb,0x00050084,0x00000006,0x00000358,0x00000357,0x000000bd,0x00050080,
|
||||
0x00000006,0x00000359,0x00000353,0x00000358,0x0003003e,0x000000b6,0x00000359,0x0004003d,
|
||||
0x00000006,0x0000035a,0x000000aa,0x0004003d,0x00000006,0x0000035b,0x00000054,0x00050084,
|
||||
0x00000006,0x0000035c,0x0000035b,0x00000021,0x00050080,0x00000006,0x0000035d,0x0000035c,
|
||||
0x00000154,0x0005008b,0x00000006,0x0000035f,0x0000035d,0x0000035e,0x00050087,0x00000006,
|
||||
0x00000360,0x0000035f,0x000000bb,0x00050084,0x00000006,0x00000361,0x00000360,0x000000c9,
|
||||
0x00050080,0x00000006,0x00000362,0x0000035a,0x00000361,0x0003003e,0x000000c0,0x00000362,
|
||||
0x0004003d,0x00000006,0x00000363,0x00000054,0x00050084,0x00000006,0x00000364,0x00000363,
|
||||
0x00000021,0x00050080,0x00000006,0x00000365,0x00000364,0x00000154,0x00050087,0x00000006,
|
||||
0x00000367,0x00000365,0x00000366,0x0003003e,0x000000cc,0x00000367,0x0004003d,0x00000006,
|
||||
0x00000368,0x000000c0,0x000500af,0x00000033,0x00000369,0x00000368,0x00000055,0x0004003d,
|
||||
0x00000006,0x0000036a,0x000000c0,0x000500b1,0x00000033,0x0000036b,0x0000036a,0x00000026,
|
||||
0x000500a7,0x00000033,0x0000036c,0x00000369,0x0000036b,0x0004003d,0x00000006,0x0000036d,
|
||||
0x000000b6,0x000500af,0x00000033,0x0000036e,0x0000036d,0x00000055,0x000500a7,0x00000033,
|
||||
0x0000036f,0x0000036c,0x0000036e,0x0004003d,0x00000006,0x00000370,0x000000b6,0x000500b1,
|
||||
0x00000033,0x00000371,0x00000370,0x00000028,0x000500a7,0x00000033,0x00000372,0x0000036f,
|
||||
0x00000371,0x000300f7,0x00000374,0x00000000,0x000400fa,0x00000372,0x00000373,0x00000374,
|
||||
0x000200f8,0x00000373,0x0004003d,0x00000006,0x00000375,0x00000024,0x0004003d,0x00000006,
|
||||
0x00000376,0x000000cc,0x00050084,0x00000006,0x00000378,0x00000376,0x00000377,0x00050080,
|
||||
0x00000006,0x00000379,0x00000375,0x00000378,0x0004003d,0x00000006,0x0000037a,0x000000c0,
|
||||
0x00050084,0x00000006,0x0000037b,0x0000037a,0x00000028,0x00050080,0x00000006,0x0000037c,
|
||||
0x00000379,0x0000037b,0x0004003d,0x00000006,0x0000037d,0x000000b6,0x00050080,0x00000006,
|
||||
0x0000037e,0x0000037c,0x0000037d,0x00060041,0x000000ed,0x0000037f,0x000000e2,0x00000055,
|
||||
0x0000037e,0x0004003d,0x00000047,0x00000380,0x0000037f,0x00050041,0x000000f0,0x00000381,
|
||||
0x0000005c,0x00000180,0x0003003e,0x00000381,0x00000380,0x000200f9,0x00000374,0x000200f8,
|
||||
0x00000374,0x0004003d,0x00000048,0x00000382,0x0000005e,0x0004003d,0x00000048,0x00000383,
|
||||
0x0000005c,0x00050094,0x00000047,0x00000384,0x00000382,0x00000383,0x00050041,0x000000f0,
|
||||
0x00000385,0x0000004a,0x00000018,0x0004003d,0x00000047,0x00000386,0x00000385,0x00050081,
|
||||
0x00000047,0x00000387,0x00000386,0x00000384,0x00050041,0x000000f0,0x00000388,0x0000004a,
|
||||
0x00000018,0x0003003e,0x00000388,0x00000387,0x0004003d,0x00000048,0x00000389,0x0000006a,
|
||||
0x0004003d,0x00000048,0x0000038a,0x0000005c,0x00050094,0x00000047,0x0000038b,0x00000389,
|
||||
0x0000038a,0x00050041,0x000000f0,0x0000038c,0x0000004d,0x00000018,0x0004003d,0x00000047,
|
||||
0x0000038d,0x0000038c,0x00050081,0x00000047,0x0000038e,0x0000038d,0x0000038b,0x00050041,
|
||||
0x000000f0,0x0000038f,0x0000004d,0x00000018,0x0003003e,0x0000038f,0x0000038e,0x0004003d,
|
||||
0x00000048,0x00000390,0x00000071,0x0004003d,0x00000048,0x00000391,0x0000005c,0x00050094,
|
||||
0x00000047,0x00000392,0x00000390,0x00000391,0x00050041,0x000000f0,0x00000393,0x0000004e,
|
||||
0x00000018,0x0004003d,0x00000047,0x00000394,0x00000393,0x00050081,0x00000047,0x00000395,
|
||||
0x00000394,0x00000392,0x00050041,0x000000f0,0x00000396,0x0000004e,0x00000018,0x0003003e,
|
||||
0x00000396,0x00000395,0x0004003d,0x00000048,0x00000397,0x00000078,0x0004003d,0x00000048,
|
||||
0x00000398,0x0000005c,0x00050094,0x00000047,0x00000399,0x00000397,0x00000398,0x00050041,
|
||||
0x000000f0,0x0000039a,0x0000004f,0x00000018,0x0004003d,0x00000047,0x0000039b,0x0000039a,
|
||||
0x00050081,0x00000047,0x0000039c,0x0000039b,0x00000399,0x00050041,0x000000f0,0x0000039d,
|
||||
0x0000004f,0x00000018,0x0003003e,0x0000039d,0x0000039c,0x0004003d,0x00000048,0x0000039e,
|
||||
0x0000007f,0x0004003d,0x00000048,0x0000039f,0x0000005c,0x00050094,0x00000047,0x000003a0,
|
||||
0x0000039e,0x0000039f,0x00050041,0x000000f0,0x000003a1,0x00000050,0x00000018,0x0004003d,
|
||||
0x00000047,0x000003a2,0x000003a1,0x00050081,0x00000047,0x000003a3,0x000003a2,0x000003a0,
|
||||
0x00050041,0x000000f0,0x000003a4,0x00000050,0x00000018,0x0003003e,0x000003a4,0x000003a3,
|
||||
0x0004003d,0x00000048,0x000003a5,0x00000086,0x0004003d,0x00000048,0x000003a6,0x0000005c,
|
||||
0x00050094,0x00000047,0x000003a7,0x000003a5,0x000003a6,0x00050041,0x000000f0,0x000003a8,
|
||||
0x00000051,0x00000018,0x0004003d,0x00000047,0x000003a9,0x000003a8,0x00050081,0x00000047,
|
||||
0x000003aa,0x000003a9,0x000003a7,0x00050041,0x000000f0,0x000003ab,0x00000051,0x00000018,
|
||||
0x0003003e,0x000003ab,0x000003aa,0x0004003d,0x00000048,0x000003ac,0x0000008d,0x0004003d,
|
||||
0x00000048,0x000003ad,0x0000005c,0x00050094,0x00000047,0x000003ae,0x000003ac,0x000003ad,
|
||||
0x00050041,0x000000f0,0x000003af,0x00000052,0x00000018,0x0004003d,0x00000047,0x000003b0,
|
||||
0x000003af,0x00050081,0x00000047,0x000003b1,0x000003b0,0x000003ae,0x00050041,0x000000f0,
|
||||
0x000003b2,0x00000052,0x00000018,0x0003003e,0x000003b2,0x000003b1,0x0004003d,0x00000048,
|
||||
0x000003b3,0x00000094,0x0004003d,0x00000048,0x000003b4,0x0000005c,0x00050094,0x00000047,
|
||||
0x000003b5,0x000003b3,0x000003b4,0x00050041,0x000000f0,0x000003b6,0x00000053,0x00000018,
|
||||
0x0004003d,0x00000047,0x000003b7,0x000003b6,0x00050081,0x00000047,0x000003b8,0x000003b7,
|
||||
0x000003b5,0x00050041,0x000000f0,0x000003b9,0x00000053,0x00000018,0x0003003e,0x000003b9,
|
||||
0x000003b8,0x0004003d,0x00000006,0x000003ba,0x00000020,0x00050080,0x00000006,0x000003bb,
|
||||
0x000003ba,0x00000154,0x0005008b,0x00000006,0x000003bc,0x000003bb,0x000000a4,0x0003003e,
|
||||
0x000000a1,0x000003bc,0x0004003d,0x00000006,0x000003bd,0x00000020,0x00050080,0x00000006,
|
||||
0x000003be,0x000003bd,0x00000154,0x00050087,0x00000006,0x000003bf,0x000003be,0x000000a4,
|
||||
0x0003003e,0x000000a6,0x000003bf,0x0004003d,0x00000006,0x000003c0,0x000000a6,0x00050084,
|
||||
0x00000006,0x000003c1,0x000003c0,0x000000ac,0x00050082,0x00000006,0x000003c2,0x000003c1,
|
||||
0x000000ae,0x0003003e,0x000000aa,0x000003c2,0x0004003d,0x00000006,0x000003c3,0x000000a1,
|
||||
0x00050084,0x00000006,0x000003c4,0x000003c3,0x000000b2,0x00050082,0x00000006,0x000003c5,
|
||||
0x000003c4,0x000000b4,0x0003003e,0x000000b0,0x000003c5,0x0004003d,0x00000006,0x000003c6,
|
||||
0x000000b0,0x0004003d,0x00000006,0x000003c7,0x00000054,0x00050084,0x00000006,0x000003c8,
|
||||
0x000003c7,0x00000021,0x00050080,0x00000006,0x000003c9,0x000003c8,0x00000055,0x0005008b,
|
||||
0x00000006,0x000003ca,0x000003c9,0x000000bb,0x00050084,0x00000006,0x000003cb,0x000003ca,
|
||||
0x000000bd,0x00050080,0x00000006,0x000003cc,0x000003c6,0x000003cb,0x0003003e,0x000000b6,
|
||||
0x000003cc,0x0004003d,0x00000006,0x000003cd,0x000000aa,0x0004003d,0x00000006,0x000003ce,
|
||||
0x00000054,0x00050084,0x00000006,0x000003cf,0x000003ce,0x00000021,0x00050080,0x00000006,
|
||||
0x000003d0,0x000003cf,0x00000055,0x0005008b,0x00000006,0x000003d2,0x000003d0,0x000003d1,
|
||||
0x00050087,0x00000006,0x000003d3,0x000003d2,0x000000bb,0x00050084,0x00000006,0x000003d4,
|
||||
0x000003d3,0x000000c9,0x00050080,0x00000006,0x000003d5,0x000003cd,0x000003d4,0x0003003e,
|
||||
0x000000c0,0x000003d5,0x0004003d,0x00000006,0x000003d6,0x00000054,0x00050084,0x00000006,
|
||||
0x000003d7,0x000003d6,0x00000021,0x00050080,0x00000006,0x000003d8,0x000003d7,0x00000055,
|
||||
0x00050087,0x00000006,0x000003da,0x000003d8,0x000003d9,0x0003003e,0x000000cc,0x000003da,
|
||||
0x0004003d,0x00000006,0x000003db,0x000000c0,0x000500af,0x00000033,0x000003dc,0x000003db,
|
||||
0x00000055,0x0004003d,0x00000006,0x000003dd,0x000000c0,0x000500b1,0x00000033,0x000003de,
|
||||
0x000003dd,0x00000026,0x000500a7,0x00000033,0x000003df,0x000003dc,0x000003de,0x0004003d,
|
||||
0x00000006,0x000003e0,0x000000b6,0x000500af,0x00000033,0x000003e1,0x000003e0,0x00000055,
|
||||
0x000500a7,0x00000033,0x000003e2,0x000003df,0x000003e1,0x0004003d,0x00000006,0x000003e3,
|
||||
0x000000b6,0x000500b1,0x00000033,0x000003e4,0x000003e3,0x00000028,0x000500a7,0x00000033,
|
||||
0x000003e5,0x000003e2,0x000003e4,0x000300f7,0x000003e7,0x00000000,0x000400fa,0x000003e5,
|
||||
0x000003e6,0x000003e7,0x000200f8,0x000003e6,0x0004003d,0x00000006,0x000003e8,0x00000024,
|
||||
0x0004003d,0x00000006,0x000003e9,0x000000cc,0x00050084,0x00000006,0x000003eb,0x000003e9,
|
||||
0x000003ea,0x00050080,0x00000006,0x000003ec,0x000003e8,0x000003eb,0x0004003d,0x00000006,
|
||||
0x000003ed,0x000000c0,0x00050084,0x00000006,0x000003ee,0x000003ed,0x00000028,0x00050080,
|
||||
0x00000006,0x000003ef,0x000003ec,0x000003ee,0x0004003d,0x00000006,0x000003f0,0x000000b6,
|
||||
0x00050080,0x00000006,0x000003f1,0x000003ef,0x000003f0,0x00060041,0x000000ed,0x000003f2,
|
||||
0x000000e2,0x00000055,0x000003f1,0x0004003d,0x00000047,0x000003f3,0x000003f2,0x00050041,
|
||||
0x000000f0,0x000003f4,0x0000005d,0x0000000d,0x0003003e,0x000003f4,0x000003f3,0x000200f9,
|
||||
0x000003e7,0x000200f8,0x000003e7,0x0004003d,0x00000006,0x000003f5,0x000000b0,0x0004003d,
|
||||
0x00000006,0x000003f6,0x00000054,0x00050084,0x00000006,0x000003f7,0x000003f6,0x00000021,
|
||||
0x00050080,0x00000006,0x000003f8,0x000003f7,0x0000009b,0x0005008b,0x00000006,0x000003f9,
|
||||
0x000003f8,0x000000bb,0x00050084,0x00000006,0x000003fa,0x000003f9,0x000000bd,0x00050080,
|
||||
0x00000006,0x000003fb,0x000003f5,0x000003fa,0x0003003e,0x000000b6,0x000003fb,0x0004003d,
|
||||
0x00000006,0x000003fc,0x000000aa,0x0004003d,0x00000006,0x000003fd,0x00000054,0x00050084,
|
||||
0x00000006,0x000003fe,0x000003fd,0x00000021,0x00050080,0x00000006,0x000003ff,0x000003fe,
|
||||
0x0000009b,0x0005008b,0x00000006,0x00000401,0x000003ff,0x00000400,0x00050087,0x00000006,
|
||||
0x00000402,0x00000401,0x000000bb,0x00050084,0x00000006,0x00000403,0x00000402,0x000000c9,
|
||||
0x00050080,0x00000006,0x00000404,0x000003fc,0x00000403,0x0003003e,0x000000c0,0x00000404,
|
||||
0x0004003d,0x00000006,0x00000405,0x00000054,0x00050084,0x00000006,0x00000406,0x00000405,
|
||||
0x00000021,0x00050080,0x00000006,0x00000407,0x00000406,0x0000009b,0x00050087,0x00000006,
|
||||
0x00000409,0x00000407,0x00000408,0x0003003e,0x000000cc,0x00000409,0x0004003d,0x00000006,
|
||||
0x0000040a,0x000000c0,0x000500af,0x00000033,0x0000040b,0x0000040a,0x00000055,0x0004003d,
|
||||
0x00000006,0x0000040c,0x000000c0,0x000500b1,0x00000033,0x0000040d,0x0000040c,0x00000026,
|
||||
0x000500a7,0x00000033,0x0000040e,0x0000040b,0x0000040d,0x0004003d,0x00000006,0x0000040f,
|
||||
0x000000b6,0x000500af,0x00000033,0x00000410,0x0000040f,0x00000055,0x000500a7,0x00000033,
|
||||
0x00000411,0x0000040e,0x00000410,0x0004003d,0x00000006,0x00000412,0x000000b6,0x000500b1,
|
||||
0x00000033,0x00000413,0x00000412,0x00000028,0x000500a7,0x00000033,0x00000414,0x00000411,
|
||||
0x00000413,0x000300f7,0x00000416,0x00000000,0x000400fa,0x00000414,0x00000415,0x00000416,
|
||||
0x000200f8,0x00000415,0x0004003d,0x00000006,0x00000417,0x00000024,0x0004003d,0x00000006,
|
||||
0x00000418,0x000000cc,0x00050084,0x00000006,0x0000041a,0x00000418,0x00000419,0x00050080,
|
||||
0x00000006,0x0000041b,0x00000417,0x0000041a,0x0004003d,0x00000006,0x0000041c,0x000000c0,
|
||||
0x00050084,0x00000006,0x0000041d,0x0000041c,0x00000028,0x00050080,0x00000006,0x0000041e,
|
||||
0x0000041b,0x0000041d,0x0004003d,0x00000006,0x0000041f,0x000000b6,0x00050080,0x00000006,
|
||||
0x00000420,0x0000041e,0x0000041f,0x00060041,0x000000ed,0x00000421,0x000000e2,0x00000055,
|
||||
0x00000420,0x0004003d,0x00000047,0x00000422,0x00000421,0x00050041,0x000000f0,0x00000423,
|
||||
0x0000005d,0x00000013,0x0003003e,0x00000423,0x00000422,0x000200f9,0x00000416,0x000200f8,
|
||||
0x00000416,0x0004003d,0x00000006,0x00000424,0x000000b0,0x0004003d,0x00000006,0x00000425,
|
||||
0x00000054,0x00050084,0x00000006,0x00000426,0x00000425,0x00000021,0x00050080,0x00000006,
|
||||
0x00000427,0x00000426,0x00000124,0x0005008b,0x00000006,0x00000428,0x00000427,0x000000bb,
|
||||
0x00050084,0x00000006,0x00000429,0x00000428,0x000000bd,0x00050080,0x00000006,0x0000042a,
|
||||
0x00000424,0x00000429,0x0003003e,0x000000b6,0x0000042a,0x0004003d,0x00000006,0x0000042b,
|
||||
0x000000aa,0x0004003d,0x00000006,0x0000042c,0x00000054,0x00050084,0x00000006,0x0000042d,
|
||||
0x0000042c,0x00000021,0x00050080,0x00000006,0x0000042e,0x0000042d,0x00000124,0x0005008b,
|
||||
0x00000006,0x00000430,0x0000042e,0x0000042f,0x00050087,0x00000006,0x00000431,0x00000430,
|
||||
0x000000bb,0x00050084,0x00000006,0x00000432,0x00000431,0x000000c9,0x00050080,0x00000006,
|
||||
0x00000433,0x0000042b,0x00000432,0x0003003e,0x000000c0,0x00000433,0x0004003d,0x00000006,
|
||||
0x00000434,0x00000054,0x00050084,0x00000006,0x00000435,0x00000434,0x00000021,0x00050080,
|
||||
0x00000006,0x00000436,0x00000435,0x00000124,0x00050087,0x00000006,0x00000438,0x00000436,
|
||||
0x00000437,0x0003003e,0x000000cc,0x00000438,0x0004003d,0x00000006,0x00000439,0x000000c0,
|
||||
0x000500af,0x00000033,0x0000043a,0x00000439,0x00000055,0x0004003d,0x00000006,0x0000043b,
|
||||
0x000000c0,0x000500b1,0x00000033,0x0000043c,0x0000043b,0x00000026,0x000500a7,0x00000033,
|
||||
0x0000043d,0x0000043a,0x0000043c,0x0004003d,0x00000006,0x0000043e,0x000000b6,0x000500af,
|
||||
0x00000033,0x0000043f,0x0000043e,0x00000055,0x000500a7,0x00000033,0x00000440,0x0000043d,
|
||||
0x0000043f,0x0004003d,0x00000006,0x00000441,0x000000b6,0x000500b1,0x00000033,0x00000442,
|
||||
0x00000441,0x00000028,0x000500a7,0x00000033,0x00000443,0x00000440,0x00000442,0x000300f7,
|
||||
0x00000445,0x00000000,0x000400fa,0x00000443,0x00000444,0x00000445,0x000200f8,0x00000444,
|
||||
0x0004003d,0x00000006,0x00000446,0x00000024,0x0004003d,0x00000006,0x00000447,0x000000cc,
|
||||
0x00050084,0x00000006,0x00000449,0x00000447,0x00000448,0x00050080,0x00000006,0x0000044a,
|
||||
0x00000446,0x00000449,0x0004003d,0x00000006,0x0000044b,0x000000c0,0x00050084,0x00000006,
|
||||
0x0000044c,0x0000044b,0x00000028,0x00050080,0x00000006,0x0000044d,0x0000044a,0x0000044c,
|
||||
0x0004003d,0x00000006,0x0000044e,0x000000b6,0x00050080,0x00000006,0x0000044f,0x0000044d,
|
||||
0x0000044e,0x00060041,0x000000ed,0x00000450,0x000000e2,0x00000055,0x0000044f,0x0004003d,
|
||||
0x00000047,0x00000451,0x00000450,0x00050041,0x000000f0,0x00000452,0x0000005d,0x00000018,
|
||||
0x0003003e,0x00000452,0x00000451,0x000200f9,0x00000445,0x000200f8,0x00000445,0x0004003d,
|
||||
0x00000006,0x00000453,0x000000b0,0x0004003d,0x00000006,0x00000454,0x00000054,0x00050084,
|
||||
0x00000006,0x00000455,0x00000454,0x00000021,0x00050080,0x00000006,0x00000456,0x00000455,
|
||||
0x00000154,0x0005008b,0x00000006,0x00000457,0x00000456,0x000000bb,0x00050084,0x00000006,
|
||||
0x00000458,0x00000457,0x000000bd,0x00050080,0x00000006,0x00000459,0x00000453,0x00000458,
|
||||
0x0003003e,0x000000b6,0x00000459,0x0004003d,0x00000006,0x0000045a,0x000000aa,0x0004003d,
|
||||
0x00000006,0x0000045b,0x00000054,0x00050084,0x00000006,0x0000045c,0x0000045b,0x00000021,
|
||||
0x00050080,0x00000006,0x0000045d,0x0000045c,0x00000154,0x0005008b,0x00000006,0x0000045f,
|
||||
0x0000045d,0x0000045e,0x00050087,0x00000006,0x00000460,0x0000045f,0x000000bb,0x00050084,
|
||||
0x00000006,0x00000461,0x00000460,0x000000c9,0x00050080,0x00000006,0x00000462,0x0000045a,
|
||||
0x00000461,0x0003003e,0x000000c0,0x00000462,0x0004003d,0x00000006,0x00000463,0x00000054,
|
||||
0x00050084,0x00000006,0x00000464,0x00000463,0x00000021,0x00050080,0x00000006,0x00000465,
|
||||
0x00000464,0x00000154,0x00050087,0x00000006,0x00000467,0x00000465,0x00000466,0x0003003e,
|
||||
0x000000cc,0x00000467,0x0004003d,0x00000006,0x00000468,0x000000c0,0x000500af,0x00000033,
|
||||
0x00000469,0x00000468,0x00000055,0x0004003d,0x00000006,0x0000046a,0x000000c0,0x000500b1,
|
||||
0x00000033,0x0000046b,0x0000046a,0x00000026,0x000500a7,0x00000033,0x0000046c,0x00000469,
|
||||
0x0000046b,0x0004003d,0x00000006,0x0000046d,0x000000b6,0x000500af,0x00000033,0x0000046e,
|
||||
0x0000046d,0x00000055,0x000500a7,0x00000033,0x0000046f,0x0000046c,0x0000046e,0x0004003d,
|
||||
0x00000006,0x00000470,0x000000b6,0x000500b1,0x00000033,0x00000471,0x00000470,0x00000028,
|
||||
0x000500a7,0x00000033,0x00000472,0x0000046f,0x00000471,0x000300f7,0x00000474,0x00000000,
|
||||
0x000400fa,0x00000472,0x00000473,0x00000474,0x000200f8,0x00000473,0x0004003d,0x00000006,
|
||||
0x00000475,0x00000024,0x0004003d,0x00000006,0x00000476,0x000000cc,0x00050084,0x00000006,
|
||||
0x00000478,0x00000476,0x00000477,0x00050080,0x00000006,0x00000479,0x00000475,0x00000478,
|
||||
0x0004003d,0x00000006,0x0000047a,0x000000c0,0x00050084,0x00000006,0x0000047b,0x0000047a,
|
||||
0x00000028,0x00050080,0x00000006,0x0000047c,0x00000479,0x0000047b,0x0004003d,0x00000006,
|
||||
0x0000047d,0x000000b6,0x00050080,0x00000006,0x0000047e,0x0000047c,0x0000047d,0x00060041,
|
||||
0x000000ed,0x0000047f,0x000000e2,0x00000055,0x0000047e,0x0004003d,0x00000047,0x00000480,
|
||||
0x0000047f,0x00050041,0x000000f0,0x00000481,0x0000005d,0x00000180,0x0003003e,0x00000481,
|
||||
0x00000480,0x000200f9,0x00000474,0x000200f8,0x00000474,0x0004003d,0x00000048,0x00000482,
|
||||
0x0000005e,0x0004003d,0x00000048,0x00000483,0x0000005d,0x00050094,0x00000047,0x00000484,
|
||||
0x00000482,0x00000483,0x00050041,0x000000f0,0x00000485,0x0000004a,0x00000180,0x0004003d,
|
||||
0x00000047,0x00000486,0x00000485,0x00050081,0x00000047,0x00000487,0x00000486,0x00000484,
|
||||
0x00050041,0x000000f0,0x00000488,0x0000004a,0x00000180,0x0003003e,0x00000488,0x00000487,
|
||||
0x0004003d,0x00000048,0x00000489,0x0000006a,0x0004003d,0x00000048,0x0000048a,0x0000005d,
|
||||
0x00050094,0x00000047,0x0000048b,0x00000489,0x0000048a,0x00050041,0x000000f0,0x0000048c,
|
||||
0x0000004d,0x00000180,0x0004003d,0x00000047,0x0000048d,0x0000048c,0x00050081,0x00000047,
|
||||
0x0000048e,0x0000048d,0x0000048b,0x00050041,0x000000f0,0x0000048f,0x0000004d,0x00000180,
|
||||
0x0003003e,0x0000048f,0x0000048e,0x0004003d,0x00000048,0x00000490,0x00000071,0x0004003d,
|
||||
0x00000048,0x00000491,0x0000005d,0x00050094,0x00000047,0x00000492,0x00000490,0x00000491,
|
||||
0x00050041,0x000000f0,0x00000493,0x0000004e,0x00000180,0x0004003d,0x00000047,0x00000494,
|
||||
0x00000493,0x00050081,0x00000047,0x00000495,0x00000494,0x00000492,0x00050041,0x000000f0,
|
||||
0x00000496,0x0000004e,0x00000180,0x0003003e,0x00000496,0x00000495,0x0004003d,0x00000048,
|
||||
0x00000497,0x00000078,0x0004003d,0x00000048,0x00000498,0x0000005d,0x00050094,0x00000047,
|
||||
0x00000499,0x00000497,0x00000498,0x00050041,0x000000f0,0x0000049a,0x0000004f,0x00000180,
|
||||
0x0004003d,0x00000047,0x0000049b,0x0000049a,0x00050081,0x00000047,0x0000049c,0x0000049b,
|
||||
0x00000499,0x00050041,0x000000f0,0x0000049d,0x0000004f,0x00000180,0x0003003e,0x0000049d,
|
||||
0x0000049c,0x0004003d,0x00000048,0x0000049e,0x0000007f,0x0004003d,0x00000048,0x0000049f,
|
||||
0x0000005d,0x00050094,0x00000047,0x000004a0,0x0000049e,0x0000049f,0x00050041,0x000000f0,
|
||||
0x000004a1,0x00000050,0x00000180,0x0004003d,0x00000047,0x000004a2,0x000004a1,0x00050081,
|
||||
0x00000047,0x000004a3,0x000004a2,0x000004a0,0x00050041,0x000000f0,0x000004a4,0x00000050,
|
||||
0x00000180,0x0003003e,0x000004a4,0x000004a3,0x0004003d,0x00000048,0x000004a5,0x00000086,
|
||||
0x0004003d,0x00000048,0x000004a6,0x0000005d,0x00050094,0x00000047,0x000004a7,0x000004a5,
|
||||
0x000004a6,0x00050041,0x000000f0,0x000004a8,0x00000051,0x00000180,0x0004003d,0x00000047,
|
||||
0x000004a9,0x000004a8,0x00050081,0x00000047,0x000004aa,0x000004a9,0x000004a7,0x00050041,
|
||||
0x000000f0,0x000004ab,0x00000051,0x00000180,0x0003003e,0x000004ab,0x000004aa,0x0004003d,
|
||||
0x00000048,0x000004ac,0x0000008d,0x0004003d,0x00000048,0x000004ad,0x0000005d,0x00050094,
|
||||
0x00000047,0x000004ae,0x000004ac,0x000004ad,0x00050041,0x000000f0,0x000004af,0x00000052,
|
||||
0x00000180,0x0004003d,0x00000047,0x000004b0,0x000004af,0x00050081,0x00000047,0x000004b1,
|
||||
0x000004b0,0x000004ae,0x00050041,0x000000f0,0x000004b2,0x00000052,0x00000180,0x0003003e,
|
||||
0x000004b2,0x000004b1,0x0004003d,0x00000048,0x000004b3,0x00000094,0x0004003d,0x00000048,
|
||||
0x000004b4,0x0000005d,0x00050094,0x00000047,0x000004b5,0x000004b3,0x000004b4,0x00050041,
|
||||
0x000000f0,0x000004b6,0x00000053,0x00000180,0x0004003d,0x00000047,0x000004b7,0x000004b6,
|
||||
0x00050081,0x00000047,0x000004b8,0x000004b7,0x000004b5,0x00050041,0x000000f0,0x000004b9,
|
||||
0x00000053,0x00000180,0x0003003e,0x000004b9,0x000004b8,0x0004003d,0x00000006,0x000004ba,
|
||||
0x00000054,0x00050080,0x00000006,0x000004bb,0x000004ba,0x0000009b,0x0003003e,0x00000054,
|
||||
0x000004bb,0x000200f9,0x00000059,0x000200f8,0x00000059,0x0004003d,0x00000006,0x000004bc,
|
||||
0x00000054,0x0004003d,0x00000006,0x000004bd,0x0000003e,0x000500b1,0x00000033,0x000004be,
|
||||
0x000004bc,0x000004bd,0x000400fa,0x000004be,0x00000056,0x00000058,0x000200f8,0x00000058,
|
||||
0x0004003d,0x00000006,0x000004c3,0x0000002c,0x0004003d,0x00000006,0x000004c4,0x0000001c,
|
||||
0x00050080,0x00000006,0x000004c5,0x000004c4,0x00000055,0x00050084,0x00000006,0x000004c6,
|
||||
0x000004c5,0x0000002e,0x00050087,0x00000006,0x000004c7,0x000004c6,0x00000021,0x00050080,
|
||||
0x00000006,0x000004c8,0x000004c3,0x000004c7,0x0004003d,0x00000006,0x000004c9,0x00000012,
|
||||
0x00050080,0x00000006,0x000004ca,0x000004c8,0x000004c9,0x0004003d,0x00000048,0x000004cb,
|
||||
0x0000004a,0x00060041,0x00000064,0x000004cc,0x000004c2,0x00000055,0x000004ca,0x0003003e,
|
||||
0x000004cc,0x000004cb,0x0004003d,0x00000006,0x000004cd,0x0000002c,0x0004003d,0x00000006,
|
||||
0x000004ce,0x0000001c,0x00050080,0x00000006,0x000004cf,0x000004ce,0x0000009b,0x00050084,
|
||||
0x00000006,0x000004d0,0x000004cf,0x0000002e,0x00050087,0x00000006,0x000004d1,0x000004d0,
|
||||
0x00000021,0x00050080,0x00000006,0x000004d2,0x000004cd,0x000004d1,0x0004003d,0x00000006,
|
||||
0x000004d3,0x00000012,0x00050080,0x00000006,0x000004d4,0x000004d2,0x000004d3,0x0004003d,
|
||||
0x00000048,0x000004d5,0x0000004d,0x00060041,0x00000064,0x000004d6,0x000004c2,0x00000055,
|
||||
0x000004d4,0x0003003e,0x000004d6,0x000004d5,0x0004003d,0x00000006,0x000004d7,0x0000002c,
|
||||
0x0004003d,0x00000006,0x000004d8,0x0000001c,0x00050080,0x00000006,0x000004d9,0x000004d8,
|
||||
0x00000124,0x00050084,0x00000006,0x000004da,0x000004d9,0x0000002e,0x00050087,0x00000006,
|
||||
0x000004db,0x000004da,0x00000021,0x00050080,0x00000006,0x000004dc,0x000004d7,0x000004db,
|
||||
0x0004003d,0x00000006,0x000004dd,0x00000012,0x00050080,0x00000006,0x000004de,0x000004dc,
|
||||
0x000004dd,0x0004003d,0x00000048,0x000004df,0x0000004e,0x00060041,0x00000064,0x000004e0,
|
||||
0x000004c2,0x00000055,0x000004de,0x0003003e,0x000004e0,0x000004df,0x0004003d,0x00000006,
|
||||
0x000004e1,0x0000002c,0x0004003d,0x00000006,0x000004e2,0x0000001c,0x00050080,0x00000006,
|
||||
0x000004e3,0x000004e2,0x00000154,0x00050084,0x00000006,0x000004e4,0x000004e3,0x0000002e,
|
||||
0x00050087,0x00000006,0x000004e5,0x000004e4,0x00000021,0x00050080,0x00000006,0x000004e6,
|
||||
0x000004e1,0x000004e5,0x0004003d,0x00000006,0x000004e7,0x00000012,0x00050080,0x00000006,
|
||||
0x000004e8,0x000004e6,0x000004e7,0x0004003d,0x00000048,0x000004e9,0x0000004f,0x00060041,
|
||||
0x00000064,0x000004ea,0x000004c2,0x00000055,0x000004e8,0x0003003e,0x000004ea,0x000004e9,
|
||||
0x0004003d,0x00000006,0x000004eb,0x0000002c,0x0004003d,0x00000006,0x000004ec,0x0000001c,
|
||||
0x00050080,0x00000006,0x000004ed,0x000004ec,0x00000021,0x00050084,0x00000006,0x000004ee,
|
||||
0x000004ed,0x0000002e,0x00050087,0x00000006,0x000004ef,0x000004ee,0x00000021,0x00050080,
|
||||
0x00000006,0x000004f0,0x000004eb,0x000004ef,0x0004003d,0x00000006,0x000004f1,0x00000012,
|
||||
0x00050080,0x00000006,0x000004f2,0x000004f0,0x000004f1,0x0004003d,0x00000048,0x000004f3,
|
||||
0x00000050,0x00060041,0x00000064,0x000004f4,0x000004c2,0x00000055,0x000004f2,0x0003003e,
|
||||
0x000004f4,0x000004f3,0x0004003d,0x00000006,0x000004f5,0x0000002c,0x0004003d,0x00000006,
|
||||
0x000004f6,0x0000001c,0x00050080,0x00000006,0x000004f8,0x000004f6,0x000004f7,0x00050084,
|
||||
0x00000006,0x000004f9,0x000004f8,0x0000002e,0x00050087,0x00000006,0x000004fa,0x000004f9,
|
||||
0x00000021,0x00050080,0x00000006,0x000004fb,0x000004f5,0x000004fa,0x0004003d,0x00000006,
|
||||
0x000004fc,0x00000012,0x00050080,0x00000006,0x000004fd,0x000004fb,0x000004fc,0x0004003d,
|
||||
0x00000048,0x000004fe,0x00000051,0x00060041,0x00000064,0x000004ff,0x000004c2,0x00000055,
|
||||
0x000004fd,0x0003003e,0x000004ff,0x000004fe,0x0004003d,0x00000006,0x00000500,0x0000002c,
|
||||
0x0004003d,0x00000006,0x00000501,0x0000001c,0x00050080,0x00000006,0x00000503,0x00000501,
|
||||
0x00000502,0x00050084,0x00000006,0x00000504,0x00000503,0x0000002e,0x00050087,0x00000006,
|
||||
0x00000505,0x00000504,0x00000021,0x00050080,0x00000006,0x00000506,0x00000500,0x00000505,
|
||||
0x0004003d,0x00000006,0x00000507,0x00000012,0x00050080,0x00000006,0x00000508,0x00000506,
|
||||
0x00000507,0x0004003d,0x00000048,0x00000509,0x00000052,0x00060041,0x00000064,0x0000050a,
|
||||
0x000004c2,0x00000055,0x00000508,0x0003003e,0x0000050a,0x00000509,0x0004003d,0x00000006,
|
||||
0x0000050b,0x0000002c,0x0004003d,0x00000006,0x0000050c,0x0000001c,0x00050080,0x00000006,
|
||||
0x0000050e,0x0000050c,0x0000050d,0x00050084,0x00000006,0x0000050f,0x0000050e,0x0000002e,
|
||||
0x00050087,0x00000006,0x00000510,0x0000050f,0x00000021,0x00050080,0x00000006,0x00000511,
|
||||
0x0000050b,0x00000510,0x0004003d,0x00000006,0x00000512,0x00000012,0x00050080,0x00000006,
|
||||
0x00000513,0x00000511,0x00000512,0x0004003d,0x00000048,0x00000514,0x00000053,0x00060041,
|
||||
0x00000064,0x00000515,0x000004c2,0x00000055,0x00000513,0x0003003e,0x00000515,0x00000514,
|
||||
0x000200f9,0x0000003d,0x000200f8,0x0000003d,0x000100fd,0x00010038
|
||||
};
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,948 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
extern const unsigned int conv48_spv[7458] = {
|
||||
0x07230203,0x00010000,0x00080001,0x00000551,0x00000000,0x00020011,0x00000001,0x0006000b,
|
||||
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
|
||||
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000c,0x00060010,0x00000004,
|
||||
0x00000011,0x00000001,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005,
|
||||
0x00000004,0x6e69616d,0x00000000,0x00030005,0x00000008,0x00007867,0x00080005,0x0000000c,
|
||||
0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00030005,0x00000012,
|
||||
0x00007967,0x00030005,0x00000017,0x00007a67,0x00040005,0x0000001c,0x5f74756f,0x00000078,
|
||||
0x00040005,0x00000020,0x5f74756f,0x00000079,0x00070005,0x00000024,0x75706e69,0x61625f74,
|
||||
0x5f686374,0x7366666f,0x00007465,0x00040005,0x00000026,0x485f4e49,0x00000000,0x00040005,
|
||||
0x00000028,0x575f4e49,0x00000000,0x00050005,0x0000002a,0x4e414843,0x534c454e,0x00000000,
|
||||
0x00070005,0x0000002c,0x7074756f,0x625f7475,0x68637461,0x66666f5f,0x00746573,0x00030005,
|
||||
0x0000002e,0x0000004d,0x00030005,0x00000030,0x0000004e,0x00040005,0x0000003e,0x74646977,
|
||||
0x00003068,0x00030005,0x0000003f,0x0000004b,0x00040005,0x00000041,0x74646977,0x00003168,
|
||||
0x00070005,0x00000043,0x31637273,0x6165725f,0x6f5f3064,0x65736666,0x00000074,0x00040005,
|
||||
0x0000004a,0x30746f64,0x00000000,0x00040005,0x0000004d,0x31746f64,0x00000000,0x00040005,
|
||||
0x0000004e,0x32746f64,0x00000000,0x00040005,0x0000004f,0x33746f64,0x00000000,0x00040005,
|
||||
0x00000050,0x34746f64,0x00000000,0x00040005,0x00000051,0x35746f64,0x00000000,0x00040005,
|
||||
0x00000052,0x36746f64,0x00000000,0x00040005,0x00000053,0x37746f64,0x00000000,0x00030005,
|
||||
0x00000054,0x00000069,0x00030005,0x0000005a,0x00003061,0x00030005,0x0000005b,0x00003161,
|
||||
0x00030005,0x0000005c,0x00003261,0x00030005,0x0000005d,0x00003361,0x00040005,0x0000005e,
|
||||
0x776f7262,0x00000030,0x00040005,0x00000060,0x75706e49,0x00003374,0x00050006,0x00000060,
|
||||
0x00000000,0x61746164,0x00000000,0x00040005,0x00000062,0x31637273,0x00000000,0x00040005,
|
||||
0x0000006a,0x776f7262,0x00000031,0x00040005,0x00000071,0x776f7262,0x00000032,0x00040005,
|
||||
0x00000078,0x776f7262,0x00000033,0x00040005,0x0000007f,0x776f7262,0x00000034,0x00040005,
|
||||
0x00000086,0x776f7262,0x00000035,0x00040005,0x0000008d,0x776f7262,0x00000036,0x00040005,
|
||||
0x00000094,0x776f7262,0x00000037,0x00040005,0x000000a1,0x5f747364,0x00000078,0x00040005,
|
||||
0x000000a4,0x5f54554f,0x00000057,0x00040005,0x000000a6,0x5f747364,0x00000079,0x00040005,
|
||||
0x000000aa,0x5f67726f,0x00000079,0x00050005,0x000000ac,0x49525453,0x485f4544,0x00000000,
|
||||
0x00040005,0x000000ae,0x5f444150,0x00000048,0x00040005,0x000000b0,0x5f67726f,0x00000078,
|
||||
0x00050005,0x000000b2,0x49525453,0x575f4544,0x00000000,0x00040005,0x000000b4,0x5f444150,
|
||||
0x00000057,0x00040005,0x000000b6,0x30637273,0x0000785f,0x00050005,0x000000bb,0x544c4946,
|
||||
0x575f5245,0x00000000,0x00050005,0x000000bd,0x414c4944,0x4e4f4954,0x0000575f,0x00040005,
|
||||
0x000000c0,0x30637273,0x0000795f,0x00050005,0x000000c5,0x544c4946,0x485f5245,0x00000000,
|
||||
0x00050005,0x000000c9,0x414c4944,0x4e4f4954,0x0000485f,0x00040005,0x000000cc,0x30637273,
|
||||
0x00007a5f,0x00040005,0x000000e0,0x75706e49,0x00003074,0x00050006,0x000000e0,0x00000000,
|
||||
0x61746164,0x00000000,0x00040005,0x000000e2,0x30637273,0x00000000,0x00050005,0x000004bf,
|
||||
0x73616962,0x6c61765f,0x00000000,0x00040005,0x000004c1,0x75706e49,0x00003174,0x00050006,
|
||||
0x000004c1,0x00000000,0x61746164,0x00000000,0x00040005,0x000004c3,0x73616962,0x00000000,
|
||||
0x00040005,0x000004f2,0x7074754f,0x00007475,0x00050006,0x000004f2,0x00000000,0x61746164,
|
||||
0x00000000,0x00040005,0x000004f4,0x3074756f,0x00000000,0x00050005,0x00000548,0x41434f4c,
|
||||
0x5a535f4c,0x0000585f,0x00050005,0x00000549,0x41434f4c,0x5a535f4c,0x0000595f,0x00050005,
|
||||
0x0000054a,0x41434f4c,0x5a535f4c,0x00005a5f,0x00040005,0x0000054b,0x43544142,0x00000048,
|
||||
0x00040005,0x0000054c,0x4c494154,0x00004d5f,0x00040047,0x0000000c,0x0000000b,0x0000001c,
|
||||
0x00040047,0x00000026,0x00000001,0x00000003,0x00040047,0x00000028,0x00000001,0x00000004,
|
||||
0x00040047,0x0000002a,0x00000001,0x0000000c,0x00040047,0x0000002e,0x00000001,0x0000000e,
|
||||
0x00040047,0x00000030,0x00000001,0x00000010,0x00040047,0x0000003f,0x00000001,0x0000000f,
|
||||
0x00040047,0x0000005f,0x00000006,0x00000010,0x00040048,0x00000060,0x00000000,0x00000018,
|
||||
0x00050048,0x00000060,0x00000000,0x00000023,0x00000000,0x00030047,0x00000060,0x00000003,
|
||||
0x00040047,0x00000062,0x00000022,0x00000000,0x00040047,0x00000062,0x00000021,0x00000002,
|
||||
0x00040047,0x000000a4,0x00000001,0x00000005,0x00040047,0x000000ac,0x00000001,0x00000006,
|
||||
0x00040047,0x000000ae,0x00000001,0x00000008,0x00040047,0x000000b2,0x00000001,0x00000007,
|
||||
0x00040047,0x000000b4,0x00000001,0x00000009,0x00040047,0x000000bb,0x00000001,0x0000000b,
|
||||
0x00040047,0x000000bd,0x00000001,0x00000013,0x00040047,0x000000c5,0x00000001,0x0000000a,
|
||||
0x00040047,0x000000c9,0x00000001,0x00000012,0x00040047,0x000000df,0x00000006,0x00000004,
|
||||
0x00040048,0x000000e0,0x00000000,0x00000018,0x00050048,0x000000e0,0x00000000,0x00000023,
|
||||
0x00000000,0x00030047,0x000000e0,0x00000003,0x00040047,0x000000e2,0x00000022,0x00000000,
|
||||
0x00040047,0x000000e2,0x00000021,0x00000000,0x00040047,0x000004c0,0x00000006,0x00000010,
|
||||
0x00040048,0x000004c1,0x00000000,0x00000018,0x00050048,0x000004c1,0x00000000,0x00000023,
|
||||
0x00000000,0x00030047,0x000004c1,0x00000003,0x00040047,0x000004c3,0x00000022,0x00000000,
|
||||
0x00040047,0x000004c3,0x00000021,0x00000001,0x00040047,0x000004f1,0x00000006,0x00000010,
|
||||
0x00040048,0x000004f2,0x00000000,0x00000019,0x00050048,0x000004f2,0x00000000,0x00000023,
|
||||
0x00000000,0x00030047,0x000004f2,0x00000003,0x00040047,0x000004f4,0x00000022,0x00000000,
|
||||
0x00040047,0x000004f4,0x00000021,0x00000003,0x00040047,0x00000548,0x00000001,0x00000000,
|
||||
0x00040047,0x00000549,0x00000001,0x00000001,0x00040047,0x0000054a,0x00000001,0x00000002,
|
||||
0x00040047,0x0000054b,0x00000001,0x0000000d,0x00040047,0x0000054c,0x00000001,0x00000011,
|
||||
0x00040047,0x0000054d,0x00000001,0x00000000,0x00040047,0x0000054e,0x00000001,0x00000001,
|
||||
0x00040047,0x0000054f,0x00000001,0x00000002,0x00040047,0x00000550,0x0000000b,0x00000019,
|
||||
0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,
|
||||
0x00000001,0x00040020,0x00000007,0x00000007,0x00000006,0x00040015,0x00000009,0x00000020,
|
||||
0x00000000,0x00040017,0x0000000a,0x00000009,0x00000003,0x00040020,0x0000000b,0x00000001,
|
||||
0x0000000a,0x0004003b,0x0000000b,0x0000000c,0x00000001,0x0004002b,0x00000009,0x0000000d,
|
||||
0x00000000,0x00040020,0x0000000e,0x00000001,0x00000009,0x0004002b,0x00000009,0x00000013,
|
||||
0x00000001,0x0004002b,0x00000009,0x00000018,0x00000002,0x0004002b,0x00000006,0x0000001d,
|
||||
0x00000008,0x0004002b,0x00000006,0x00000021,0x00000004,0x00040032,0x00000006,0x00000026,
|
||||
0x00000000,0x00040032,0x00000006,0x00000028,0x00000000,0x00040032,0x00000006,0x0000002a,
|
||||
0x00000000,0x00040032,0x00000006,0x0000002e,0x00000000,0x00040032,0x00000006,0x00000030,
|
||||
0x00000000,0x00020014,0x00000033,0x00060034,0x00000006,0x00000039,0x00000087,0x0000002e,
|
||||
0x00000021,0x00040032,0x00000006,0x0000003f,0x00000000,0x00060034,0x00000006,0x00000040,
|
||||
0x00000087,0x0000003f,0x00000021,0x00060034,0x00000006,0x00000042,0x00000087,0x00000030,
|
||||
0x00000021,0x00030016,0x00000047,0x00000020,0x00040017,0x00000048,0x00000047,0x00000004,
|
||||
0x00040020,0x00000049,0x00000007,0x00000048,0x0004002b,0x00000047,0x0000004b,0x00000000,
|
||||
0x0007002c,0x00000048,0x0000004c,0x0000004b,0x0000004b,0x0000004b,0x0000004b,0x0004002b,
|
||||
0x00000006,0x00000055,0x00000000,0x0003001d,0x0000005f,0x00000048,0x0003001e,0x00000060,
|
||||
0x0000005f,0x00040020,0x00000061,0x00000002,0x00000060,0x0004003b,0x00000061,0x00000062,
|
||||
0x00000002,0x00040020,0x00000064,0x00000002,0x00000048,0x0004002b,0x00000006,0x0000009b,
|
||||
0x00000001,0x00040032,0x00000006,0x000000a4,0x00000000,0x00040032,0x00000006,0x000000ac,
|
||||
0x00000000,0x00040032,0x00000006,0x000000ae,0x00000000,0x00040032,0x00000006,0x000000b2,
|
||||
0x00000000,0x00040032,0x00000006,0x000000b4,0x00000000,0x00040032,0x00000006,0x000000bb,
|
||||
0x00000000,0x00040032,0x00000006,0x000000bd,0x00000000,0x00040032,0x00000006,0x000000c5,
|
||||
0x00000000,0x00060034,0x00000006,0x000000c6,0x00000084,0x000000c5,0x000000bb,0x00040032,
|
||||
0x00000006,0x000000c9,0x00000000,0x00060034,0x00000006,0x000000d0,0x00000084,0x000000c5,
|
||||
0x000000bb,0x0003001d,0x000000df,0x00000047,0x0003001e,0x000000e0,0x000000df,0x00040020,
|
||||
0x000000e1,0x00000002,0x000000e0,0x0004003b,0x000000e1,0x000000e2,0x00000002,0x00060034,
|
||||
0x00000006,0x000000e5,0x00000084,0x00000026,0x00000028,0x00040020,0x000000ed,0x00000002,
|
||||
0x00000047,0x00040020,0x000000f0,0x00000007,0x00000047,0x00060034,0x00000006,0x000000fd,
|
||||
0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000105,0x00000084,0x000000c5,
|
||||
0x000000bb,0x00060034,0x00000006,0x00000116,0x00000084,0x00000026,0x00000028,0x0004002b,
|
||||
0x00000006,0x00000124,0x00000002,0x00060034,0x00000006,0x0000012d,0x00000084,0x000000c5,
|
||||
0x000000bb,0x00060034,0x00000006,0x00000135,0x00000084,0x000000c5,0x000000bb,0x00060034,
|
||||
0x00000006,0x00000146,0x00000084,0x00000026,0x00000028,0x0004002b,0x00000006,0x00000154,
|
||||
0x00000003,0x00060034,0x00000006,0x0000015d,0x00000084,0x000000c5,0x000000bb,0x00060034,
|
||||
0x00000006,0x00000165,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000176,
|
||||
0x00000084,0x00000026,0x00000028,0x0004002b,0x00000009,0x00000180,0x00000003,0x00060034,
|
||||
0x00000006,0x000001d1,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x000001d9,
|
||||
0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x000001ea,0x00000084,0x00000026,
|
||||
0x00000028,0x00060034,0x00000006,0x00000200,0x00000084,0x000000c5,0x000000bb,0x00060034,
|
||||
0x00000006,0x00000208,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000219,
|
||||
0x00000084,0x00000026,0x00000028,0x00060034,0x00000006,0x0000022f,0x00000084,0x000000c5,
|
||||
0x000000bb,0x00060034,0x00000006,0x00000237,0x00000084,0x000000c5,0x000000bb,0x00060034,
|
||||
0x00000006,0x00000248,0x00000084,0x00000026,0x00000028,0x00060034,0x00000006,0x0000025e,
|
||||
0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000266,0x00000084,0x000000c5,
|
||||
0x000000bb,0x00060034,0x00000006,0x00000277,0x00000084,0x00000026,0x00000028,0x00060034,
|
||||
0x00000006,0x000002d1,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x000002d9,
|
||||
0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x000002ea,0x00000084,0x00000026,
|
||||
0x00000028,0x00060034,0x00000006,0x00000300,0x00000084,0x000000c5,0x000000bb,0x00060034,
|
||||
0x00000006,0x00000308,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000319,
|
||||
0x00000084,0x00000026,0x00000028,0x00060034,0x00000006,0x0000032f,0x00000084,0x000000c5,
|
||||
0x000000bb,0x00060034,0x00000006,0x00000337,0x00000084,0x000000c5,0x000000bb,0x00060034,
|
||||
0x00000006,0x00000348,0x00000084,0x00000026,0x00000028,0x00060034,0x00000006,0x0000035e,
|
||||
0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000366,0x00000084,0x000000c5,
|
||||
0x000000bb,0x00060034,0x00000006,0x00000377,0x00000084,0x00000026,0x00000028,0x00060034,
|
||||
0x00000006,0x000003d1,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x000003d9,
|
||||
0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x000003ea,0x00000084,0x00000026,
|
||||
0x00000028,0x00060034,0x00000006,0x00000400,0x00000084,0x000000c5,0x000000bb,0x00060034,
|
||||
0x00000006,0x00000408,0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000419,
|
||||
0x00000084,0x00000026,0x00000028,0x00060034,0x00000006,0x0000042f,0x00000084,0x000000c5,
|
||||
0x000000bb,0x00060034,0x00000006,0x00000437,0x00000084,0x000000c5,0x000000bb,0x00060034,
|
||||
0x00000006,0x00000448,0x00000084,0x00000026,0x00000028,0x00060034,0x00000006,0x0000045e,
|
||||
0x00000084,0x000000c5,0x000000bb,0x00060034,0x00000006,0x00000466,0x00000084,0x000000c5,
|
||||
0x000000bb,0x00060034,0x00000006,0x00000477,0x00000084,0x00000026,0x00000028,0x0003001d,
|
||||
0x000004c0,0x00000048,0x0003001e,0x000004c1,0x000004c0,0x00040020,0x000004c2,0x00000002,
|
||||
0x000004c1,0x0004003b,0x000004c2,0x000004c3,0x00000002,0x0003001d,0x000004f1,0x00000048,
|
||||
0x0003001e,0x000004f2,0x000004f1,0x00040020,0x000004f3,0x00000002,0x000004f2,0x0004003b,
|
||||
0x000004f3,0x000004f4,0x00000002,0x0004002b,0x00000006,0x00000529,0x00000005,0x0004002b,
|
||||
0x00000006,0x00000534,0x00000006,0x0004002b,0x00000006,0x0000053f,0x00000007,0x00040032,
|
||||
0x00000006,0x00000548,0x00000000,0x00040032,0x00000006,0x00000549,0x00000000,0x00040032,
|
||||
0x00000006,0x0000054a,0x00000000,0x00040032,0x00000006,0x0000054b,0x00000000,0x00040032,
|
||||
0x00000006,0x0000054c,0x00000000,0x00040032,0x00000009,0x0000054d,0x00000001,0x00040032,
|
||||
0x00000009,0x0000054e,0x00000001,0x00040032,0x00000009,0x0000054f,0x00000001,0x00060033,
|
||||
0x0000000a,0x00000550,0x0000054d,0x0000054e,0x0000054f,0x00050036,0x00000002,0x00000004,
|
||||
0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x00000008,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000012,0x00000007,0x0004003b,0x00000007,0x00000017,0x00000007,
|
||||
0x0004003b,0x00000007,0x0000001c,0x00000007,0x0004003b,0x00000007,0x00000020,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000024,0x00000007,0x0004003b,0x00000007,0x0000002c,0x00000007,
|
||||
0x0004003b,0x00000007,0x0000003e,0x00000007,0x0004003b,0x00000007,0x00000041,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000043,0x00000007,0x0004003b,0x00000049,0x0000004a,0x00000007,
|
||||
0x0004003b,0x00000049,0x0000004d,0x00000007,0x0004003b,0x00000049,0x0000004e,0x00000007,
|
||||
0x0004003b,0x00000049,0x0000004f,0x00000007,0x0004003b,0x00000049,0x00000050,0x00000007,
|
||||
0x0004003b,0x00000049,0x00000051,0x00000007,0x0004003b,0x00000049,0x00000052,0x00000007,
|
||||
0x0004003b,0x00000049,0x00000053,0x00000007,0x0004003b,0x00000007,0x00000054,0x00000007,
|
||||
0x0004003b,0x00000049,0x0000005a,0x00000007,0x0004003b,0x00000049,0x0000005b,0x00000007,
|
||||
0x0004003b,0x00000049,0x0000005c,0x00000007,0x0004003b,0x00000049,0x0000005d,0x00000007,
|
||||
0x0004003b,0x00000049,0x0000005e,0x00000007,0x0004003b,0x00000049,0x0000006a,0x00000007,
|
||||
0x0004003b,0x00000049,0x00000071,0x00000007,0x0004003b,0x00000049,0x00000078,0x00000007,
|
||||
0x0004003b,0x00000049,0x0000007f,0x00000007,0x0004003b,0x00000049,0x00000086,0x00000007,
|
||||
0x0004003b,0x00000049,0x0000008d,0x00000007,0x0004003b,0x00000049,0x00000094,0x00000007,
|
||||
0x0004003b,0x00000007,0x000000a1,0x00000007,0x0004003b,0x00000007,0x000000a6,0x00000007,
|
||||
0x0004003b,0x00000007,0x000000aa,0x00000007,0x0004003b,0x00000007,0x000000b0,0x00000007,
|
||||
0x0004003b,0x00000007,0x000000b6,0x00000007,0x0004003b,0x00000007,0x000000c0,0x00000007,
|
||||
0x0004003b,0x00000007,0x000000cc,0x00000007,0x0004003b,0x00000049,0x000004bf,0x00000007,
|
||||
0x00050041,0x0000000e,0x0000000f,0x0000000c,0x0000000d,0x0004003d,0x00000009,0x00000010,
|
||||
0x0000000f,0x0004007c,0x00000006,0x00000011,0x00000010,0x0003003e,0x00000008,0x00000011,
|
||||
0x00050041,0x0000000e,0x00000014,0x0000000c,0x00000013,0x0004003d,0x00000009,0x00000015,
|
||||
0x00000014,0x0004007c,0x00000006,0x00000016,0x00000015,0x0003003e,0x00000012,0x00000016,
|
||||
0x00050041,0x0000000e,0x00000019,0x0000000c,0x00000018,0x0004003d,0x00000009,0x0000001a,
|
||||
0x00000019,0x0004007c,0x00000006,0x0000001b,0x0000001a,0x0003003e,0x00000017,0x0000001b,
|
||||
0x0004003d,0x00000006,0x0000001e,0x00000008,0x00050084,0x00000006,0x0000001f,0x0000001d,
|
||||
0x0000001e,0x0003003e,0x0000001c,0x0000001f,0x0004003d,0x00000006,0x00000022,0x00000012,
|
||||
0x00050084,0x00000006,0x00000023,0x00000021,0x00000022,0x0003003e,0x00000020,0x00000023,
|
||||
0x0004003d,0x00000006,0x00000025,0x00000017,0x00050084,0x00000006,0x00000027,0x00000025,
|
||||
0x00000026,0x00050084,0x00000006,0x00000029,0x00000027,0x00000028,0x00050084,0x00000006,
|
||||
0x0000002b,0x00000029,0x0000002a,0x0003003e,0x00000024,0x0000002b,0x0004003d,0x00000006,
|
||||
0x0000002d,0x00000017,0x00050084,0x00000006,0x0000002f,0x0000002d,0x0000002e,0x00050084,
|
||||
0x00000006,0x00000031,0x0000002f,0x00000030,0x00050087,0x00000006,0x00000032,0x00000031,
|
||||
0x00000021,0x0003003e,0x0000002c,0x00000032,0x0004003d,0x00000006,0x00000034,0x0000001c,
|
||||
0x000500b1,0x00000033,0x00000035,0x00000034,0x00000030,0x000300f7,0x00000037,0x00000000,
|
||||
0x000400fa,0x00000035,0x00000036,0x00000037,0x000200f8,0x00000036,0x0004003d,0x00000006,
|
||||
0x00000038,0x00000012,0x000500b1,0x00000033,0x0000003a,0x00000038,0x00000039,0x000200f9,
|
||||
0x00000037,0x000200f8,0x00000037,0x000700f5,0x00000033,0x0000003b,0x00000035,0x00000005,
|
||||
0x0000003a,0x00000036,0x000300f7,0x0000003d,0x00000000,0x000400fa,0x0000003b,0x0000003c,
|
||||
0x0000003d,0x000200f8,0x0000003c,0x0003003e,0x0000003e,0x00000040,0x0003003e,0x00000041,
|
||||
0x00000042,0x0004003d,0x00000006,0x00000044,0x0000001c,0x0004003d,0x00000006,0x00000045,
|
||||
0x0000003e,0x00050084,0x00000006,0x00000046,0x00000044,0x00000045,0x0003003e,0x00000043,
|
||||
0x00000046,0x0003003e,0x0000004a,0x0000004c,0x0003003e,0x0000004d,0x0000004c,0x0003003e,
|
||||
0x0000004e,0x0000004c,0x0003003e,0x0000004f,0x0000004c,0x0003003e,0x00000050,0x0000004c,
|
||||
0x0003003e,0x00000051,0x0000004c,0x0003003e,0x00000052,0x0000004c,0x0003003e,0x00000053,
|
||||
0x0000004c,0x0003003e,0x00000054,0x00000055,0x000200f9,0x00000056,0x000200f8,0x00000056,
|
||||
0x000400f6,0x00000058,0x00000059,0x00000000,0x000200f9,0x00000057,0x000200f8,0x00000057,
|
||||
0x0003003e,0x0000005a,0x0000004c,0x0003003e,0x0000005b,0x0000004c,0x0003003e,0x0000005c,
|
||||
0x0000004c,0x0003003e,0x0000005d,0x0000004c,0x0004003d,0x00000006,0x00000063,0x00000043,
|
||||
0x00060041,0x00000064,0x00000065,0x00000062,0x00000055,0x00000063,0x0004003d,0x00000048,
|
||||
0x00000066,0x00000065,0x0003003e,0x0000005e,0x00000066,0x0004003d,0x00000006,0x00000067,
|
||||
0x0000003e,0x0004003d,0x00000006,0x00000068,0x00000043,0x00050080,0x00000006,0x00000069,
|
||||
0x00000068,0x00000067,0x0003003e,0x00000043,0x00000069,0x0004003d,0x00000006,0x0000006b,
|
||||
0x00000043,0x00060041,0x00000064,0x0000006c,0x00000062,0x00000055,0x0000006b,0x0004003d,
|
||||
0x00000048,0x0000006d,0x0000006c,0x0003003e,0x0000006a,0x0000006d,0x0004003d,0x00000006,
|
||||
0x0000006e,0x0000003e,0x0004003d,0x00000006,0x0000006f,0x00000043,0x00050080,0x00000006,
|
||||
0x00000070,0x0000006f,0x0000006e,0x0003003e,0x00000043,0x00000070,0x0004003d,0x00000006,
|
||||
0x00000072,0x00000043,0x00060041,0x00000064,0x00000073,0x00000062,0x00000055,0x00000072,
|
||||
0x0004003d,0x00000048,0x00000074,0x00000073,0x0003003e,0x00000071,0x00000074,0x0004003d,
|
||||
0x00000006,0x00000075,0x0000003e,0x0004003d,0x00000006,0x00000076,0x00000043,0x00050080,
|
||||
0x00000006,0x00000077,0x00000076,0x00000075,0x0003003e,0x00000043,0x00000077,0x0004003d,
|
||||
0x00000006,0x00000079,0x00000043,0x00060041,0x00000064,0x0000007a,0x00000062,0x00000055,
|
||||
0x00000079,0x0004003d,0x00000048,0x0000007b,0x0000007a,0x0003003e,0x00000078,0x0000007b,
|
||||
0x0004003d,0x00000006,0x0000007c,0x0000003e,0x0004003d,0x00000006,0x0000007d,0x00000043,
|
||||
0x00050080,0x00000006,0x0000007e,0x0000007d,0x0000007c,0x0003003e,0x00000043,0x0000007e,
|
||||
0x0004003d,0x00000006,0x00000080,0x00000043,0x00060041,0x00000064,0x00000081,0x00000062,
|
||||
0x00000055,0x00000080,0x0004003d,0x00000048,0x00000082,0x00000081,0x0003003e,0x0000007f,
|
||||
0x00000082,0x0004003d,0x00000006,0x00000083,0x0000003e,0x0004003d,0x00000006,0x00000084,
|
||||
0x00000043,0x00050080,0x00000006,0x00000085,0x00000084,0x00000083,0x0003003e,0x00000043,
|
||||
0x00000085,0x0004003d,0x00000006,0x00000087,0x00000043,0x00060041,0x00000064,0x00000088,
|
||||
0x00000062,0x00000055,0x00000087,0x0004003d,0x00000048,0x00000089,0x00000088,0x0003003e,
|
||||
0x00000086,0x00000089,0x0004003d,0x00000006,0x0000008a,0x0000003e,0x0004003d,0x00000006,
|
||||
0x0000008b,0x00000043,0x00050080,0x00000006,0x0000008c,0x0000008b,0x0000008a,0x0003003e,
|
||||
0x00000043,0x0000008c,0x0004003d,0x00000006,0x0000008e,0x00000043,0x00060041,0x00000064,
|
||||
0x0000008f,0x00000062,0x00000055,0x0000008e,0x0004003d,0x00000048,0x00000090,0x0000008f,
|
||||
0x0003003e,0x0000008d,0x00000090,0x0004003d,0x00000006,0x00000091,0x0000003e,0x0004003d,
|
||||
0x00000006,0x00000092,0x00000043,0x00050080,0x00000006,0x00000093,0x00000092,0x00000091,
|
||||
0x0003003e,0x00000043,0x00000093,0x0004003d,0x00000006,0x00000095,0x00000043,0x00060041,
|
||||
0x00000064,0x00000096,0x00000062,0x00000055,0x00000095,0x0004003d,0x00000048,0x00000097,
|
||||
0x00000096,0x0003003e,0x00000094,0x00000097,0x0004003d,0x00000006,0x00000098,0x0000003e,
|
||||
0x0004003d,0x00000006,0x00000099,0x00000043,0x00050080,0x00000006,0x0000009a,0x00000099,
|
||||
0x00000098,0x0003003e,0x00000043,0x0000009a,0x0004003d,0x00000006,0x0000009c,0x0000003e,
|
||||
0x00050084,0x00000006,0x0000009d,0x0000001d,0x0000009c,0x00050082,0x00000006,0x0000009e,
|
||||
0x0000009b,0x0000009d,0x0004003d,0x00000006,0x0000009f,0x00000043,0x00050080,0x00000006,
|
||||
0x000000a0,0x0000009f,0x0000009e,0x0003003e,0x00000043,0x000000a0,0x0004003d,0x00000006,
|
||||
0x000000a2,0x00000020,0x00050080,0x00000006,0x000000a3,0x000000a2,0x00000055,0x0005008b,
|
||||
0x00000006,0x000000a5,0x000000a3,0x000000a4,0x0003003e,0x000000a1,0x000000a5,0x0004003d,
|
||||
0x00000006,0x000000a7,0x00000020,0x00050080,0x00000006,0x000000a8,0x000000a7,0x00000055,
|
||||
0x00050087,0x00000006,0x000000a9,0x000000a8,0x000000a4,0x0003003e,0x000000a6,0x000000a9,
|
||||
0x0004003d,0x00000006,0x000000ab,0x000000a6,0x00050084,0x00000006,0x000000ad,0x000000ab,
|
||||
0x000000ac,0x00050082,0x00000006,0x000000af,0x000000ad,0x000000ae,0x0003003e,0x000000aa,
|
||||
0x000000af,0x0004003d,0x00000006,0x000000b1,0x000000a1,0x00050084,0x00000006,0x000000b3,
|
||||
0x000000b1,0x000000b2,0x00050082,0x00000006,0x000000b5,0x000000b3,0x000000b4,0x0003003e,
|
||||
0x000000b0,0x000000b5,0x0004003d,0x00000006,0x000000b7,0x000000b0,0x0004003d,0x00000006,
|
||||
0x000000b8,0x00000054,0x00050084,0x00000006,0x000000b9,0x000000b8,0x00000021,0x00050080,
|
||||
0x00000006,0x000000ba,0x000000b9,0x00000055,0x0005008b,0x00000006,0x000000bc,0x000000ba,
|
||||
0x000000bb,0x00050084,0x00000006,0x000000be,0x000000bc,0x000000bd,0x00050080,0x00000006,
|
||||
0x000000bf,0x000000b7,0x000000be,0x0003003e,0x000000b6,0x000000bf,0x0004003d,0x00000006,
|
||||
0x000000c1,0x000000aa,0x0004003d,0x00000006,0x000000c2,0x00000054,0x00050084,0x00000006,
|
||||
0x000000c3,0x000000c2,0x00000021,0x00050080,0x00000006,0x000000c4,0x000000c3,0x00000055,
|
||||
0x0005008b,0x00000006,0x000000c7,0x000000c4,0x000000c6,0x00050087,0x00000006,0x000000c8,
|
||||
0x000000c7,0x000000bb,0x00050084,0x00000006,0x000000ca,0x000000c8,0x000000c9,0x00050080,
|
||||
0x00000006,0x000000cb,0x000000c1,0x000000ca,0x0003003e,0x000000c0,0x000000cb,0x0004003d,
|
||||
0x00000006,0x000000cd,0x00000054,0x00050084,0x00000006,0x000000ce,0x000000cd,0x00000021,
|
||||
0x00050080,0x00000006,0x000000cf,0x000000ce,0x00000055,0x00050087,0x00000006,0x000000d1,
|
||||
0x000000cf,0x000000d0,0x0003003e,0x000000cc,0x000000d1,0x0004003d,0x00000006,0x000000d2,
|
||||
0x000000c0,0x000500af,0x00000033,0x000000d3,0x000000d2,0x00000055,0x0004003d,0x00000006,
|
||||
0x000000d4,0x000000c0,0x000500b1,0x00000033,0x000000d5,0x000000d4,0x00000026,0x000500a7,
|
||||
0x00000033,0x000000d6,0x000000d3,0x000000d5,0x0004003d,0x00000006,0x000000d7,0x000000b6,
|
||||
0x000500af,0x00000033,0x000000d8,0x000000d7,0x00000055,0x000500a7,0x00000033,0x000000d9,
|
||||
0x000000d6,0x000000d8,0x0004003d,0x00000006,0x000000da,0x000000b6,0x000500b1,0x00000033,
|
||||
0x000000db,0x000000da,0x00000028,0x000500a7,0x00000033,0x000000dc,0x000000d9,0x000000db,
|
||||
0x000300f7,0x000000de,0x00000000,0x000400fa,0x000000dc,0x000000dd,0x000000de,0x000200f8,
|
||||
0x000000dd,0x0004003d,0x00000006,0x000000e3,0x00000024,0x0004003d,0x00000006,0x000000e4,
|
||||
0x000000cc,0x00050084,0x00000006,0x000000e6,0x000000e4,0x000000e5,0x00050080,0x00000006,
|
||||
0x000000e7,0x000000e3,0x000000e6,0x0004003d,0x00000006,0x000000e8,0x000000c0,0x00050084,
|
||||
0x00000006,0x000000e9,0x000000e8,0x00000028,0x00050080,0x00000006,0x000000ea,0x000000e7,
|
||||
0x000000e9,0x0004003d,0x00000006,0x000000eb,0x000000b6,0x00050080,0x00000006,0x000000ec,
|
||||
0x000000ea,0x000000eb,0x00060041,0x000000ed,0x000000ee,0x000000e2,0x00000055,0x000000ec,
|
||||
0x0004003d,0x00000047,0x000000ef,0x000000ee,0x00050041,0x000000f0,0x000000f1,0x0000005a,
|
||||
0x0000000d,0x0003003e,0x000000f1,0x000000ef,0x000200f9,0x000000de,0x000200f8,0x000000de,
|
||||
0x0004003d,0x00000006,0x000000f2,0x000000b0,0x0004003d,0x00000006,0x000000f3,0x00000054,
|
||||
0x00050084,0x00000006,0x000000f4,0x000000f3,0x00000021,0x00050080,0x00000006,0x000000f5,
|
||||
0x000000f4,0x0000009b,0x0005008b,0x00000006,0x000000f6,0x000000f5,0x000000bb,0x00050084,
|
||||
0x00000006,0x000000f7,0x000000f6,0x000000bd,0x00050080,0x00000006,0x000000f8,0x000000f2,
|
||||
0x000000f7,0x0003003e,0x000000b6,0x000000f8,0x0004003d,0x00000006,0x000000f9,0x000000aa,
|
||||
0x0004003d,0x00000006,0x000000fa,0x00000054,0x00050084,0x00000006,0x000000fb,0x000000fa,
|
||||
0x00000021,0x00050080,0x00000006,0x000000fc,0x000000fb,0x0000009b,0x0005008b,0x00000006,
|
||||
0x000000fe,0x000000fc,0x000000fd,0x00050087,0x00000006,0x000000ff,0x000000fe,0x000000bb,
|
||||
0x00050084,0x00000006,0x00000100,0x000000ff,0x000000c9,0x00050080,0x00000006,0x00000101,
|
||||
0x000000f9,0x00000100,0x0003003e,0x000000c0,0x00000101,0x0004003d,0x00000006,0x00000102,
|
||||
0x00000054,0x00050084,0x00000006,0x00000103,0x00000102,0x00000021,0x00050080,0x00000006,
|
||||
0x00000104,0x00000103,0x0000009b,0x00050087,0x00000006,0x00000106,0x00000104,0x00000105,
|
||||
0x0003003e,0x000000cc,0x00000106,0x0004003d,0x00000006,0x00000107,0x000000c0,0x000500af,
|
||||
0x00000033,0x00000108,0x00000107,0x00000055,0x0004003d,0x00000006,0x00000109,0x000000c0,
|
||||
0x000500b1,0x00000033,0x0000010a,0x00000109,0x00000026,0x000500a7,0x00000033,0x0000010b,
|
||||
0x00000108,0x0000010a,0x0004003d,0x00000006,0x0000010c,0x000000b6,0x000500af,0x00000033,
|
||||
0x0000010d,0x0000010c,0x00000055,0x000500a7,0x00000033,0x0000010e,0x0000010b,0x0000010d,
|
||||
0x0004003d,0x00000006,0x0000010f,0x000000b6,0x000500b1,0x00000033,0x00000110,0x0000010f,
|
||||
0x00000028,0x000500a7,0x00000033,0x00000111,0x0000010e,0x00000110,0x000300f7,0x00000113,
|
||||
0x00000000,0x000400fa,0x00000111,0x00000112,0x00000113,0x000200f8,0x00000112,0x0004003d,
|
||||
0x00000006,0x00000114,0x00000024,0x0004003d,0x00000006,0x00000115,0x000000cc,0x00050084,
|
||||
0x00000006,0x00000117,0x00000115,0x00000116,0x00050080,0x00000006,0x00000118,0x00000114,
|
||||
0x00000117,0x0004003d,0x00000006,0x00000119,0x000000c0,0x00050084,0x00000006,0x0000011a,
|
||||
0x00000119,0x00000028,0x00050080,0x00000006,0x0000011b,0x00000118,0x0000011a,0x0004003d,
|
||||
0x00000006,0x0000011c,0x000000b6,0x00050080,0x00000006,0x0000011d,0x0000011b,0x0000011c,
|
||||
0x00060041,0x000000ed,0x0000011e,0x000000e2,0x00000055,0x0000011d,0x0004003d,0x00000047,
|
||||
0x0000011f,0x0000011e,0x00050041,0x000000f0,0x00000120,0x0000005a,0x00000013,0x0003003e,
|
||||
0x00000120,0x0000011f,0x000200f9,0x00000113,0x000200f8,0x00000113,0x0004003d,0x00000006,
|
||||
0x00000121,0x000000b0,0x0004003d,0x00000006,0x00000122,0x00000054,0x00050084,0x00000006,
|
||||
0x00000123,0x00000122,0x00000021,0x00050080,0x00000006,0x00000125,0x00000123,0x00000124,
|
||||
0x0005008b,0x00000006,0x00000126,0x00000125,0x000000bb,0x00050084,0x00000006,0x00000127,
|
||||
0x00000126,0x000000bd,0x00050080,0x00000006,0x00000128,0x00000121,0x00000127,0x0003003e,
|
||||
0x000000b6,0x00000128,0x0004003d,0x00000006,0x00000129,0x000000aa,0x0004003d,0x00000006,
|
||||
0x0000012a,0x00000054,0x00050084,0x00000006,0x0000012b,0x0000012a,0x00000021,0x00050080,
|
||||
0x00000006,0x0000012c,0x0000012b,0x00000124,0x0005008b,0x00000006,0x0000012e,0x0000012c,
|
||||
0x0000012d,0x00050087,0x00000006,0x0000012f,0x0000012e,0x000000bb,0x00050084,0x00000006,
|
||||
0x00000130,0x0000012f,0x000000c9,0x00050080,0x00000006,0x00000131,0x00000129,0x00000130,
|
||||
0x0003003e,0x000000c0,0x00000131,0x0004003d,0x00000006,0x00000132,0x00000054,0x00050084,
|
||||
0x00000006,0x00000133,0x00000132,0x00000021,0x00050080,0x00000006,0x00000134,0x00000133,
|
||||
0x00000124,0x00050087,0x00000006,0x00000136,0x00000134,0x00000135,0x0003003e,0x000000cc,
|
||||
0x00000136,0x0004003d,0x00000006,0x00000137,0x000000c0,0x000500af,0x00000033,0x00000138,
|
||||
0x00000137,0x00000055,0x0004003d,0x00000006,0x00000139,0x000000c0,0x000500b1,0x00000033,
|
||||
0x0000013a,0x00000139,0x00000026,0x000500a7,0x00000033,0x0000013b,0x00000138,0x0000013a,
|
||||
0x0004003d,0x00000006,0x0000013c,0x000000b6,0x000500af,0x00000033,0x0000013d,0x0000013c,
|
||||
0x00000055,0x000500a7,0x00000033,0x0000013e,0x0000013b,0x0000013d,0x0004003d,0x00000006,
|
||||
0x0000013f,0x000000b6,0x000500b1,0x00000033,0x00000140,0x0000013f,0x00000028,0x000500a7,
|
||||
0x00000033,0x00000141,0x0000013e,0x00000140,0x000300f7,0x00000143,0x00000000,0x000400fa,
|
||||
0x00000141,0x00000142,0x00000143,0x000200f8,0x00000142,0x0004003d,0x00000006,0x00000144,
|
||||
0x00000024,0x0004003d,0x00000006,0x00000145,0x000000cc,0x00050084,0x00000006,0x00000147,
|
||||
0x00000145,0x00000146,0x00050080,0x00000006,0x00000148,0x00000144,0x00000147,0x0004003d,
|
||||
0x00000006,0x00000149,0x000000c0,0x00050084,0x00000006,0x0000014a,0x00000149,0x00000028,
|
||||
0x00050080,0x00000006,0x0000014b,0x00000148,0x0000014a,0x0004003d,0x00000006,0x0000014c,
|
||||
0x000000b6,0x00050080,0x00000006,0x0000014d,0x0000014b,0x0000014c,0x00060041,0x000000ed,
|
||||
0x0000014e,0x000000e2,0x00000055,0x0000014d,0x0004003d,0x00000047,0x0000014f,0x0000014e,
|
||||
0x00050041,0x000000f0,0x00000150,0x0000005a,0x00000018,0x0003003e,0x00000150,0x0000014f,
|
||||
0x000200f9,0x00000143,0x000200f8,0x00000143,0x0004003d,0x00000006,0x00000151,0x000000b0,
|
||||
0x0004003d,0x00000006,0x00000152,0x00000054,0x00050084,0x00000006,0x00000153,0x00000152,
|
||||
0x00000021,0x00050080,0x00000006,0x00000155,0x00000153,0x00000154,0x0005008b,0x00000006,
|
||||
0x00000156,0x00000155,0x000000bb,0x00050084,0x00000006,0x00000157,0x00000156,0x000000bd,
|
||||
0x00050080,0x00000006,0x00000158,0x00000151,0x00000157,0x0003003e,0x000000b6,0x00000158,
|
||||
0x0004003d,0x00000006,0x00000159,0x000000aa,0x0004003d,0x00000006,0x0000015a,0x00000054,
|
||||
0x00050084,0x00000006,0x0000015b,0x0000015a,0x00000021,0x00050080,0x00000006,0x0000015c,
|
||||
0x0000015b,0x00000154,0x0005008b,0x00000006,0x0000015e,0x0000015c,0x0000015d,0x00050087,
|
||||
0x00000006,0x0000015f,0x0000015e,0x000000bb,0x00050084,0x00000006,0x00000160,0x0000015f,
|
||||
0x000000c9,0x00050080,0x00000006,0x00000161,0x00000159,0x00000160,0x0003003e,0x000000c0,
|
||||
0x00000161,0x0004003d,0x00000006,0x00000162,0x00000054,0x00050084,0x00000006,0x00000163,
|
||||
0x00000162,0x00000021,0x00050080,0x00000006,0x00000164,0x00000163,0x00000154,0x00050087,
|
||||
0x00000006,0x00000166,0x00000164,0x00000165,0x0003003e,0x000000cc,0x00000166,0x0004003d,
|
||||
0x00000006,0x00000167,0x000000c0,0x000500af,0x00000033,0x00000168,0x00000167,0x00000055,
|
||||
0x0004003d,0x00000006,0x00000169,0x000000c0,0x000500b1,0x00000033,0x0000016a,0x00000169,
|
||||
0x00000026,0x000500a7,0x00000033,0x0000016b,0x00000168,0x0000016a,0x0004003d,0x00000006,
|
||||
0x0000016c,0x000000b6,0x000500af,0x00000033,0x0000016d,0x0000016c,0x00000055,0x000500a7,
|
||||
0x00000033,0x0000016e,0x0000016b,0x0000016d,0x0004003d,0x00000006,0x0000016f,0x000000b6,
|
||||
0x000500b1,0x00000033,0x00000170,0x0000016f,0x00000028,0x000500a7,0x00000033,0x00000171,
|
||||
0x0000016e,0x00000170,0x000300f7,0x00000173,0x00000000,0x000400fa,0x00000171,0x00000172,
|
||||
0x00000173,0x000200f8,0x00000172,0x0004003d,0x00000006,0x00000174,0x00000024,0x0004003d,
|
||||
0x00000006,0x00000175,0x000000cc,0x00050084,0x00000006,0x00000177,0x00000175,0x00000176,
|
||||
0x00050080,0x00000006,0x00000178,0x00000174,0x00000177,0x0004003d,0x00000006,0x00000179,
|
||||
0x000000c0,0x00050084,0x00000006,0x0000017a,0x00000179,0x00000028,0x00050080,0x00000006,
|
||||
0x0000017b,0x00000178,0x0000017a,0x0004003d,0x00000006,0x0000017c,0x000000b6,0x00050080,
|
||||
0x00000006,0x0000017d,0x0000017b,0x0000017c,0x00060041,0x000000ed,0x0000017e,0x000000e2,
|
||||
0x00000055,0x0000017d,0x0004003d,0x00000047,0x0000017f,0x0000017e,0x00050041,0x000000f0,
|
||||
0x00000181,0x0000005a,0x00000180,0x0003003e,0x00000181,0x0000017f,0x000200f9,0x00000173,
|
||||
0x000200f8,0x00000173,0x0004003d,0x00000048,0x00000182,0x0000005e,0x0004003d,0x00000048,
|
||||
0x00000183,0x0000005a,0x00050094,0x00000047,0x00000184,0x00000182,0x00000183,0x00050041,
|
||||
0x000000f0,0x00000185,0x0000004a,0x0000000d,0x0004003d,0x00000047,0x00000186,0x00000185,
|
||||
0x00050081,0x00000047,0x00000187,0x00000186,0x00000184,0x00050041,0x000000f0,0x00000188,
|
||||
0x0000004a,0x0000000d,0x0003003e,0x00000188,0x00000187,0x0004003d,0x00000048,0x00000189,
|
||||
0x0000006a,0x0004003d,0x00000048,0x0000018a,0x0000005a,0x00050094,0x00000047,0x0000018b,
|
||||
0x00000189,0x0000018a,0x00050041,0x000000f0,0x0000018c,0x0000004d,0x0000000d,0x0004003d,
|
||||
0x00000047,0x0000018d,0x0000018c,0x00050081,0x00000047,0x0000018e,0x0000018d,0x0000018b,
|
||||
0x00050041,0x000000f0,0x0000018f,0x0000004d,0x0000000d,0x0003003e,0x0000018f,0x0000018e,
|
||||
0x0004003d,0x00000048,0x00000190,0x00000071,0x0004003d,0x00000048,0x00000191,0x0000005a,
|
||||
0x00050094,0x00000047,0x00000192,0x00000190,0x00000191,0x00050041,0x000000f0,0x00000193,
|
||||
0x0000004e,0x0000000d,0x0004003d,0x00000047,0x00000194,0x00000193,0x00050081,0x00000047,
|
||||
0x00000195,0x00000194,0x00000192,0x00050041,0x000000f0,0x00000196,0x0000004e,0x0000000d,
|
||||
0x0003003e,0x00000196,0x00000195,0x0004003d,0x00000048,0x00000197,0x00000078,0x0004003d,
|
||||
0x00000048,0x00000198,0x0000005a,0x00050094,0x00000047,0x00000199,0x00000197,0x00000198,
|
||||
0x00050041,0x000000f0,0x0000019a,0x0000004f,0x0000000d,0x0004003d,0x00000047,0x0000019b,
|
||||
0x0000019a,0x00050081,0x00000047,0x0000019c,0x0000019b,0x00000199,0x00050041,0x000000f0,
|
||||
0x0000019d,0x0000004f,0x0000000d,0x0003003e,0x0000019d,0x0000019c,0x0004003d,0x00000048,
|
||||
0x0000019e,0x0000007f,0x0004003d,0x00000048,0x0000019f,0x0000005a,0x00050094,0x00000047,
|
||||
0x000001a0,0x0000019e,0x0000019f,0x00050041,0x000000f0,0x000001a1,0x00000050,0x0000000d,
|
||||
0x0004003d,0x00000047,0x000001a2,0x000001a1,0x00050081,0x00000047,0x000001a3,0x000001a2,
|
||||
0x000001a0,0x00050041,0x000000f0,0x000001a4,0x00000050,0x0000000d,0x0003003e,0x000001a4,
|
||||
0x000001a3,0x0004003d,0x00000048,0x000001a5,0x00000086,0x0004003d,0x00000048,0x000001a6,
|
||||
0x0000005a,0x00050094,0x00000047,0x000001a7,0x000001a5,0x000001a6,0x00050041,0x000000f0,
|
||||
0x000001a8,0x00000051,0x0000000d,0x0004003d,0x00000047,0x000001a9,0x000001a8,0x00050081,
|
||||
0x00000047,0x000001aa,0x000001a9,0x000001a7,0x00050041,0x000000f0,0x000001ab,0x00000051,
|
||||
0x0000000d,0x0003003e,0x000001ab,0x000001aa,0x0004003d,0x00000048,0x000001ac,0x0000008d,
|
||||
0x0004003d,0x00000048,0x000001ad,0x0000005a,0x00050094,0x00000047,0x000001ae,0x000001ac,
|
||||
0x000001ad,0x00050041,0x000000f0,0x000001af,0x00000052,0x0000000d,0x0004003d,0x00000047,
|
||||
0x000001b0,0x000001af,0x00050081,0x00000047,0x000001b1,0x000001b0,0x000001ae,0x00050041,
|
||||
0x000000f0,0x000001b2,0x00000052,0x0000000d,0x0003003e,0x000001b2,0x000001b1,0x0004003d,
|
||||
0x00000048,0x000001b3,0x00000094,0x0004003d,0x00000048,0x000001b4,0x0000005a,0x00050094,
|
||||
0x00000047,0x000001b5,0x000001b3,0x000001b4,0x00050041,0x000000f0,0x000001b6,0x00000053,
|
||||
0x0000000d,0x0004003d,0x00000047,0x000001b7,0x000001b6,0x00050081,0x00000047,0x000001b8,
|
||||
0x000001b7,0x000001b5,0x00050041,0x000000f0,0x000001b9,0x00000053,0x0000000d,0x0003003e,
|
||||
0x000001b9,0x000001b8,0x0004003d,0x00000006,0x000001ba,0x00000020,0x00050080,0x00000006,
|
||||
0x000001bb,0x000001ba,0x0000009b,0x0005008b,0x00000006,0x000001bc,0x000001bb,0x000000a4,
|
||||
0x0003003e,0x000000a1,0x000001bc,0x0004003d,0x00000006,0x000001bd,0x00000020,0x00050080,
|
||||
0x00000006,0x000001be,0x000001bd,0x0000009b,0x00050087,0x00000006,0x000001bf,0x000001be,
|
||||
0x000000a4,0x0003003e,0x000000a6,0x000001bf,0x0004003d,0x00000006,0x000001c0,0x000000a6,
|
||||
0x00050084,0x00000006,0x000001c1,0x000001c0,0x000000ac,0x00050082,0x00000006,0x000001c2,
|
||||
0x000001c1,0x000000ae,0x0003003e,0x000000aa,0x000001c2,0x0004003d,0x00000006,0x000001c3,
|
||||
0x000000a1,0x00050084,0x00000006,0x000001c4,0x000001c3,0x000000b2,0x00050082,0x00000006,
|
||||
0x000001c5,0x000001c4,0x000000b4,0x0003003e,0x000000b0,0x000001c5,0x0004003d,0x00000006,
|
||||
0x000001c6,0x000000b0,0x0004003d,0x00000006,0x000001c7,0x00000054,0x00050084,0x00000006,
|
||||
0x000001c8,0x000001c7,0x00000021,0x00050080,0x00000006,0x000001c9,0x000001c8,0x00000055,
|
||||
0x0005008b,0x00000006,0x000001ca,0x000001c9,0x000000bb,0x00050084,0x00000006,0x000001cb,
|
||||
0x000001ca,0x000000bd,0x00050080,0x00000006,0x000001cc,0x000001c6,0x000001cb,0x0003003e,
|
||||
0x000000b6,0x000001cc,0x0004003d,0x00000006,0x000001cd,0x000000aa,0x0004003d,0x00000006,
|
||||
0x000001ce,0x00000054,0x00050084,0x00000006,0x000001cf,0x000001ce,0x00000021,0x00050080,
|
||||
0x00000006,0x000001d0,0x000001cf,0x00000055,0x0005008b,0x00000006,0x000001d2,0x000001d0,
|
||||
0x000001d1,0x00050087,0x00000006,0x000001d3,0x000001d2,0x000000bb,0x00050084,0x00000006,
|
||||
0x000001d4,0x000001d3,0x000000c9,0x00050080,0x00000006,0x000001d5,0x000001cd,0x000001d4,
|
||||
0x0003003e,0x000000c0,0x000001d5,0x0004003d,0x00000006,0x000001d6,0x00000054,0x00050084,
|
||||
0x00000006,0x000001d7,0x000001d6,0x00000021,0x00050080,0x00000006,0x000001d8,0x000001d7,
|
||||
0x00000055,0x00050087,0x00000006,0x000001da,0x000001d8,0x000001d9,0x0003003e,0x000000cc,
|
||||
0x000001da,0x0004003d,0x00000006,0x000001db,0x000000c0,0x000500af,0x00000033,0x000001dc,
|
||||
0x000001db,0x00000055,0x0004003d,0x00000006,0x000001dd,0x000000c0,0x000500b1,0x00000033,
|
||||
0x000001de,0x000001dd,0x00000026,0x000500a7,0x00000033,0x000001df,0x000001dc,0x000001de,
|
||||
0x0004003d,0x00000006,0x000001e0,0x000000b6,0x000500af,0x00000033,0x000001e1,0x000001e0,
|
||||
0x00000055,0x000500a7,0x00000033,0x000001e2,0x000001df,0x000001e1,0x0004003d,0x00000006,
|
||||
0x000001e3,0x000000b6,0x000500b1,0x00000033,0x000001e4,0x000001e3,0x00000028,0x000500a7,
|
||||
0x00000033,0x000001e5,0x000001e2,0x000001e4,0x000300f7,0x000001e7,0x00000000,0x000400fa,
|
||||
0x000001e5,0x000001e6,0x000001e7,0x000200f8,0x000001e6,0x0004003d,0x00000006,0x000001e8,
|
||||
0x00000024,0x0004003d,0x00000006,0x000001e9,0x000000cc,0x00050084,0x00000006,0x000001eb,
|
||||
0x000001e9,0x000001ea,0x00050080,0x00000006,0x000001ec,0x000001e8,0x000001eb,0x0004003d,
|
||||
0x00000006,0x000001ed,0x000000c0,0x00050084,0x00000006,0x000001ee,0x000001ed,0x00000028,
|
||||
0x00050080,0x00000006,0x000001ef,0x000001ec,0x000001ee,0x0004003d,0x00000006,0x000001f0,
|
||||
0x000000b6,0x00050080,0x00000006,0x000001f1,0x000001ef,0x000001f0,0x00060041,0x000000ed,
|
||||
0x000001f2,0x000000e2,0x00000055,0x000001f1,0x0004003d,0x00000047,0x000001f3,0x000001f2,
|
||||
0x00050041,0x000000f0,0x000001f4,0x0000005b,0x0000000d,0x0003003e,0x000001f4,0x000001f3,
|
||||
0x000200f9,0x000001e7,0x000200f8,0x000001e7,0x0004003d,0x00000006,0x000001f5,0x000000b0,
|
||||
0x0004003d,0x00000006,0x000001f6,0x00000054,0x00050084,0x00000006,0x000001f7,0x000001f6,
|
||||
0x00000021,0x00050080,0x00000006,0x000001f8,0x000001f7,0x0000009b,0x0005008b,0x00000006,
|
||||
0x000001f9,0x000001f8,0x000000bb,0x00050084,0x00000006,0x000001fa,0x000001f9,0x000000bd,
|
||||
0x00050080,0x00000006,0x000001fb,0x000001f5,0x000001fa,0x0003003e,0x000000b6,0x000001fb,
|
||||
0x0004003d,0x00000006,0x000001fc,0x000000aa,0x0004003d,0x00000006,0x000001fd,0x00000054,
|
||||
0x00050084,0x00000006,0x000001fe,0x000001fd,0x00000021,0x00050080,0x00000006,0x000001ff,
|
||||
0x000001fe,0x0000009b,0x0005008b,0x00000006,0x00000201,0x000001ff,0x00000200,0x00050087,
|
||||
0x00000006,0x00000202,0x00000201,0x000000bb,0x00050084,0x00000006,0x00000203,0x00000202,
|
||||
0x000000c9,0x00050080,0x00000006,0x00000204,0x000001fc,0x00000203,0x0003003e,0x000000c0,
|
||||
0x00000204,0x0004003d,0x00000006,0x00000205,0x00000054,0x00050084,0x00000006,0x00000206,
|
||||
0x00000205,0x00000021,0x00050080,0x00000006,0x00000207,0x00000206,0x0000009b,0x00050087,
|
||||
0x00000006,0x00000209,0x00000207,0x00000208,0x0003003e,0x000000cc,0x00000209,0x0004003d,
|
||||
0x00000006,0x0000020a,0x000000c0,0x000500af,0x00000033,0x0000020b,0x0000020a,0x00000055,
|
||||
0x0004003d,0x00000006,0x0000020c,0x000000c0,0x000500b1,0x00000033,0x0000020d,0x0000020c,
|
||||
0x00000026,0x000500a7,0x00000033,0x0000020e,0x0000020b,0x0000020d,0x0004003d,0x00000006,
|
||||
0x0000020f,0x000000b6,0x000500af,0x00000033,0x00000210,0x0000020f,0x00000055,0x000500a7,
|
||||
0x00000033,0x00000211,0x0000020e,0x00000210,0x0004003d,0x00000006,0x00000212,0x000000b6,
|
||||
0x000500b1,0x00000033,0x00000213,0x00000212,0x00000028,0x000500a7,0x00000033,0x00000214,
|
||||
0x00000211,0x00000213,0x000300f7,0x00000216,0x00000000,0x000400fa,0x00000214,0x00000215,
|
||||
0x00000216,0x000200f8,0x00000215,0x0004003d,0x00000006,0x00000217,0x00000024,0x0004003d,
|
||||
0x00000006,0x00000218,0x000000cc,0x00050084,0x00000006,0x0000021a,0x00000218,0x00000219,
|
||||
0x00050080,0x00000006,0x0000021b,0x00000217,0x0000021a,0x0004003d,0x00000006,0x0000021c,
|
||||
0x000000c0,0x00050084,0x00000006,0x0000021d,0x0000021c,0x00000028,0x00050080,0x00000006,
|
||||
0x0000021e,0x0000021b,0x0000021d,0x0004003d,0x00000006,0x0000021f,0x000000b6,0x00050080,
|
||||
0x00000006,0x00000220,0x0000021e,0x0000021f,0x00060041,0x000000ed,0x00000221,0x000000e2,
|
||||
0x00000055,0x00000220,0x0004003d,0x00000047,0x00000222,0x00000221,0x00050041,0x000000f0,
|
||||
0x00000223,0x0000005b,0x00000013,0x0003003e,0x00000223,0x00000222,0x000200f9,0x00000216,
|
||||
0x000200f8,0x00000216,0x0004003d,0x00000006,0x00000224,0x000000b0,0x0004003d,0x00000006,
|
||||
0x00000225,0x00000054,0x00050084,0x00000006,0x00000226,0x00000225,0x00000021,0x00050080,
|
||||
0x00000006,0x00000227,0x00000226,0x00000124,0x0005008b,0x00000006,0x00000228,0x00000227,
|
||||
0x000000bb,0x00050084,0x00000006,0x00000229,0x00000228,0x000000bd,0x00050080,0x00000006,
|
||||
0x0000022a,0x00000224,0x00000229,0x0003003e,0x000000b6,0x0000022a,0x0004003d,0x00000006,
|
||||
0x0000022b,0x000000aa,0x0004003d,0x00000006,0x0000022c,0x00000054,0x00050084,0x00000006,
|
||||
0x0000022d,0x0000022c,0x00000021,0x00050080,0x00000006,0x0000022e,0x0000022d,0x00000124,
|
||||
0x0005008b,0x00000006,0x00000230,0x0000022e,0x0000022f,0x00050087,0x00000006,0x00000231,
|
||||
0x00000230,0x000000bb,0x00050084,0x00000006,0x00000232,0x00000231,0x000000c9,0x00050080,
|
||||
0x00000006,0x00000233,0x0000022b,0x00000232,0x0003003e,0x000000c0,0x00000233,0x0004003d,
|
||||
0x00000006,0x00000234,0x00000054,0x00050084,0x00000006,0x00000235,0x00000234,0x00000021,
|
||||
0x00050080,0x00000006,0x00000236,0x00000235,0x00000124,0x00050087,0x00000006,0x00000238,
|
||||
0x00000236,0x00000237,0x0003003e,0x000000cc,0x00000238,0x0004003d,0x00000006,0x00000239,
|
||||
0x000000c0,0x000500af,0x00000033,0x0000023a,0x00000239,0x00000055,0x0004003d,0x00000006,
|
||||
0x0000023b,0x000000c0,0x000500b1,0x00000033,0x0000023c,0x0000023b,0x00000026,0x000500a7,
|
||||
0x00000033,0x0000023d,0x0000023a,0x0000023c,0x0004003d,0x00000006,0x0000023e,0x000000b6,
|
||||
0x000500af,0x00000033,0x0000023f,0x0000023e,0x00000055,0x000500a7,0x00000033,0x00000240,
|
||||
0x0000023d,0x0000023f,0x0004003d,0x00000006,0x00000241,0x000000b6,0x000500b1,0x00000033,
|
||||
0x00000242,0x00000241,0x00000028,0x000500a7,0x00000033,0x00000243,0x00000240,0x00000242,
|
||||
0x000300f7,0x00000245,0x00000000,0x000400fa,0x00000243,0x00000244,0x00000245,0x000200f8,
|
||||
0x00000244,0x0004003d,0x00000006,0x00000246,0x00000024,0x0004003d,0x00000006,0x00000247,
|
||||
0x000000cc,0x00050084,0x00000006,0x00000249,0x00000247,0x00000248,0x00050080,0x00000006,
|
||||
0x0000024a,0x00000246,0x00000249,0x0004003d,0x00000006,0x0000024b,0x000000c0,0x00050084,
|
||||
0x00000006,0x0000024c,0x0000024b,0x00000028,0x00050080,0x00000006,0x0000024d,0x0000024a,
|
||||
0x0000024c,0x0004003d,0x00000006,0x0000024e,0x000000b6,0x00050080,0x00000006,0x0000024f,
|
||||
0x0000024d,0x0000024e,0x00060041,0x000000ed,0x00000250,0x000000e2,0x00000055,0x0000024f,
|
||||
0x0004003d,0x00000047,0x00000251,0x00000250,0x00050041,0x000000f0,0x00000252,0x0000005b,
|
||||
0x00000018,0x0003003e,0x00000252,0x00000251,0x000200f9,0x00000245,0x000200f8,0x00000245,
|
||||
0x0004003d,0x00000006,0x00000253,0x000000b0,0x0004003d,0x00000006,0x00000254,0x00000054,
|
||||
0x00050084,0x00000006,0x00000255,0x00000254,0x00000021,0x00050080,0x00000006,0x00000256,
|
||||
0x00000255,0x00000154,0x0005008b,0x00000006,0x00000257,0x00000256,0x000000bb,0x00050084,
|
||||
0x00000006,0x00000258,0x00000257,0x000000bd,0x00050080,0x00000006,0x00000259,0x00000253,
|
||||
0x00000258,0x0003003e,0x000000b6,0x00000259,0x0004003d,0x00000006,0x0000025a,0x000000aa,
|
||||
0x0004003d,0x00000006,0x0000025b,0x00000054,0x00050084,0x00000006,0x0000025c,0x0000025b,
|
||||
0x00000021,0x00050080,0x00000006,0x0000025d,0x0000025c,0x00000154,0x0005008b,0x00000006,
|
||||
0x0000025f,0x0000025d,0x0000025e,0x00050087,0x00000006,0x00000260,0x0000025f,0x000000bb,
|
||||
0x00050084,0x00000006,0x00000261,0x00000260,0x000000c9,0x00050080,0x00000006,0x00000262,
|
||||
0x0000025a,0x00000261,0x0003003e,0x000000c0,0x00000262,0x0004003d,0x00000006,0x00000263,
|
||||
0x00000054,0x00050084,0x00000006,0x00000264,0x00000263,0x00000021,0x00050080,0x00000006,
|
||||
0x00000265,0x00000264,0x00000154,0x00050087,0x00000006,0x00000267,0x00000265,0x00000266,
|
||||
0x0003003e,0x000000cc,0x00000267,0x0004003d,0x00000006,0x00000268,0x000000c0,0x000500af,
|
||||
0x00000033,0x00000269,0x00000268,0x00000055,0x0004003d,0x00000006,0x0000026a,0x000000c0,
|
||||
0x000500b1,0x00000033,0x0000026b,0x0000026a,0x00000026,0x000500a7,0x00000033,0x0000026c,
|
||||
0x00000269,0x0000026b,0x0004003d,0x00000006,0x0000026d,0x000000b6,0x000500af,0x00000033,
|
||||
0x0000026e,0x0000026d,0x00000055,0x000500a7,0x00000033,0x0000026f,0x0000026c,0x0000026e,
|
||||
0x0004003d,0x00000006,0x00000270,0x000000b6,0x000500b1,0x00000033,0x00000271,0x00000270,
|
||||
0x00000028,0x000500a7,0x00000033,0x00000272,0x0000026f,0x00000271,0x000300f7,0x00000274,
|
||||
0x00000000,0x000400fa,0x00000272,0x00000273,0x00000274,0x000200f8,0x00000273,0x0004003d,
|
||||
0x00000006,0x00000275,0x00000024,0x0004003d,0x00000006,0x00000276,0x000000cc,0x00050084,
|
||||
0x00000006,0x00000278,0x00000276,0x00000277,0x00050080,0x00000006,0x00000279,0x00000275,
|
||||
0x00000278,0x0004003d,0x00000006,0x0000027a,0x000000c0,0x00050084,0x00000006,0x0000027b,
|
||||
0x0000027a,0x00000028,0x00050080,0x00000006,0x0000027c,0x00000279,0x0000027b,0x0004003d,
|
||||
0x00000006,0x0000027d,0x000000b6,0x00050080,0x00000006,0x0000027e,0x0000027c,0x0000027d,
|
||||
0x00060041,0x000000ed,0x0000027f,0x000000e2,0x00000055,0x0000027e,0x0004003d,0x00000047,
|
||||
0x00000280,0x0000027f,0x00050041,0x000000f0,0x00000281,0x0000005b,0x00000180,0x0003003e,
|
||||
0x00000281,0x00000280,0x000200f9,0x00000274,0x000200f8,0x00000274,0x0004003d,0x00000048,
|
||||
0x00000282,0x0000005e,0x0004003d,0x00000048,0x00000283,0x0000005b,0x00050094,0x00000047,
|
||||
0x00000284,0x00000282,0x00000283,0x00050041,0x000000f0,0x00000285,0x0000004a,0x00000013,
|
||||
0x0004003d,0x00000047,0x00000286,0x00000285,0x00050081,0x00000047,0x00000287,0x00000286,
|
||||
0x00000284,0x00050041,0x000000f0,0x00000288,0x0000004a,0x00000013,0x0003003e,0x00000288,
|
||||
0x00000287,0x0004003d,0x00000048,0x00000289,0x0000006a,0x0004003d,0x00000048,0x0000028a,
|
||||
0x0000005b,0x00050094,0x00000047,0x0000028b,0x00000289,0x0000028a,0x00050041,0x000000f0,
|
||||
0x0000028c,0x0000004d,0x00000013,0x0004003d,0x00000047,0x0000028d,0x0000028c,0x00050081,
|
||||
0x00000047,0x0000028e,0x0000028d,0x0000028b,0x00050041,0x000000f0,0x0000028f,0x0000004d,
|
||||
0x00000013,0x0003003e,0x0000028f,0x0000028e,0x0004003d,0x00000048,0x00000290,0x00000071,
|
||||
0x0004003d,0x00000048,0x00000291,0x0000005b,0x00050094,0x00000047,0x00000292,0x00000290,
|
||||
0x00000291,0x00050041,0x000000f0,0x00000293,0x0000004e,0x00000013,0x0004003d,0x00000047,
|
||||
0x00000294,0x00000293,0x00050081,0x00000047,0x00000295,0x00000294,0x00000292,0x00050041,
|
||||
0x000000f0,0x00000296,0x0000004e,0x00000013,0x0003003e,0x00000296,0x00000295,0x0004003d,
|
||||
0x00000048,0x00000297,0x00000078,0x0004003d,0x00000048,0x00000298,0x0000005b,0x00050094,
|
||||
0x00000047,0x00000299,0x00000297,0x00000298,0x00050041,0x000000f0,0x0000029a,0x0000004f,
|
||||
0x00000013,0x0004003d,0x00000047,0x0000029b,0x0000029a,0x00050081,0x00000047,0x0000029c,
|
||||
0x0000029b,0x00000299,0x00050041,0x000000f0,0x0000029d,0x0000004f,0x00000013,0x0003003e,
|
||||
0x0000029d,0x0000029c,0x0004003d,0x00000048,0x0000029e,0x0000007f,0x0004003d,0x00000048,
|
||||
0x0000029f,0x0000005b,0x00050094,0x00000047,0x000002a0,0x0000029e,0x0000029f,0x00050041,
|
||||
0x000000f0,0x000002a1,0x00000050,0x00000013,0x0004003d,0x00000047,0x000002a2,0x000002a1,
|
||||
0x00050081,0x00000047,0x000002a3,0x000002a2,0x000002a0,0x00050041,0x000000f0,0x000002a4,
|
||||
0x00000050,0x00000013,0x0003003e,0x000002a4,0x000002a3,0x0004003d,0x00000048,0x000002a5,
|
||||
0x00000086,0x0004003d,0x00000048,0x000002a6,0x0000005b,0x00050094,0x00000047,0x000002a7,
|
||||
0x000002a5,0x000002a6,0x00050041,0x000000f0,0x000002a8,0x00000051,0x00000013,0x0004003d,
|
||||
0x00000047,0x000002a9,0x000002a8,0x00050081,0x00000047,0x000002aa,0x000002a9,0x000002a7,
|
||||
0x00050041,0x000000f0,0x000002ab,0x00000051,0x00000013,0x0003003e,0x000002ab,0x000002aa,
|
||||
0x0004003d,0x00000048,0x000002ac,0x0000008d,0x0004003d,0x00000048,0x000002ad,0x0000005b,
|
||||
0x00050094,0x00000047,0x000002ae,0x000002ac,0x000002ad,0x00050041,0x000000f0,0x000002af,
|
||||
0x00000052,0x00000013,0x0004003d,0x00000047,0x000002b0,0x000002af,0x00050081,0x00000047,
|
||||
0x000002b1,0x000002b0,0x000002ae,0x00050041,0x000000f0,0x000002b2,0x00000052,0x00000013,
|
||||
0x0003003e,0x000002b2,0x000002b1,0x0004003d,0x00000048,0x000002b3,0x00000094,0x0004003d,
|
||||
0x00000048,0x000002b4,0x0000005b,0x00050094,0x00000047,0x000002b5,0x000002b3,0x000002b4,
|
||||
0x00050041,0x000000f0,0x000002b6,0x00000053,0x00000013,0x0004003d,0x00000047,0x000002b7,
|
||||
0x000002b6,0x00050081,0x00000047,0x000002b8,0x000002b7,0x000002b5,0x00050041,0x000000f0,
|
||||
0x000002b9,0x00000053,0x00000013,0x0003003e,0x000002b9,0x000002b8,0x0004003d,0x00000006,
|
||||
0x000002ba,0x00000020,0x00050080,0x00000006,0x000002bb,0x000002ba,0x00000124,0x0005008b,
|
||||
0x00000006,0x000002bc,0x000002bb,0x000000a4,0x0003003e,0x000000a1,0x000002bc,0x0004003d,
|
||||
0x00000006,0x000002bd,0x00000020,0x00050080,0x00000006,0x000002be,0x000002bd,0x00000124,
|
||||
0x00050087,0x00000006,0x000002bf,0x000002be,0x000000a4,0x0003003e,0x000000a6,0x000002bf,
|
||||
0x0004003d,0x00000006,0x000002c0,0x000000a6,0x00050084,0x00000006,0x000002c1,0x000002c0,
|
||||
0x000000ac,0x00050082,0x00000006,0x000002c2,0x000002c1,0x000000ae,0x0003003e,0x000000aa,
|
||||
0x000002c2,0x0004003d,0x00000006,0x000002c3,0x000000a1,0x00050084,0x00000006,0x000002c4,
|
||||
0x000002c3,0x000000b2,0x00050082,0x00000006,0x000002c5,0x000002c4,0x000000b4,0x0003003e,
|
||||
0x000000b0,0x000002c5,0x0004003d,0x00000006,0x000002c6,0x000000b0,0x0004003d,0x00000006,
|
||||
0x000002c7,0x00000054,0x00050084,0x00000006,0x000002c8,0x000002c7,0x00000021,0x00050080,
|
||||
0x00000006,0x000002c9,0x000002c8,0x00000055,0x0005008b,0x00000006,0x000002ca,0x000002c9,
|
||||
0x000000bb,0x00050084,0x00000006,0x000002cb,0x000002ca,0x000000bd,0x00050080,0x00000006,
|
||||
0x000002cc,0x000002c6,0x000002cb,0x0003003e,0x000000b6,0x000002cc,0x0004003d,0x00000006,
|
||||
0x000002cd,0x000000aa,0x0004003d,0x00000006,0x000002ce,0x00000054,0x00050084,0x00000006,
|
||||
0x000002cf,0x000002ce,0x00000021,0x00050080,0x00000006,0x000002d0,0x000002cf,0x00000055,
|
||||
0x0005008b,0x00000006,0x000002d2,0x000002d0,0x000002d1,0x00050087,0x00000006,0x000002d3,
|
||||
0x000002d2,0x000000bb,0x00050084,0x00000006,0x000002d4,0x000002d3,0x000000c9,0x00050080,
|
||||
0x00000006,0x000002d5,0x000002cd,0x000002d4,0x0003003e,0x000000c0,0x000002d5,0x0004003d,
|
||||
0x00000006,0x000002d6,0x00000054,0x00050084,0x00000006,0x000002d7,0x000002d6,0x00000021,
|
||||
0x00050080,0x00000006,0x000002d8,0x000002d7,0x00000055,0x00050087,0x00000006,0x000002da,
|
||||
0x000002d8,0x000002d9,0x0003003e,0x000000cc,0x000002da,0x0004003d,0x00000006,0x000002db,
|
||||
0x000000c0,0x000500af,0x00000033,0x000002dc,0x000002db,0x00000055,0x0004003d,0x00000006,
|
||||
0x000002dd,0x000000c0,0x000500b1,0x00000033,0x000002de,0x000002dd,0x00000026,0x000500a7,
|
||||
0x00000033,0x000002df,0x000002dc,0x000002de,0x0004003d,0x00000006,0x000002e0,0x000000b6,
|
||||
0x000500af,0x00000033,0x000002e1,0x000002e0,0x00000055,0x000500a7,0x00000033,0x000002e2,
|
||||
0x000002df,0x000002e1,0x0004003d,0x00000006,0x000002e3,0x000000b6,0x000500b1,0x00000033,
|
||||
0x000002e4,0x000002e3,0x00000028,0x000500a7,0x00000033,0x000002e5,0x000002e2,0x000002e4,
|
||||
0x000300f7,0x000002e7,0x00000000,0x000400fa,0x000002e5,0x000002e6,0x000002e7,0x000200f8,
|
||||
0x000002e6,0x0004003d,0x00000006,0x000002e8,0x00000024,0x0004003d,0x00000006,0x000002e9,
|
||||
0x000000cc,0x00050084,0x00000006,0x000002eb,0x000002e9,0x000002ea,0x00050080,0x00000006,
|
||||
0x000002ec,0x000002e8,0x000002eb,0x0004003d,0x00000006,0x000002ed,0x000000c0,0x00050084,
|
||||
0x00000006,0x000002ee,0x000002ed,0x00000028,0x00050080,0x00000006,0x000002ef,0x000002ec,
|
||||
0x000002ee,0x0004003d,0x00000006,0x000002f0,0x000000b6,0x00050080,0x00000006,0x000002f1,
|
||||
0x000002ef,0x000002f0,0x00060041,0x000000ed,0x000002f2,0x000000e2,0x00000055,0x000002f1,
|
||||
0x0004003d,0x00000047,0x000002f3,0x000002f2,0x00050041,0x000000f0,0x000002f4,0x0000005c,
|
||||
0x0000000d,0x0003003e,0x000002f4,0x000002f3,0x000200f9,0x000002e7,0x000200f8,0x000002e7,
|
||||
0x0004003d,0x00000006,0x000002f5,0x000000b0,0x0004003d,0x00000006,0x000002f6,0x00000054,
|
||||
0x00050084,0x00000006,0x000002f7,0x000002f6,0x00000021,0x00050080,0x00000006,0x000002f8,
|
||||
0x000002f7,0x0000009b,0x0005008b,0x00000006,0x000002f9,0x000002f8,0x000000bb,0x00050084,
|
||||
0x00000006,0x000002fa,0x000002f9,0x000000bd,0x00050080,0x00000006,0x000002fb,0x000002f5,
|
||||
0x000002fa,0x0003003e,0x000000b6,0x000002fb,0x0004003d,0x00000006,0x000002fc,0x000000aa,
|
||||
0x0004003d,0x00000006,0x000002fd,0x00000054,0x00050084,0x00000006,0x000002fe,0x000002fd,
|
||||
0x00000021,0x00050080,0x00000006,0x000002ff,0x000002fe,0x0000009b,0x0005008b,0x00000006,
|
||||
0x00000301,0x000002ff,0x00000300,0x00050087,0x00000006,0x00000302,0x00000301,0x000000bb,
|
||||
0x00050084,0x00000006,0x00000303,0x00000302,0x000000c9,0x00050080,0x00000006,0x00000304,
|
||||
0x000002fc,0x00000303,0x0003003e,0x000000c0,0x00000304,0x0004003d,0x00000006,0x00000305,
|
||||
0x00000054,0x00050084,0x00000006,0x00000306,0x00000305,0x00000021,0x00050080,0x00000006,
|
||||
0x00000307,0x00000306,0x0000009b,0x00050087,0x00000006,0x00000309,0x00000307,0x00000308,
|
||||
0x0003003e,0x000000cc,0x00000309,0x0004003d,0x00000006,0x0000030a,0x000000c0,0x000500af,
|
||||
0x00000033,0x0000030b,0x0000030a,0x00000055,0x0004003d,0x00000006,0x0000030c,0x000000c0,
|
||||
0x000500b1,0x00000033,0x0000030d,0x0000030c,0x00000026,0x000500a7,0x00000033,0x0000030e,
|
||||
0x0000030b,0x0000030d,0x0004003d,0x00000006,0x0000030f,0x000000b6,0x000500af,0x00000033,
|
||||
0x00000310,0x0000030f,0x00000055,0x000500a7,0x00000033,0x00000311,0x0000030e,0x00000310,
|
||||
0x0004003d,0x00000006,0x00000312,0x000000b6,0x000500b1,0x00000033,0x00000313,0x00000312,
|
||||
0x00000028,0x000500a7,0x00000033,0x00000314,0x00000311,0x00000313,0x000300f7,0x00000316,
|
||||
0x00000000,0x000400fa,0x00000314,0x00000315,0x00000316,0x000200f8,0x00000315,0x0004003d,
|
||||
0x00000006,0x00000317,0x00000024,0x0004003d,0x00000006,0x00000318,0x000000cc,0x00050084,
|
||||
0x00000006,0x0000031a,0x00000318,0x00000319,0x00050080,0x00000006,0x0000031b,0x00000317,
|
||||
0x0000031a,0x0004003d,0x00000006,0x0000031c,0x000000c0,0x00050084,0x00000006,0x0000031d,
|
||||
0x0000031c,0x00000028,0x00050080,0x00000006,0x0000031e,0x0000031b,0x0000031d,0x0004003d,
|
||||
0x00000006,0x0000031f,0x000000b6,0x00050080,0x00000006,0x00000320,0x0000031e,0x0000031f,
|
||||
0x00060041,0x000000ed,0x00000321,0x000000e2,0x00000055,0x00000320,0x0004003d,0x00000047,
|
||||
0x00000322,0x00000321,0x00050041,0x000000f0,0x00000323,0x0000005c,0x00000013,0x0003003e,
|
||||
0x00000323,0x00000322,0x000200f9,0x00000316,0x000200f8,0x00000316,0x0004003d,0x00000006,
|
||||
0x00000324,0x000000b0,0x0004003d,0x00000006,0x00000325,0x00000054,0x00050084,0x00000006,
|
||||
0x00000326,0x00000325,0x00000021,0x00050080,0x00000006,0x00000327,0x00000326,0x00000124,
|
||||
0x0005008b,0x00000006,0x00000328,0x00000327,0x000000bb,0x00050084,0x00000006,0x00000329,
|
||||
0x00000328,0x000000bd,0x00050080,0x00000006,0x0000032a,0x00000324,0x00000329,0x0003003e,
|
||||
0x000000b6,0x0000032a,0x0004003d,0x00000006,0x0000032b,0x000000aa,0x0004003d,0x00000006,
|
||||
0x0000032c,0x00000054,0x00050084,0x00000006,0x0000032d,0x0000032c,0x00000021,0x00050080,
|
||||
0x00000006,0x0000032e,0x0000032d,0x00000124,0x0005008b,0x00000006,0x00000330,0x0000032e,
|
||||
0x0000032f,0x00050087,0x00000006,0x00000331,0x00000330,0x000000bb,0x00050084,0x00000006,
|
||||
0x00000332,0x00000331,0x000000c9,0x00050080,0x00000006,0x00000333,0x0000032b,0x00000332,
|
||||
0x0003003e,0x000000c0,0x00000333,0x0004003d,0x00000006,0x00000334,0x00000054,0x00050084,
|
||||
0x00000006,0x00000335,0x00000334,0x00000021,0x00050080,0x00000006,0x00000336,0x00000335,
|
||||
0x00000124,0x00050087,0x00000006,0x00000338,0x00000336,0x00000337,0x0003003e,0x000000cc,
|
||||
0x00000338,0x0004003d,0x00000006,0x00000339,0x000000c0,0x000500af,0x00000033,0x0000033a,
|
||||
0x00000339,0x00000055,0x0004003d,0x00000006,0x0000033b,0x000000c0,0x000500b1,0x00000033,
|
||||
0x0000033c,0x0000033b,0x00000026,0x000500a7,0x00000033,0x0000033d,0x0000033a,0x0000033c,
|
||||
0x0004003d,0x00000006,0x0000033e,0x000000b6,0x000500af,0x00000033,0x0000033f,0x0000033e,
|
||||
0x00000055,0x000500a7,0x00000033,0x00000340,0x0000033d,0x0000033f,0x0004003d,0x00000006,
|
||||
0x00000341,0x000000b6,0x000500b1,0x00000033,0x00000342,0x00000341,0x00000028,0x000500a7,
|
||||
0x00000033,0x00000343,0x00000340,0x00000342,0x000300f7,0x00000345,0x00000000,0x000400fa,
|
||||
0x00000343,0x00000344,0x00000345,0x000200f8,0x00000344,0x0004003d,0x00000006,0x00000346,
|
||||
0x00000024,0x0004003d,0x00000006,0x00000347,0x000000cc,0x00050084,0x00000006,0x00000349,
|
||||
0x00000347,0x00000348,0x00050080,0x00000006,0x0000034a,0x00000346,0x00000349,0x0004003d,
|
||||
0x00000006,0x0000034b,0x000000c0,0x00050084,0x00000006,0x0000034c,0x0000034b,0x00000028,
|
||||
0x00050080,0x00000006,0x0000034d,0x0000034a,0x0000034c,0x0004003d,0x00000006,0x0000034e,
|
||||
0x000000b6,0x00050080,0x00000006,0x0000034f,0x0000034d,0x0000034e,0x00060041,0x000000ed,
|
||||
0x00000350,0x000000e2,0x00000055,0x0000034f,0x0004003d,0x00000047,0x00000351,0x00000350,
|
||||
0x00050041,0x000000f0,0x00000352,0x0000005c,0x00000018,0x0003003e,0x00000352,0x00000351,
|
||||
0x000200f9,0x00000345,0x000200f8,0x00000345,0x0004003d,0x00000006,0x00000353,0x000000b0,
|
||||
0x0004003d,0x00000006,0x00000354,0x00000054,0x00050084,0x00000006,0x00000355,0x00000354,
|
||||
0x00000021,0x00050080,0x00000006,0x00000356,0x00000355,0x00000154,0x0005008b,0x00000006,
|
||||
0x00000357,0x00000356,0x000000bb,0x00050084,0x00000006,0x00000358,0x00000357,0x000000bd,
|
||||
0x00050080,0x00000006,0x00000359,0x00000353,0x00000358,0x0003003e,0x000000b6,0x00000359,
|
||||
0x0004003d,0x00000006,0x0000035a,0x000000aa,0x0004003d,0x00000006,0x0000035b,0x00000054,
|
||||
0x00050084,0x00000006,0x0000035c,0x0000035b,0x00000021,0x00050080,0x00000006,0x0000035d,
|
||||
0x0000035c,0x00000154,0x0005008b,0x00000006,0x0000035f,0x0000035d,0x0000035e,0x00050087,
|
||||
0x00000006,0x00000360,0x0000035f,0x000000bb,0x00050084,0x00000006,0x00000361,0x00000360,
|
||||
0x000000c9,0x00050080,0x00000006,0x00000362,0x0000035a,0x00000361,0x0003003e,0x000000c0,
|
||||
0x00000362,0x0004003d,0x00000006,0x00000363,0x00000054,0x00050084,0x00000006,0x00000364,
|
||||
0x00000363,0x00000021,0x00050080,0x00000006,0x00000365,0x00000364,0x00000154,0x00050087,
|
||||
0x00000006,0x00000367,0x00000365,0x00000366,0x0003003e,0x000000cc,0x00000367,0x0004003d,
|
||||
0x00000006,0x00000368,0x000000c0,0x000500af,0x00000033,0x00000369,0x00000368,0x00000055,
|
||||
0x0004003d,0x00000006,0x0000036a,0x000000c0,0x000500b1,0x00000033,0x0000036b,0x0000036a,
|
||||
0x00000026,0x000500a7,0x00000033,0x0000036c,0x00000369,0x0000036b,0x0004003d,0x00000006,
|
||||
0x0000036d,0x000000b6,0x000500af,0x00000033,0x0000036e,0x0000036d,0x00000055,0x000500a7,
|
||||
0x00000033,0x0000036f,0x0000036c,0x0000036e,0x0004003d,0x00000006,0x00000370,0x000000b6,
|
||||
0x000500b1,0x00000033,0x00000371,0x00000370,0x00000028,0x000500a7,0x00000033,0x00000372,
|
||||
0x0000036f,0x00000371,0x000300f7,0x00000374,0x00000000,0x000400fa,0x00000372,0x00000373,
|
||||
0x00000374,0x000200f8,0x00000373,0x0004003d,0x00000006,0x00000375,0x00000024,0x0004003d,
|
||||
0x00000006,0x00000376,0x000000cc,0x00050084,0x00000006,0x00000378,0x00000376,0x00000377,
|
||||
0x00050080,0x00000006,0x00000379,0x00000375,0x00000378,0x0004003d,0x00000006,0x0000037a,
|
||||
0x000000c0,0x00050084,0x00000006,0x0000037b,0x0000037a,0x00000028,0x00050080,0x00000006,
|
||||
0x0000037c,0x00000379,0x0000037b,0x0004003d,0x00000006,0x0000037d,0x000000b6,0x00050080,
|
||||
0x00000006,0x0000037e,0x0000037c,0x0000037d,0x00060041,0x000000ed,0x0000037f,0x000000e2,
|
||||
0x00000055,0x0000037e,0x0004003d,0x00000047,0x00000380,0x0000037f,0x00050041,0x000000f0,
|
||||
0x00000381,0x0000005c,0x00000180,0x0003003e,0x00000381,0x00000380,0x000200f9,0x00000374,
|
||||
0x000200f8,0x00000374,0x0004003d,0x00000048,0x00000382,0x0000005e,0x0004003d,0x00000048,
|
||||
0x00000383,0x0000005c,0x00050094,0x00000047,0x00000384,0x00000382,0x00000383,0x00050041,
|
||||
0x000000f0,0x00000385,0x0000004a,0x00000018,0x0004003d,0x00000047,0x00000386,0x00000385,
|
||||
0x00050081,0x00000047,0x00000387,0x00000386,0x00000384,0x00050041,0x000000f0,0x00000388,
|
||||
0x0000004a,0x00000018,0x0003003e,0x00000388,0x00000387,0x0004003d,0x00000048,0x00000389,
|
||||
0x0000006a,0x0004003d,0x00000048,0x0000038a,0x0000005c,0x00050094,0x00000047,0x0000038b,
|
||||
0x00000389,0x0000038a,0x00050041,0x000000f0,0x0000038c,0x0000004d,0x00000018,0x0004003d,
|
||||
0x00000047,0x0000038d,0x0000038c,0x00050081,0x00000047,0x0000038e,0x0000038d,0x0000038b,
|
||||
0x00050041,0x000000f0,0x0000038f,0x0000004d,0x00000018,0x0003003e,0x0000038f,0x0000038e,
|
||||
0x0004003d,0x00000048,0x00000390,0x00000071,0x0004003d,0x00000048,0x00000391,0x0000005c,
|
||||
0x00050094,0x00000047,0x00000392,0x00000390,0x00000391,0x00050041,0x000000f0,0x00000393,
|
||||
0x0000004e,0x00000018,0x0004003d,0x00000047,0x00000394,0x00000393,0x00050081,0x00000047,
|
||||
0x00000395,0x00000394,0x00000392,0x00050041,0x000000f0,0x00000396,0x0000004e,0x00000018,
|
||||
0x0003003e,0x00000396,0x00000395,0x0004003d,0x00000048,0x00000397,0x00000078,0x0004003d,
|
||||
0x00000048,0x00000398,0x0000005c,0x00050094,0x00000047,0x00000399,0x00000397,0x00000398,
|
||||
0x00050041,0x000000f0,0x0000039a,0x0000004f,0x00000018,0x0004003d,0x00000047,0x0000039b,
|
||||
0x0000039a,0x00050081,0x00000047,0x0000039c,0x0000039b,0x00000399,0x00050041,0x000000f0,
|
||||
0x0000039d,0x0000004f,0x00000018,0x0003003e,0x0000039d,0x0000039c,0x0004003d,0x00000048,
|
||||
0x0000039e,0x0000007f,0x0004003d,0x00000048,0x0000039f,0x0000005c,0x00050094,0x00000047,
|
||||
0x000003a0,0x0000039e,0x0000039f,0x00050041,0x000000f0,0x000003a1,0x00000050,0x00000018,
|
||||
0x0004003d,0x00000047,0x000003a2,0x000003a1,0x00050081,0x00000047,0x000003a3,0x000003a2,
|
||||
0x000003a0,0x00050041,0x000000f0,0x000003a4,0x00000050,0x00000018,0x0003003e,0x000003a4,
|
||||
0x000003a3,0x0004003d,0x00000048,0x000003a5,0x00000086,0x0004003d,0x00000048,0x000003a6,
|
||||
0x0000005c,0x00050094,0x00000047,0x000003a7,0x000003a5,0x000003a6,0x00050041,0x000000f0,
|
||||
0x000003a8,0x00000051,0x00000018,0x0004003d,0x00000047,0x000003a9,0x000003a8,0x00050081,
|
||||
0x00000047,0x000003aa,0x000003a9,0x000003a7,0x00050041,0x000000f0,0x000003ab,0x00000051,
|
||||
0x00000018,0x0003003e,0x000003ab,0x000003aa,0x0004003d,0x00000048,0x000003ac,0x0000008d,
|
||||
0x0004003d,0x00000048,0x000003ad,0x0000005c,0x00050094,0x00000047,0x000003ae,0x000003ac,
|
||||
0x000003ad,0x00050041,0x000000f0,0x000003af,0x00000052,0x00000018,0x0004003d,0x00000047,
|
||||
0x000003b0,0x000003af,0x00050081,0x00000047,0x000003b1,0x000003b0,0x000003ae,0x00050041,
|
||||
0x000000f0,0x000003b2,0x00000052,0x00000018,0x0003003e,0x000003b2,0x000003b1,0x0004003d,
|
||||
0x00000048,0x000003b3,0x00000094,0x0004003d,0x00000048,0x000003b4,0x0000005c,0x00050094,
|
||||
0x00000047,0x000003b5,0x000003b3,0x000003b4,0x00050041,0x000000f0,0x000003b6,0x00000053,
|
||||
0x00000018,0x0004003d,0x00000047,0x000003b7,0x000003b6,0x00050081,0x00000047,0x000003b8,
|
||||
0x000003b7,0x000003b5,0x00050041,0x000000f0,0x000003b9,0x00000053,0x00000018,0x0003003e,
|
||||
0x000003b9,0x000003b8,0x0004003d,0x00000006,0x000003ba,0x00000020,0x00050080,0x00000006,
|
||||
0x000003bb,0x000003ba,0x00000154,0x0005008b,0x00000006,0x000003bc,0x000003bb,0x000000a4,
|
||||
0x0003003e,0x000000a1,0x000003bc,0x0004003d,0x00000006,0x000003bd,0x00000020,0x00050080,
|
||||
0x00000006,0x000003be,0x000003bd,0x00000154,0x00050087,0x00000006,0x000003bf,0x000003be,
|
||||
0x000000a4,0x0003003e,0x000000a6,0x000003bf,0x0004003d,0x00000006,0x000003c0,0x000000a6,
|
||||
0x00050084,0x00000006,0x000003c1,0x000003c0,0x000000ac,0x00050082,0x00000006,0x000003c2,
|
||||
0x000003c1,0x000000ae,0x0003003e,0x000000aa,0x000003c2,0x0004003d,0x00000006,0x000003c3,
|
||||
0x000000a1,0x00050084,0x00000006,0x000003c4,0x000003c3,0x000000b2,0x00050082,0x00000006,
|
||||
0x000003c5,0x000003c4,0x000000b4,0x0003003e,0x000000b0,0x000003c5,0x0004003d,0x00000006,
|
||||
0x000003c6,0x000000b0,0x0004003d,0x00000006,0x000003c7,0x00000054,0x00050084,0x00000006,
|
||||
0x000003c8,0x000003c7,0x00000021,0x00050080,0x00000006,0x000003c9,0x000003c8,0x00000055,
|
||||
0x0005008b,0x00000006,0x000003ca,0x000003c9,0x000000bb,0x00050084,0x00000006,0x000003cb,
|
||||
0x000003ca,0x000000bd,0x00050080,0x00000006,0x000003cc,0x000003c6,0x000003cb,0x0003003e,
|
||||
0x000000b6,0x000003cc,0x0004003d,0x00000006,0x000003cd,0x000000aa,0x0004003d,0x00000006,
|
||||
0x000003ce,0x00000054,0x00050084,0x00000006,0x000003cf,0x000003ce,0x00000021,0x00050080,
|
||||
0x00000006,0x000003d0,0x000003cf,0x00000055,0x0005008b,0x00000006,0x000003d2,0x000003d0,
|
||||
0x000003d1,0x00050087,0x00000006,0x000003d3,0x000003d2,0x000000bb,0x00050084,0x00000006,
|
||||
0x000003d4,0x000003d3,0x000000c9,0x00050080,0x00000006,0x000003d5,0x000003cd,0x000003d4,
|
||||
0x0003003e,0x000000c0,0x000003d5,0x0004003d,0x00000006,0x000003d6,0x00000054,0x00050084,
|
||||
0x00000006,0x000003d7,0x000003d6,0x00000021,0x00050080,0x00000006,0x000003d8,0x000003d7,
|
||||
0x00000055,0x00050087,0x00000006,0x000003da,0x000003d8,0x000003d9,0x0003003e,0x000000cc,
|
||||
0x000003da,0x0004003d,0x00000006,0x000003db,0x000000c0,0x000500af,0x00000033,0x000003dc,
|
||||
0x000003db,0x00000055,0x0004003d,0x00000006,0x000003dd,0x000000c0,0x000500b1,0x00000033,
|
||||
0x000003de,0x000003dd,0x00000026,0x000500a7,0x00000033,0x000003df,0x000003dc,0x000003de,
|
||||
0x0004003d,0x00000006,0x000003e0,0x000000b6,0x000500af,0x00000033,0x000003e1,0x000003e0,
|
||||
0x00000055,0x000500a7,0x00000033,0x000003e2,0x000003df,0x000003e1,0x0004003d,0x00000006,
|
||||
0x000003e3,0x000000b6,0x000500b1,0x00000033,0x000003e4,0x000003e3,0x00000028,0x000500a7,
|
||||
0x00000033,0x000003e5,0x000003e2,0x000003e4,0x000300f7,0x000003e7,0x00000000,0x000400fa,
|
||||
0x000003e5,0x000003e6,0x000003e7,0x000200f8,0x000003e6,0x0004003d,0x00000006,0x000003e8,
|
||||
0x00000024,0x0004003d,0x00000006,0x000003e9,0x000000cc,0x00050084,0x00000006,0x000003eb,
|
||||
0x000003e9,0x000003ea,0x00050080,0x00000006,0x000003ec,0x000003e8,0x000003eb,0x0004003d,
|
||||
0x00000006,0x000003ed,0x000000c0,0x00050084,0x00000006,0x000003ee,0x000003ed,0x00000028,
|
||||
0x00050080,0x00000006,0x000003ef,0x000003ec,0x000003ee,0x0004003d,0x00000006,0x000003f0,
|
||||
0x000000b6,0x00050080,0x00000006,0x000003f1,0x000003ef,0x000003f0,0x00060041,0x000000ed,
|
||||
0x000003f2,0x000000e2,0x00000055,0x000003f1,0x0004003d,0x00000047,0x000003f3,0x000003f2,
|
||||
0x00050041,0x000000f0,0x000003f4,0x0000005d,0x0000000d,0x0003003e,0x000003f4,0x000003f3,
|
||||
0x000200f9,0x000003e7,0x000200f8,0x000003e7,0x0004003d,0x00000006,0x000003f5,0x000000b0,
|
||||
0x0004003d,0x00000006,0x000003f6,0x00000054,0x00050084,0x00000006,0x000003f7,0x000003f6,
|
||||
0x00000021,0x00050080,0x00000006,0x000003f8,0x000003f7,0x0000009b,0x0005008b,0x00000006,
|
||||
0x000003f9,0x000003f8,0x000000bb,0x00050084,0x00000006,0x000003fa,0x000003f9,0x000000bd,
|
||||
0x00050080,0x00000006,0x000003fb,0x000003f5,0x000003fa,0x0003003e,0x000000b6,0x000003fb,
|
||||
0x0004003d,0x00000006,0x000003fc,0x000000aa,0x0004003d,0x00000006,0x000003fd,0x00000054,
|
||||
0x00050084,0x00000006,0x000003fe,0x000003fd,0x00000021,0x00050080,0x00000006,0x000003ff,
|
||||
0x000003fe,0x0000009b,0x0005008b,0x00000006,0x00000401,0x000003ff,0x00000400,0x00050087,
|
||||
0x00000006,0x00000402,0x00000401,0x000000bb,0x00050084,0x00000006,0x00000403,0x00000402,
|
||||
0x000000c9,0x00050080,0x00000006,0x00000404,0x000003fc,0x00000403,0x0003003e,0x000000c0,
|
||||
0x00000404,0x0004003d,0x00000006,0x00000405,0x00000054,0x00050084,0x00000006,0x00000406,
|
||||
0x00000405,0x00000021,0x00050080,0x00000006,0x00000407,0x00000406,0x0000009b,0x00050087,
|
||||
0x00000006,0x00000409,0x00000407,0x00000408,0x0003003e,0x000000cc,0x00000409,0x0004003d,
|
||||
0x00000006,0x0000040a,0x000000c0,0x000500af,0x00000033,0x0000040b,0x0000040a,0x00000055,
|
||||
0x0004003d,0x00000006,0x0000040c,0x000000c0,0x000500b1,0x00000033,0x0000040d,0x0000040c,
|
||||
0x00000026,0x000500a7,0x00000033,0x0000040e,0x0000040b,0x0000040d,0x0004003d,0x00000006,
|
||||
0x0000040f,0x000000b6,0x000500af,0x00000033,0x00000410,0x0000040f,0x00000055,0x000500a7,
|
||||
0x00000033,0x00000411,0x0000040e,0x00000410,0x0004003d,0x00000006,0x00000412,0x000000b6,
|
||||
0x000500b1,0x00000033,0x00000413,0x00000412,0x00000028,0x000500a7,0x00000033,0x00000414,
|
||||
0x00000411,0x00000413,0x000300f7,0x00000416,0x00000000,0x000400fa,0x00000414,0x00000415,
|
||||
0x00000416,0x000200f8,0x00000415,0x0004003d,0x00000006,0x00000417,0x00000024,0x0004003d,
|
||||
0x00000006,0x00000418,0x000000cc,0x00050084,0x00000006,0x0000041a,0x00000418,0x00000419,
|
||||
0x00050080,0x00000006,0x0000041b,0x00000417,0x0000041a,0x0004003d,0x00000006,0x0000041c,
|
||||
0x000000c0,0x00050084,0x00000006,0x0000041d,0x0000041c,0x00000028,0x00050080,0x00000006,
|
||||
0x0000041e,0x0000041b,0x0000041d,0x0004003d,0x00000006,0x0000041f,0x000000b6,0x00050080,
|
||||
0x00000006,0x00000420,0x0000041e,0x0000041f,0x00060041,0x000000ed,0x00000421,0x000000e2,
|
||||
0x00000055,0x00000420,0x0004003d,0x00000047,0x00000422,0x00000421,0x00050041,0x000000f0,
|
||||
0x00000423,0x0000005d,0x00000013,0x0003003e,0x00000423,0x00000422,0x000200f9,0x00000416,
|
||||
0x000200f8,0x00000416,0x0004003d,0x00000006,0x00000424,0x000000b0,0x0004003d,0x00000006,
|
||||
0x00000425,0x00000054,0x00050084,0x00000006,0x00000426,0x00000425,0x00000021,0x00050080,
|
||||
0x00000006,0x00000427,0x00000426,0x00000124,0x0005008b,0x00000006,0x00000428,0x00000427,
|
||||
0x000000bb,0x00050084,0x00000006,0x00000429,0x00000428,0x000000bd,0x00050080,0x00000006,
|
||||
0x0000042a,0x00000424,0x00000429,0x0003003e,0x000000b6,0x0000042a,0x0004003d,0x00000006,
|
||||
0x0000042b,0x000000aa,0x0004003d,0x00000006,0x0000042c,0x00000054,0x00050084,0x00000006,
|
||||
0x0000042d,0x0000042c,0x00000021,0x00050080,0x00000006,0x0000042e,0x0000042d,0x00000124,
|
||||
0x0005008b,0x00000006,0x00000430,0x0000042e,0x0000042f,0x00050087,0x00000006,0x00000431,
|
||||
0x00000430,0x000000bb,0x00050084,0x00000006,0x00000432,0x00000431,0x000000c9,0x00050080,
|
||||
0x00000006,0x00000433,0x0000042b,0x00000432,0x0003003e,0x000000c0,0x00000433,0x0004003d,
|
||||
0x00000006,0x00000434,0x00000054,0x00050084,0x00000006,0x00000435,0x00000434,0x00000021,
|
||||
0x00050080,0x00000006,0x00000436,0x00000435,0x00000124,0x00050087,0x00000006,0x00000438,
|
||||
0x00000436,0x00000437,0x0003003e,0x000000cc,0x00000438,0x0004003d,0x00000006,0x00000439,
|
||||
0x000000c0,0x000500af,0x00000033,0x0000043a,0x00000439,0x00000055,0x0004003d,0x00000006,
|
||||
0x0000043b,0x000000c0,0x000500b1,0x00000033,0x0000043c,0x0000043b,0x00000026,0x000500a7,
|
||||
0x00000033,0x0000043d,0x0000043a,0x0000043c,0x0004003d,0x00000006,0x0000043e,0x000000b6,
|
||||
0x000500af,0x00000033,0x0000043f,0x0000043e,0x00000055,0x000500a7,0x00000033,0x00000440,
|
||||
0x0000043d,0x0000043f,0x0004003d,0x00000006,0x00000441,0x000000b6,0x000500b1,0x00000033,
|
||||
0x00000442,0x00000441,0x00000028,0x000500a7,0x00000033,0x00000443,0x00000440,0x00000442,
|
||||
0x000300f7,0x00000445,0x00000000,0x000400fa,0x00000443,0x00000444,0x00000445,0x000200f8,
|
||||
0x00000444,0x0004003d,0x00000006,0x00000446,0x00000024,0x0004003d,0x00000006,0x00000447,
|
||||
0x000000cc,0x00050084,0x00000006,0x00000449,0x00000447,0x00000448,0x00050080,0x00000006,
|
||||
0x0000044a,0x00000446,0x00000449,0x0004003d,0x00000006,0x0000044b,0x000000c0,0x00050084,
|
||||
0x00000006,0x0000044c,0x0000044b,0x00000028,0x00050080,0x00000006,0x0000044d,0x0000044a,
|
||||
0x0000044c,0x0004003d,0x00000006,0x0000044e,0x000000b6,0x00050080,0x00000006,0x0000044f,
|
||||
0x0000044d,0x0000044e,0x00060041,0x000000ed,0x00000450,0x000000e2,0x00000055,0x0000044f,
|
||||
0x0004003d,0x00000047,0x00000451,0x00000450,0x00050041,0x000000f0,0x00000452,0x0000005d,
|
||||
0x00000018,0x0003003e,0x00000452,0x00000451,0x000200f9,0x00000445,0x000200f8,0x00000445,
|
||||
0x0004003d,0x00000006,0x00000453,0x000000b0,0x0004003d,0x00000006,0x00000454,0x00000054,
|
||||
0x00050084,0x00000006,0x00000455,0x00000454,0x00000021,0x00050080,0x00000006,0x00000456,
|
||||
0x00000455,0x00000154,0x0005008b,0x00000006,0x00000457,0x00000456,0x000000bb,0x00050084,
|
||||
0x00000006,0x00000458,0x00000457,0x000000bd,0x00050080,0x00000006,0x00000459,0x00000453,
|
||||
0x00000458,0x0003003e,0x000000b6,0x00000459,0x0004003d,0x00000006,0x0000045a,0x000000aa,
|
||||
0x0004003d,0x00000006,0x0000045b,0x00000054,0x00050084,0x00000006,0x0000045c,0x0000045b,
|
||||
0x00000021,0x00050080,0x00000006,0x0000045d,0x0000045c,0x00000154,0x0005008b,0x00000006,
|
||||
0x0000045f,0x0000045d,0x0000045e,0x00050087,0x00000006,0x00000460,0x0000045f,0x000000bb,
|
||||
0x00050084,0x00000006,0x00000461,0x00000460,0x000000c9,0x00050080,0x00000006,0x00000462,
|
||||
0x0000045a,0x00000461,0x0003003e,0x000000c0,0x00000462,0x0004003d,0x00000006,0x00000463,
|
||||
0x00000054,0x00050084,0x00000006,0x00000464,0x00000463,0x00000021,0x00050080,0x00000006,
|
||||
0x00000465,0x00000464,0x00000154,0x00050087,0x00000006,0x00000467,0x00000465,0x00000466,
|
||||
0x0003003e,0x000000cc,0x00000467,0x0004003d,0x00000006,0x00000468,0x000000c0,0x000500af,
|
||||
0x00000033,0x00000469,0x00000468,0x00000055,0x0004003d,0x00000006,0x0000046a,0x000000c0,
|
||||
0x000500b1,0x00000033,0x0000046b,0x0000046a,0x00000026,0x000500a7,0x00000033,0x0000046c,
|
||||
0x00000469,0x0000046b,0x0004003d,0x00000006,0x0000046d,0x000000b6,0x000500af,0x00000033,
|
||||
0x0000046e,0x0000046d,0x00000055,0x000500a7,0x00000033,0x0000046f,0x0000046c,0x0000046e,
|
||||
0x0004003d,0x00000006,0x00000470,0x000000b6,0x000500b1,0x00000033,0x00000471,0x00000470,
|
||||
0x00000028,0x000500a7,0x00000033,0x00000472,0x0000046f,0x00000471,0x000300f7,0x00000474,
|
||||
0x00000000,0x000400fa,0x00000472,0x00000473,0x00000474,0x000200f8,0x00000473,0x0004003d,
|
||||
0x00000006,0x00000475,0x00000024,0x0004003d,0x00000006,0x00000476,0x000000cc,0x00050084,
|
||||
0x00000006,0x00000478,0x00000476,0x00000477,0x00050080,0x00000006,0x00000479,0x00000475,
|
||||
0x00000478,0x0004003d,0x00000006,0x0000047a,0x000000c0,0x00050084,0x00000006,0x0000047b,
|
||||
0x0000047a,0x00000028,0x00050080,0x00000006,0x0000047c,0x00000479,0x0000047b,0x0004003d,
|
||||
0x00000006,0x0000047d,0x000000b6,0x00050080,0x00000006,0x0000047e,0x0000047c,0x0000047d,
|
||||
0x00060041,0x000000ed,0x0000047f,0x000000e2,0x00000055,0x0000047e,0x0004003d,0x00000047,
|
||||
0x00000480,0x0000047f,0x00050041,0x000000f0,0x00000481,0x0000005d,0x00000180,0x0003003e,
|
||||
0x00000481,0x00000480,0x000200f9,0x00000474,0x000200f8,0x00000474,0x0004003d,0x00000048,
|
||||
0x00000482,0x0000005e,0x0004003d,0x00000048,0x00000483,0x0000005d,0x00050094,0x00000047,
|
||||
0x00000484,0x00000482,0x00000483,0x00050041,0x000000f0,0x00000485,0x0000004a,0x00000180,
|
||||
0x0004003d,0x00000047,0x00000486,0x00000485,0x00050081,0x00000047,0x00000487,0x00000486,
|
||||
0x00000484,0x00050041,0x000000f0,0x00000488,0x0000004a,0x00000180,0x0003003e,0x00000488,
|
||||
0x00000487,0x0004003d,0x00000048,0x00000489,0x0000006a,0x0004003d,0x00000048,0x0000048a,
|
||||
0x0000005d,0x00050094,0x00000047,0x0000048b,0x00000489,0x0000048a,0x00050041,0x000000f0,
|
||||
0x0000048c,0x0000004d,0x00000180,0x0004003d,0x00000047,0x0000048d,0x0000048c,0x00050081,
|
||||
0x00000047,0x0000048e,0x0000048d,0x0000048b,0x00050041,0x000000f0,0x0000048f,0x0000004d,
|
||||
0x00000180,0x0003003e,0x0000048f,0x0000048e,0x0004003d,0x00000048,0x00000490,0x00000071,
|
||||
0x0004003d,0x00000048,0x00000491,0x0000005d,0x00050094,0x00000047,0x00000492,0x00000490,
|
||||
0x00000491,0x00050041,0x000000f0,0x00000493,0x0000004e,0x00000180,0x0004003d,0x00000047,
|
||||
0x00000494,0x00000493,0x00050081,0x00000047,0x00000495,0x00000494,0x00000492,0x00050041,
|
||||
0x000000f0,0x00000496,0x0000004e,0x00000180,0x0003003e,0x00000496,0x00000495,0x0004003d,
|
||||
0x00000048,0x00000497,0x00000078,0x0004003d,0x00000048,0x00000498,0x0000005d,0x00050094,
|
||||
0x00000047,0x00000499,0x00000497,0x00000498,0x00050041,0x000000f0,0x0000049a,0x0000004f,
|
||||
0x00000180,0x0004003d,0x00000047,0x0000049b,0x0000049a,0x00050081,0x00000047,0x0000049c,
|
||||
0x0000049b,0x00000499,0x00050041,0x000000f0,0x0000049d,0x0000004f,0x00000180,0x0003003e,
|
||||
0x0000049d,0x0000049c,0x0004003d,0x00000048,0x0000049e,0x0000007f,0x0004003d,0x00000048,
|
||||
0x0000049f,0x0000005d,0x00050094,0x00000047,0x000004a0,0x0000049e,0x0000049f,0x00050041,
|
||||
0x000000f0,0x000004a1,0x00000050,0x00000180,0x0004003d,0x00000047,0x000004a2,0x000004a1,
|
||||
0x00050081,0x00000047,0x000004a3,0x000004a2,0x000004a0,0x00050041,0x000000f0,0x000004a4,
|
||||
0x00000050,0x00000180,0x0003003e,0x000004a4,0x000004a3,0x0004003d,0x00000048,0x000004a5,
|
||||
0x00000086,0x0004003d,0x00000048,0x000004a6,0x0000005d,0x00050094,0x00000047,0x000004a7,
|
||||
0x000004a5,0x000004a6,0x00050041,0x000000f0,0x000004a8,0x00000051,0x00000180,0x0004003d,
|
||||
0x00000047,0x000004a9,0x000004a8,0x00050081,0x00000047,0x000004aa,0x000004a9,0x000004a7,
|
||||
0x00050041,0x000000f0,0x000004ab,0x00000051,0x00000180,0x0003003e,0x000004ab,0x000004aa,
|
||||
0x0004003d,0x00000048,0x000004ac,0x0000008d,0x0004003d,0x00000048,0x000004ad,0x0000005d,
|
||||
0x00050094,0x00000047,0x000004ae,0x000004ac,0x000004ad,0x00050041,0x000000f0,0x000004af,
|
||||
0x00000052,0x00000180,0x0004003d,0x00000047,0x000004b0,0x000004af,0x00050081,0x00000047,
|
||||
0x000004b1,0x000004b0,0x000004ae,0x00050041,0x000000f0,0x000004b2,0x00000052,0x00000180,
|
||||
0x0003003e,0x000004b2,0x000004b1,0x0004003d,0x00000048,0x000004b3,0x00000094,0x0004003d,
|
||||
0x00000048,0x000004b4,0x0000005d,0x00050094,0x00000047,0x000004b5,0x000004b3,0x000004b4,
|
||||
0x00050041,0x000000f0,0x000004b6,0x00000053,0x00000180,0x0004003d,0x00000047,0x000004b7,
|
||||
0x000004b6,0x00050081,0x00000047,0x000004b8,0x000004b7,0x000004b5,0x00050041,0x000000f0,
|
||||
0x000004b9,0x00000053,0x00000180,0x0003003e,0x000004b9,0x000004b8,0x0004003d,0x00000006,
|
||||
0x000004ba,0x00000054,0x00050080,0x00000006,0x000004bb,0x000004ba,0x0000009b,0x0003003e,
|
||||
0x00000054,0x000004bb,0x000200f9,0x00000059,0x000200f8,0x00000059,0x0004003d,0x00000006,
|
||||
0x000004bc,0x00000054,0x0004003d,0x00000006,0x000004bd,0x0000003e,0x000500b1,0x00000033,
|
||||
0x000004be,0x000004bc,0x000004bd,0x000400fa,0x000004be,0x00000056,0x00000058,0x000200f8,
|
||||
0x00000058,0x00050041,0x0000000e,0x000004c4,0x0000000c,0x0000000d,0x0004003d,0x00000009,
|
||||
0x000004c5,0x000004c4,0x0004007c,0x00000006,0x000004c6,0x000004c5,0x00050084,0x00000006,
|
||||
0x000004c7,0x00000124,0x000004c6,0x00060041,0x00000064,0x000004c8,0x000004c3,0x00000055,
|
||||
0x000004c7,0x0004003d,0x00000048,0x000004c9,0x000004c8,0x0003003e,0x000004bf,0x000004c9,
|
||||
0x0004003d,0x00000048,0x000004ca,0x000004bf,0x0009004f,0x00000048,0x000004cb,0x000004ca,
|
||||
0x000004ca,0x00000000,0x00000000,0x00000000,0x00000000,0x0004003d,0x00000048,0x000004cc,
|
||||
0x0000004a,0x00050081,0x00000048,0x000004cd,0x000004cc,0x000004cb,0x0003003e,0x0000004a,
|
||||
0x000004cd,0x0004003d,0x00000048,0x000004ce,0x000004bf,0x0009004f,0x00000048,0x000004cf,
|
||||
0x000004ce,0x000004ce,0x00000001,0x00000001,0x00000001,0x00000001,0x0004003d,0x00000048,
|
||||
0x000004d0,0x0000004d,0x00050081,0x00000048,0x000004d1,0x000004d0,0x000004cf,0x0003003e,
|
||||
0x0000004d,0x000004d1,0x0004003d,0x00000048,0x000004d2,0x000004bf,0x0009004f,0x00000048,
|
||||
0x000004d3,0x000004d2,0x000004d2,0x00000002,0x00000002,0x00000002,0x00000002,0x0004003d,
|
||||
0x00000048,0x000004d4,0x0000004e,0x00050081,0x00000048,0x000004d5,0x000004d4,0x000004d3,
|
||||
0x0003003e,0x0000004e,0x000004d5,0x0004003d,0x00000048,0x000004d6,0x000004bf,0x0009004f,
|
||||
0x00000048,0x000004d7,0x000004d6,0x000004d6,0x00000003,0x00000003,0x00000003,0x00000003,
|
||||
0x0004003d,0x00000048,0x000004d8,0x0000004f,0x00050081,0x00000048,0x000004d9,0x000004d8,
|
||||
0x000004d7,0x0003003e,0x0000004f,0x000004d9,0x00050041,0x0000000e,0x000004da,0x0000000c,
|
||||
0x0000000d,0x0004003d,0x00000009,0x000004db,0x000004da,0x0004007c,0x00000006,0x000004dc,
|
||||
0x000004db,0x00050084,0x00000006,0x000004dd,0x00000124,0x000004dc,0x00050080,0x00000006,
|
||||
0x000004de,0x000004dd,0x0000009b,0x00060041,0x00000064,0x000004df,0x000004c3,0x00000055,
|
||||
0x000004de,0x0004003d,0x00000048,0x000004e0,0x000004df,0x0003003e,0x000004bf,0x000004e0,
|
||||
0x0004003d,0x00000048,0x000004e1,0x000004bf,0x0009004f,0x00000048,0x000004e2,0x000004e1,
|
||||
0x000004e1,0x00000000,0x00000000,0x00000000,0x00000000,0x0004003d,0x00000048,0x000004e3,
|
||||
0x00000050,0x00050081,0x00000048,0x000004e4,0x000004e3,0x000004e2,0x0003003e,0x00000050,
|
||||
0x000004e4,0x0004003d,0x00000048,0x000004e5,0x000004bf,0x0009004f,0x00000048,0x000004e6,
|
||||
0x000004e5,0x000004e5,0x00000001,0x00000001,0x00000001,0x00000001,0x0004003d,0x00000048,
|
||||
0x000004e7,0x00000051,0x00050081,0x00000048,0x000004e8,0x000004e7,0x000004e6,0x0003003e,
|
||||
0x00000051,0x000004e8,0x0004003d,0x00000048,0x000004e9,0x000004bf,0x0009004f,0x00000048,
|
||||
0x000004ea,0x000004e9,0x000004e9,0x00000002,0x00000002,0x00000002,0x00000002,0x0004003d,
|
||||
0x00000048,0x000004eb,0x00000052,0x00050081,0x00000048,0x000004ec,0x000004eb,0x000004ea,
|
||||
0x0003003e,0x00000052,0x000004ec,0x0004003d,0x00000048,0x000004ed,0x000004bf,0x0009004f,
|
||||
0x00000048,0x000004ee,0x000004ed,0x000004ed,0x00000003,0x00000003,0x00000003,0x00000003,
|
||||
0x0004003d,0x00000048,0x000004ef,0x00000053,0x00050081,0x00000048,0x000004f0,0x000004ef,
|
||||
0x000004ee,0x0003003e,0x00000053,0x000004f0,0x0004003d,0x00000006,0x000004f5,0x0000002c,
|
||||
0x0004003d,0x00000006,0x000004f6,0x0000001c,0x00050080,0x00000006,0x000004f7,0x000004f6,
|
||||
0x00000055,0x00050084,0x00000006,0x000004f8,0x000004f7,0x0000002e,0x00050087,0x00000006,
|
||||
0x000004f9,0x000004f8,0x00000021,0x00050080,0x00000006,0x000004fa,0x000004f5,0x000004f9,
|
||||
0x0004003d,0x00000006,0x000004fb,0x00000012,0x00050080,0x00000006,0x000004fc,0x000004fa,
|
||||
0x000004fb,0x0004003d,0x00000048,0x000004fd,0x0000004a,0x00060041,0x00000064,0x000004fe,
|
||||
0x000004f4,0x00000055,0x000004fc,0x0003003e,0x000004fe,0x000004fd,0x0004003d,0x00000006,
|
||||
0x000004ff,0x0000002c,0x0004003d,0x00000006,0x00000500,0x0000001c,0x00050080,0x00000006,
|
||||
0x00000501,0x00000500,0x0000009b,0x00050084,0x00000006,0x00000502,0x00000501,0x0000002e,
|
||||
0x00050087,0x00000006,0x00000503,0x00000502,0x00000021,0x00050080,0x00000006,0x00000504,
|
||||
0x000004ff,0x00000503,0x0004003d,0x00000006,0x00000505,0x00000012,0x00050080,0x00000006,
|
||||
0x00000506,0x00000504,0x00000505,0x0004003d,0x00000048,0x00000507,0x0000004d,0x00060041,
|
||||
0x00000064,0x00000508,0x000004f4,0x00000055,0x00000506,0x0003003e,0x00000508,0x00000507,
|
||||
0x0004003d,0x00000006,0x00000509,0x0000002c,0x0004003d,0x00000006,0x0000050a,0x0000001c,
|
||||
0x00050080,0x00000006,0x0000050b,0x0000050a,0x00000124,0x00050084,0x00000006,0x0000050c,
|
||||
0x0000050b,0x0000002e,0x00050087,0x00000006,0x0000050d,0x0000050c,0x00000021,0x00050080,
|
||||
0x00000006,0x0000050e,0x00000509,0x0000050d,0x0004003d,0x00000006,0x0000050f,0x00000012,
|
||||
0x00050080,0x00000006,0x00000510,0x0000050e,0x0000050f,0x0004003d,0x00000048,0x00000511,
|
||||
0x0000004e,0x00060041,0x00000064,0x00000512,0x000004f4,0x00000055,0x00000510,0x0003003e,
|
||||
0x00000512,0x00000511,0x0004003d,0x00000006,0x00000513,0x0000002c,0x0004003d,0x00000006,
|
||||
0x00000514,0x0000001c,0x00050080,0x00000006,0x00000515,0x00000514,0x00000154,0x00050084,
|
||||
0x00000006,0x00000516,0x00000515,0x0000002e,0x00050087,0x00000006,0x00000517,0x00000516,
|
||||
0x00000021,0x00050080,0x00000006,0x00000518,0x00000513,0x00000517,0x0004003d,0x00000006,
|
||||
0x00000519,0x00000012,0x00050080,0x00000006,0x0000051a,0x00000518,0x00000519,0x0004003d,
|
||||
0x00000048,0x0000051b,0x0000004f,0x00060041,0x00000064,0x0000051c,0x000004f4,0x00000055,
|
||||
0x0000051a,0x0003003e,0x0000051c,0x0000051b,0x0004003d,0x00000006,0x0000051d,0x0000002c,
|
||||
0x0004003d,0x00000006,0x0000051e,0x0000001c,0x00050080,0x00000006,0x0000051f,0x0000051e,
|
||||
0x00000021,0x00050084,0x00000006,0x00000520,0x0000051f,0x0000002e,0x00050087,0x00000006,
|
||||
0x00000521,0x00000520,0x00000021,0x00050080,0x00000006,0x00000522,0x0000051d,0x00000521,
|
||||
0x0004003d,0x00000006,0x00000523,0x00000012,0x00050080,0x00000006,0x00000524,0x00000522,
|
||||
0x00000523,0x0004003d,0x00000048,0x00000525,0x00000050,0x00060041,0x00000064,0x00000526,
|
||||
0x000004f4,0x00000055,0x00000524,0x0003003e,0x00000526,0x00000525,0x0004003d,0x00000006,
|
||||
0x00000527,0x0000002c,0x0004003d,0x00000006,0x00000528,0x0000001c,0x00050080,0x00000006,
|
||||
0x0000052a,0x00000528,0x00000529,0x00050084,0x00000006,0x0000052b,0x0000052a,0x0000002e,
|
||||
0x00050087,0x00000006,0x0000052c,0x0000052b,0x00000021,0x00050080,0x00000006,0x0000052d,
|
||||
0x00000527,0x0000052c,0x0004003d,0x00000006,0x0000052e,0x00000012,0x00050080,0x00000006,
|
||||
0x0000052f,0x0000052d,0x0000052e,0x0004003d,0x00000048,0x00000530,0x00000051,0x00060041,
|
||||
0x00000064,0x00000531,0x000004f4,0x00000055,0x0000052f,0x0003003e,0x00000531,0x00000530,
|
||||
0x0004003d,0x00000006,0x00000532,0x0000002c,0x0004003d,0x00000006,0x00000533,0x0000001c,
|
||||
0x00050080,0x00000006,0x00000535,0x00000533,0x00000534,0x00050084,0x00000006,0x00000536,
|
||||
0x00000535,0x0000002e,0x00050087,0x00000006,0x00000537,0x00000536,0x00000021,0x00050080,
|
||||
0x00000006,0x00000538,0x00000532,0x00000537,0x0004003d,0x00000006,0x00000539,0x00000012,
|
||||
0x00050080,0x00000006,0x0000053a,0x00000538,0x00000539,0x0004003d,0x00000048,0x0000053b,
|
||||
0x00000052,0x00060041,0x00000064,0x0000053c,0x000004f4,0x00000055,0x0000053a,0x0003003e,
|
||||
0x0000053c,0x0000053b,0x0004003d,0x00000006,0x0000053d,0x0000002c,0x0004003d,0x00000006,
|
||||
0x0000053e,0x0000001c,0x00050080,0x00000006,0x00000540,0x0000053e,0x0000053f,0x00050084,
|
||||
0x00000006,0x00000541,0x00000540,0x0000002e,0x00050087,0x00000006,0x00000542,0x00000541,
|
||||
0x00000021,0x00050080,0x00000006,0x00000543,0x0000053d,0x00000542,0x0004003d,0x00000006,
|
||||
0x00000544,0x00000012,0x00050080,0x00000006,0x00000545,0x00000543,0x00000544,0x0004003d,
|
||||
0x00000048,0x00000546,0x00000053,0x00060041,0x00000064,0x00000547,0x000004f4,0x00000055,
|
||||
0x00000545,0x0003003e,0x00000547,0x00000546,0x000200f9,0x0000003d,0x000200f8,0x0000003d,
|
||||
0x000100fd,0x00010038
|
||||
};
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -0,0 +1,175 @@
|
||||
#version 450
|
||||
|
||||
#define KSTRIP_LEN 32
|
||||
#define BLOCK_SIZE 64 // the output channel shoule be aligned to 64.
|
||||
#define WARP 32
|
||||
|
||||
#define INNER_THREAD 16 // inner thread
|
||||
#define ALL_THREAD 256
|
||||
|
||||
#define A_INSTRIP 8
|
||||
#define A_STRIP 8 // (BLOCK_SIZE/A_INSTRIP)
|
||||
|
||||
#define B_INSTRIP 4 // (ALL_THREAD/BLOCK_SIZE)
|
||||
#define B_STRIP 8 // (KSTRIP_LEN/B_INSTRIP)
|
||||
|
||||
#define PER_THREAD (BLOCK_SIZE/INNER_THREAD)
|
||||
|
||||
layout(binding = 0) readonly buffer Input0{
|
||||
float image_data[];
|
||||
};
|
||||
|
||||
layout(binding = 1) readonly buffer Input1 {
|
||||
float bias_data[];
|
||||
};
|
||||
|
||||
layout(binding = 2) readonly buffer Input2{
|
||||
float weight_data[];
|
||||
};
|
||||
|
||||
layout(binding = 3) writeonly buffer Output{
|
||||
float output_data[];
|
||||
};
|
||||
|
||||
layout(binding = 4) uniform pushBlock {
|
||||
int Hi; // H in
|
||||
int Wi; // W in
|
||||
int H0; // H out
|
||||
int W0; // W out
|
||||
int stride_h;
|
||||
int stride_w;
|
||||
int pad_h;
|
||||
int pad_w;
|
||||
int Hk;
|
||||
int Wk;
|
||||
int dilation_h;
|
||||
int dilation_w;
|
||||
int Kg;
|
||||
int Cg;
|
||||
int group;
|
||||
int CgHkWk_aligned;
|
||||
int activationType; // 0 : no activation, 1: ReLU, 2: ReLU6.
|
||||
int batchi; // batch index
|
||||
int groupi; // group index
|
||||
} p;
|
||||
|
||||
shared float wshare[KSTRIP_LEN][BLOCK_SIZE]; // 2 KB
|
||||
shared float inshare[BLOCK_SIZE][KSTRIP_LEN]; // 2 KB
|
||||
|
||||
layout(local_size_x = ALL_THREAD, local_size_y = 1, local_size_z = 1) in;
|
||||
|
||||
void main()
|
||||
{
|
||||
int M = p.Kg; // output channel
|
||||
int K = p.CgHkWk_aligned; // Hk * Wk * G // aligned to KSTRIP_LEN
|
||||
int N = p.H0 * p.W0; // H0 * W0
|
||||
|
||||
int mIndex = int(gl_WorkGroupID.x) * BLOCK_SIZE;
|
||||
int nIndex = int(gl_WorkGroupID.y) * BLOCK_SIZE;
|
||||
|
||||
int local_x = int(gl_LocalInvocationID.x) % 16; // 0~7
|
||||
int local_y = int(gl_LocalInvocationID.x) / 16; // 0~31
|
||||
|
||||
int w_local_x = int(gl_LocalInvocationID.x) % KSTRIP_LEN; // 256 / 32 = 8
|
||||
int w_local_y = int(gl_LocalInvocationID.x) / KSTRIP_LEN;
|
||||
|
||||
int in_local_x = int(gl_LocalInvocationID.x) % BLOCK_SIZE; // 256 / 64 = 4
|
||||
int in_local_y = int(gl_LocalInvocationID.x) / BLOCK_SIZE;
|
||||
|
||||
int woffset = p.groupi * p.Kg * K + K * mIndex + w_local_y * K + w_local_x;
|
||||
int inoffset = (p.batchi * p.group + p.groupi) * p.Hi * p.Wi * p.Cg + in_local_y * p.Hi * p.Wi + nIndex + in_local_x;
|
||||
int outoffset = (p.batchi * p.group + p.groupi) * p.H0 * p.W0 * p.Kg;
|
||||
int biasoffset = p.groupi * p.Kg + mIndex + local_x * PER_THREAD;
|
||||
|
||||
vec4 sum[PER_THREAD];
|
||||
{
|
||||
for (int i = 0; i < PER_THREAD; i++)
|
||||
{
|
||||
sum[i] = vec4(bias_data[biasoffset + i]);
|
||||
}
|
||||
}
|
||||
|
||||
float regA[PER_THREAD];
|
||||
float regB[PER_THREAD];
|
||||
|
||||
int KStrip = K / KSTRIP_LEN;
|
||||
int KRemain = K - KStrip * KSTRIP_LEN; // NOTE: this value shoule be always 0.
|
||||
|
||||
for (int i = 0; i < KStrip; i++)
|
||||
{
|
||||
int k = i * KSTRIP_LEN;
|
||||
// load Weight to local memory.
|
||||
for (int s = 0; s < A_STRIP; s++)
|
||||
{
|
||||
wshare[w_local_x][s * A_INSTRIP + w_local_y] = weight_data[woffset + s * A_INSTRIP * K + k];
|
||||
}
|
||||
|
||||
// load Input to local memory
|
||||
for (int s = 0; s < B_STRIP; s++)
|
||||
{
|
||||
int cg = s * B_INSTRIP + in_local_y;
|
||||
int hw = nIndex + in_local_x;
|
||||
|
||||
if (cg < p.Cg && hw < N)
|
||||
inshare[in_local_x][s * B_INSTRIP + in_local_y] = image_data[inoffset + s * B_INSTRIP * N + k * N];
|
||||
else
|
||||
inshare[in_local_x][s * B_INSTRIP + in_local_y] = 0.f;
|
||||
}
|
||||
|
||||
barrier();
|
||||
|
||||
for (int j = 0; j < KSTRIP_LEN; j++)
|
||||
{
|
||||
// Load shared memory to register.
|
||||
for (int m = 0; m < 4; m++)
|
||||
{
|
||||
regA[m] = wshare[j][local_x*4 + m];
|
||||
}
|
||||
|
||||
for (int m = 0; m < 4; m++)
|
||||
{
|
||||
regB[m] = inshare[local_y + 16 * m][j];
|
||||
}
|
||||
|
||||
for (int m = 0; m < 4; m++)
|
||||
{
|
||||
for (int n = 0; n < 4; n++)
|
||||
{
|
||||
sum[m][n] += regA[m] * regB[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
barrier();
|
||||
}
|
||||
|
||||
if (p.activationType == 1) // ReLU
|
||||
{
|
||||
sum[0] = max(sum[0], (0));
|
||||
sum[1] = max(sum[1], (0));
|
||||
sum[2] = max(sum[2], (0));
|
||||
sum[3] = max(sum[3], (0));
|
||||
}
|
||||
else if (p.activationType == 2) // ReLU6
|
||||
{
|
||||
sum[0] = clamp(sum[0], vec4(0), vec4(6));
|
||||
sum[1] = clamp(sum[1], vec4(0), vec4(6));
|
||||
sum[2] = clamp(sum[2], vec4(0), vec4(6));
|
||||
sum[3] = clamp(sum[3], vec4(0), vec4(6));
|
||||
}
|
||||
|
||||
for (int n = 0; n < PER_THREAD; n++)
|
||||
{
|
||||
int nIndex2 = nIndex + n * INNER_THREAD + local_y;
|
||||
if (nIndex2 < N)
|
||||
{
|
||||
for (int m = 0; m < PER_THREAD; m++)
|
||||
{
|
||||
int mIndex2 = mIndex + local_x * PER_THREAD + m;
|
||||
if (mIndex2 < M)
|
||||
{
|
||||
output_data[outoffset + mIndex2 * N + nIndex2] = sum[m][n];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,404 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
extern const unsigned int conv_1x1_fast_spv[3134] = {
|
||||
0x07230203,0x00010000,0x0008000b,0x00000205,0x00000000,0x00020011,0x00000001,0x0006000b,
|
||||
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
|
||||
0x0007000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000020,0x0000002f,0x00060010,
|
||||
0x00000004,0x00000011,0x00000100,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,
|
||||
0x00040005,0x00000004,0x6e69616d,0x00000000,0x00030005,0x00000008,0x0000004d,0x00050005,
|
||||
0x00000009,0x68737570,0x636f6c42,0x0000006b,0x00040006,0x00000009,0x00000000,0x00006948,
|
||||
0x00040006,0x00000009,0x00000001,0x00006957,0x00040006,0x00000009,0x00000002,0x00003048,
|
||||
0x00040006,0x00000009,0x00000003,0x00003057,0x00060006,0x00000009,0x00000004,0x69727473,
|
||||
0x685f6564,0x00000000,0x00060006,0x00000009,0x00000005,0x69727473,0x775f6564,0x00000000,
|
||||
0x00050006,0x00000009,0x00000006,0x5f646170,0x00000068,0x00050006,0x00000009,0x00000007,
|
||||
0x5f646170,0x00000077,0x00040006,0x00000009,0x00000008,0x00006b48,0x00040006,0x00000009,
|
||||
0x00000009,0x00006b57,0x00060006,0x00000009,0x0000000a,0x616c6964,0x6e6f6974,0x0000685f,
|
||||
0x00060006,0x00000009,0x0000000b,0x616c6964,0x6e6f6974,0x0000775f,0x00040006,0x00000009,
|
||||
0x0000000c,0x0000674b,0x00040006,0x00000009,0x0000000d,0x00006743,0x00050006,0x00000009,
|
||||
0x0000000e,0x756f7267,0x00000070,0x00070006,0x00000009,0x0000000f,0x6b486743,0x615f6b57,
|
||||
0x6e67696c,0x00006465,0x00070006,0x00000009,0x00000010,0x69746361,0x69746176,0x79546e6f,
|
||||
0x00006570,0x00050006,0x00000009,0x00000011,0x63746162,0x00006968,0x00050006,0x00000009,
|
||||
0x00000012,0x756f7267,0x00006970,0x00030005,0x0000000b,0x00000070,0x00030005,0x00000010,
|
||||
0x0000004b,0x00030005,0x00000014,0x0000004e,0x00040005,0x0000001c,0x646e496d,0x00007865,
|
||||
0x00060005,0x00000020,0x575f6c67,0x476b726f,0x70756f72,0x00004449,0x00040005,0x00000028,
|
||||
0x646e496e,0x00007865,0x00040005,0x0000002e,0x61636f6c,0x00785f6c,0x00080005,0x0000002f,
|
||||
0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163,0x44496e6f,0x00000000,0x00040005,0x00000035,
|
||||
0x61636f6c,0x00795f6c,0x00050005,0x0000003a,0x6f6c5f77,0x5f6c6163,0x00000078,0x00050005,
|
||||
0x00000040,0x6f6c5f77,0x5f6c6163,0x00000079,0x00050005,0x00000045,0x6c5f6e69,0x6c61636f,
|
||||
0x0000785f,0x00050005,0x0000004a,0x6c5f6e69,0x6c61636f,0x0000795f,0x00040005,0x0000004f,
|
||||
0x66666f77,0x00746573,0x00050005,0x00000062,0x666f6e69,0x74657366,0x00000000,0x00050005,
|
||||
0x00000085,0x6f74756f,0x65736666,0x00000074,0x00050005,0x00000097,0x73616962,0x7366666f,
|
||||
0x00007465,0x00030005,0x000000a3,0x00000069,0x00030005,0x000000b1,0x006d7573,0x00040005,
|
||||
0x000000b4,0x75706e49,0x00003174,0x00060006,0x000000b4,0x00000000,0x73616962,0x7461645f,
|
||||
0x00000061,0x00030005,0x000000b6,0x00000000,0x00040005,0x000000c2,0x7274534b,0x00007069,
|
||||
0x00040005,0x000000c5,0x6d65524b,0x006e6961,0x00030005,0x000000ca,0x00000069,0x00030005,
|
||||
0x000000d3,0x0000006b,0x00030005,0x000000d6,0x00000073,0x00040005,0x000000e4,0x61687377,
|
||||
0x00006572,0x00040005,0x000000eb,0x75706e49,0x00003274,0x00060006,0x000000eb,0x00000000,
|
||||
0x67696577,0x645f7468,0x00617461,0x00030005,0x000000ed,0x00000000,0x00030005,0x000000fc,
|
||||
0x00000073,0x00030005,0x00000104,0x00006763,0x00030005,0x00000109,0x00007768,0x00040005,
|
||||
0x0000011a,0x68736e69,0x00657261,0x00040005,0x00000121,0x75706e49,0x00003074,0x00060006,
|
||||
0x00000121,0x00000000,0x67616d69,0x61645f65,0x00006174,0x00030005,0x00000123,0x00000000,
|
||||
0x00030005,0x0000013d,0x0000006a,0x00030005,0x00000145,0x0000006d,0x00040005,0x0000014f,
|
||||
0x41676572,0x00000000,0x00030005,0x0000015c,0x0000006d,0x00040005,0x00000164,0x42676572,
|
||||
0x00000000,0x00030005,0x00000170,0x0000006d,0x00030005,0x00000178,0x0000006e,0x00030005,
|
||||
0x000001c7,0x0000006e,0x00040005,0x000001cf,0x646e496e,0x00327865,0x00030005,0x000001db,
|
||||
0x0000006d,0x00040005,0x000001e3,0x646e496d,0x00327865,0x00040005,0x000001f0,0x7074754f,
|
||||
0x00007475,0x00060006,0x000001f0,0x00000000,0x7074756f,0x645f7475,0x00617461,0x00030005,
|
||||
0x000001f2,0x00000000,0x00050048,0x00000009,0x00000000,0x00000023,0x00000000,0x00050048,
|
||||
0x00000009,0x00000001,0x00000023,0x00000004,0x00050048,0x00000009,0x00000002,0x00000023,
|
||||
0x00000008,0x00050048,0x00000009,0x00000003,0x00000023,0x0000000c,0x00050048,0x00000009,
|
||||
0x00000004,0x00000023,0x00000010,0x00050048,0x00000009,0x00000005,0x00000023,0x00000014,
|
||||
0x00050048,0x00000009,0x00000006,0x00000023,0x00000018,0x00050048,0x00000009,0x00000007,
|
||||
0x00000023,0x0000001c,0x00050048,0x00000009,0x00000008,0x00000023,0x00000020,0x00050048,
|
||||
0x00000009,0x00000009,0x00000023,0x00000024,0x00050048,0x00000009,0x0000000a,0x00000023,
|
||||
0x00000028,0x00050048,0x00000009,0x0000000b,0x00000023,0x0000002c,0x00050048,0x00000009,
|
||||
0x0000000c,0x00000023,0x00000030,0x00050048,0x00000009,0x0000000d,0x00000023,0x00000034,
|
||||
0x00050048,0x00000009,0x0000000e,0x00000023,0x00000038,0x00050048,0x00000009,0x0000000f,
|
||||
0x00000023,0x0000003c,0x00050048,0x00000009,0x00000010,0x00000023,0x00000040,0x00050048,
|
||||
0x00000009,0x00000011,0x00000023,0x00000044,0x00050048,0x00000009,0x00000012,0x00000023,
|
||||
0x00000048,0x00030047,0x00000009,0x00000002,0x00040047,0x0000000b,0x00000022,0x00000000,
|
||||
0x00040047,0x0000000b,0x00000021,0x00000004,0x00040047,0x00000020,0x0000000b,0x0000001a,
|
||||
0x00040047,0x0000002f,0x0000000b,0x0000001b,0x00040047,0x000000b3,0x00000006,0x00000004,
|
||||
0x00040048,0x000000b4,0x00000000,0x00000018,0x00050048,0x000000b4,0x00000000,0x00000023,
|
||||
0x00000000,0x00030047,0x000000b4,0x00000003,0x00040047,0x000000b6,0x00000022,0x00000000,
|
||||
0x00040047,0x000000b6,0x00000021,0x00000001,0x00040047,0x000000ea,0x00000006,0x00000004,
|
||||
0x00040048,0x000000eb,0x00000000,0x00000018,0x00050048,0x000000eb,0x00000000,0x00000023,
|
||||
0x00000000,0x00030047,0x000000eb,0x00000003,0x00040047,0x000000ed,0x00000022,0x00000000,
|
||||
0x00040047,0x000000ed,0x00000021,0x00000002,0x00040047,0x00000120,0x00000006,0x00000004,
|
||||
0x00040048,0x00000121,0x00000000,0x00000018,0x00050048,0x00000121,0x00000000,0x00000023,
|
||||
0x00000000,0x00030047,0x00000121,0x00000003,0x00040047,0x00000123,0x00000022,0x00000000,
|
||||
0x00040047,0x00000123,0x00000021,0x00000000,0x00040047,0x000001ef,0x00000006,0x00000004,
|
||||
0x00040048,0x000001f0,0x00000000,0x00000019,0x00050048,0x000001f0,0x00000000,0x00000023,
|
||||
0x00000000,0x00030047,0x000001f0,0x00000003,0x00040047,0x000001f2,0x00000022,0x00000000,
|
||||
0x00040047,0x000001f2,0x00000021,0x00000003,0x00040047,0x00000204,0x0000000b,0x00000019,
|
||||
0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,
|
||||
0x00000001,0x00040020,0x00000007,0x00000007,0x00000006,0x0015001e,0x00000009,0x00000006,
|
||||
0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,
|
||||
0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,
|
||||
0x00000006,0x00000006,0x00040020,0x0000000a,0x00000002,0x00000009,0x0004003b,0x0000000a,
|
||||
0x0000000b,0x00000002,0x0004002b,0x00000006,0x0000000c,0x0000000c,0x00040020,0x0000000d,
|
||||
0x00000002,0x00000006,0x0004002b,0x00000006,0x00000011,0x0000000f,0x0004002b,0x00000006,
|
||||
0x00000015,0x00000002,0x0004002b,0x00000006,0x00000018,0x00000003,0x00040015,0x0000001d,
|
||||
0x00000020,0x00000000,0x00040017,0x0000001e,0x0000001d,0x00000003,0x00040020,0x0000001f,
|
||||
0x00000001,0x0000001e,0x0004003b,0x0000001f,0x00000020,0x00000001,0x0004002b,0x0000001d,
|
||||
0x00000021,0x00000000,0x00040020,0x00000022,0x00000001,0x0000001d,0x0004002b,0x00000006,
|
||||
0x00000026,0x00000040,0x0004002b,0x0000001d,0x00000029,0x00000001,0x0004003b,0x0000001f,
|
||||
0x0000002f,0x00000001,0x0004002b,0x00000006,0x00000033,0x00000010,0x0004002b,0x00000006,
|
||||
0x0000003e,0x00000020,0x0004002b,0x00000006,0x00000050,0x00000012,0x0004002b,0x00000006,
|
||||
0x00000063,0x00000011,0x0004002b,0x00000006,0x00000066,0x0000000e,0x0004002b,0x00000006,
|
||||
0x0000006d,0x00000000,0x0004002b,0x00000006,0x00000071,0x00000001,0x0004002b,0x00000006,
|
||||
0x00000075,0x0000000d,0x0004002b,0x00000006,0x000000a0,0x00000004,0x00020014,0x000000aa,
|
||||
0x00030016,0x000000ac,0x00000020,0x00040017,0x000000ad,0x000000ac,0x00000004,0x0004002b,
|
||||
0x0000001d,0x000000ae,0x00000004,0x0004001c,0x000000af,0x000000ad,0x000000ae,0x00040020,
|
||||
0x000000b0,0x00000007,0x000000af,0x0003001d,0x000000b3,0x000000ac,0x0003001e,0x000000b4,
|
||||
0x000000b3,0x00040020,0x000000b5,0x00000002,0x000000b4,0x0004003b,0x000000b5,0x000000b6,
|
||||
0x00000002,0x00040020,0x000000ba,0x00000002,0x000000ac,0x00040020,0x000000be,0x00000007,
|
||||
0x000000ad,0x0004002b,0x00000006,0x000000dd,0x00000008,0x0004002b,0x0000001d,0x000000df,
|
||||
0x00000040,0x0004001c,0x000000e0,0x000000ac,0x000000df,0x0004002b,0x0000001d,0x000000e1,
|
||||
0x00000020,0x0004001c,0x000000e2,0x000000e0,0x000000e1,0x00040020,0x000000e3,0x00000004,
|
||||
0x000000e2,0x0004003b,0x000000e3,0x000000e4,0x00000004,0x0003001d,0x000000ea,0x000000ac,
|
||||
0x0003001e,0x000000eb,0x000000ea,0x00040020,0x000000ec,0x00000002,0x000000eb,0x0004003b,
|
||||
0x000000ec,0x000000ed,0x00000002,0x00040020,0x000000f8,0x00000004,0x000000ac,0x0004001c,
|
||||
0x00000117,0x000000ac,0x000000e1,0x0004001c,0x00000118,0x00000117,0x000000df,0x00040020,
|
||||
0x00000119,0x00000004,0x00000118,0x0004003b,0x00000119,0x0000011a,0x00000004,0x0003001d,
|
||||
0x00000120,0x000000ac,0x0003001e,0x00000121,0x00000120,0x00040020,0x00000122,0x00000002,
|
||||
0x00000121,0x0004003b,0x00000122,0x00000123,0x00000002,0x0004002b,0x000000ac,0x00000137,
|
||||
0x00000000,0x0004002b,0x0000001d,0x0000013b,0x00000002,0x0004002b,0x0000001d,0x0000013c,
|
||||
0x00000108,0x0004001c,0x0000014d,0x000000ac,0x000000ae,0x00040020,0x0000014e,0x00000007,
|
||||
0x0000014d,0x00040020,0x00000158,0x00000007,0x000000ac,0x0007002c,0x000000ad,0x000001b6,
|
||||
0x00000137,0x00000137,0x00000137,0x00000137,0x0004002b,0x000000ac,0x000001b7,0x40c00000,
|
||||
0x0007002c,0x000000ad,0x000001b8,0x000001b7,0x000001b7,0x000001b7,0x000001b7,0x0003001d,
|
||||
0x000001ef,0x000000ac,0x0003001e,0x000001f0,0x000001ef,0x00040020,0x000001f1,0x00000002,
|
||||
0x000001f0,0x0004003b,0x000001f1,0x000001f2,0x00000002,0x0004002b,0x0000001d,0x00000203,
|
||||
0x00000100,0x0006002c,0x0000001e,0x00000204,0x00000203,0x00000029,0x00000029,0x00050036,
|
||||
0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,
|
||||
0x00000008,0x00000007,0x0004003b,0x00000007,0x00000010,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000014,0x00000007,0x0004003b,0x00000007,0x0000001c,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000028,0x00000007,0x0004003b,0x00000007,0x0000002e,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000035,0x00000007,0x0004003b,0x00000007,0x0000003a,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000040,0x00000007,0x0004003b,0x00000007,0x00000045,0x00000007,0x0004003b,0x00000007,
|
||||
0x0000004a,0x00000007,0x0004003b,0x00000007,0x0000004f,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000062,0x00000007,0x0004003b,0x00000007,0x00000085,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000097,0x00000007,0x0004003b,0x00000007,0x000000a3,0x00000007,0x0004003b,0x000000b0,
|
||||
0x000000b1,0x00000007,0x0004003b,0x00000007,0x000000c2,0x00000007,0x0004003b,0x00000007,
|
||||
0x000000c5,0x00000007,0x0004003b,0x00000007,0x000000ca,0x00000007,0x0004003b,0x00000007,
|
||||
0x000000d3,0x00000007,0x0004003b,0x00000007,0x000000d6,0x00000007,0x0004003b,0x00000007,
|
||||
0x000000fc,0x00000007,0x0004003b,0x00000007,0x00000104,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000109,0x00000007,0x0004003b,0x00000007,0x0000013d,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000145,0x00000007,0x0004003b,0x0000014e,0x0000014f,0x00000007,0x0004003b,0x00000007,
|
||||
0x0000015c,0x00000007,0x0004003b,0x0000014e,0x00000164,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000170,0x00000007,0x0004003b,0x00000007,0x00000178,0x00000007,0x0004003b,0x00000007,
|
||||
0x000001c7,0x00000007,0x0004003b,0x00000007,0x000001cf,0x00000007,0x0004003b,0x00000007,
|
||||
0x000001db,0x00000007,0x0004003b,0x00000007,0x000001e3,0x00000007,0x00050041,0x0000000d,
|
||||
0x0000000e,0x0000000b,0x0000000c,0x0004003d,0x00000006,0x0000000f,0x0000000e,0x0003003e,
|
||||
0x00000008,0x0000000f,0x00050041,0x0000000d,0x00000012,0x0000000b,0x00000011,0x0004003d,
|
||||
0x00000006,0x00000013,0x00000012,0x0003003e,0x00000010,0x00000013,0x00050041,0x0000000d,
|
||||
0x00000016,0x0000000b,0x00000015,0x0004003d,0x00000006,0x00000017,0x00000016,0x00050041,
|
||||
0x0000000d,0x00000019,0x0000000b,0x00000018,0x0004003d,0x00000006,0x0000001a,0x00000019,
|
||||
0x00050084,0x00000006,0x0000001b,0x00000017,0x0000001a,0x0003003e,0x00000014,0x0000001b,
|
||||
0x00050041,0x00000022,0x00000023,0x00000020,0x00000021,0x0004003d,0x0000001d,0x00000024,
|
||||
0x00000023,0x0004007c,0x00000006,0x00000025,0x00000024,0x00050084,0x00000006,0x00000027,
|
||||
0x00000025,0x00000026,0x0003003e,0x0000001c,0x00000027,0x00050041,0x00000022,0x0000002a,
|
||||
0x00000020,0x00000029,0x0004003d,0x0000001d,0x0000002b,0x0000002a,0x0004007c,0x00000006,
|
||||
0x0000002c,0x0000002b,0x00050084,0x00000006,0x0000002d,0x0000002c,0x00000026,0x0003003e,
|
||||
0x00000028,0x0000002d,0x00050041,0x00000022,0x00000030,0x0000002f,0x00000021,0x0004003d,
|
||||
0x0000001d,0x00000031,0x00000030,0x0004007c,0x00000006,0x00000032,0x00000031,0x0005008b,
|
||||
0x00000006,0x00000034,0x00000032,0x00000033,0x0003003e,0x0000002e,0x00000034,0x00050041,
|
||||
0x00000022,0x00000036,0x0000002f,0x00000021,0x0004003d,0x0000001d,0x00000037,0x00000036,
|
||||
0x0004007c,0x00000006,0x00000038,0x00000037,0x00050087,0x00000006,0x00000039,0x00000038,
|
||||
0x00000033,0x0003003e,0x00000035,0x00000039,0x00050041,0x00000022,0x0000003b,0x0000002f,
|
||||
0x00000021,0x0004003d,0x0000001d,0x0000003c,0x0000003b,0x0004007c,0x00000006,0x0000003d,
|
||||
0x0000003c,0x0005008b,0x00000006,0x0000003f,0x0000003d,0x0000003e,0x0003003e,0x0000003a,
|
||||
0x0000003f,0x00050041,0x00000022,0x00000041,0x0000002f,0x00000021,0x0004003d,0x0000001d,
|
||||
0x00000042,0x00000041,0x0004007c,0x00000006,0x00000043,0x00000042,0x00050087,0x00000006,
|
||||
0x00000044,0x00000043,0x0000003e,0x0003003e,0x00000040,0x00000044,0x00050041,0x00000022,
|
||||
0x00000046,0x0000002f,0x00000021,0x0004003d,0x0000001d,0x00000047,0x00000046,0x0004007c,
|
||||
0x00000006,0x00000048,0x00000047,0x0005008b,0x00000006,0x00000049,0x00000048,0x00000026,
|
||||
0x0003003e,0x00000045,0x00000049,0x00050041,0x00000022,0x0000004b,0x0000002f,0x00000021,
|
||||
0x0004003d,0x0000001d,0x0000004c,0x0000004b,0x0004007c,0x00000006,0x0000004d,0x0000004c,
|
||||
0x00050087,0x00000006,0x0000004e,0x0000004d,0x00000026,0x0003003e,0x0000004a,0x0000004e,
|
||||
0x00050041,0x0000000d,0x00000051,0x0000000b,0x00000050,0x0004003d,0x00000006,0x00000052,
|
||||
0x00000051,0x00050041,0x0000000d,0x00000053,0x0000000b,0x0000000c,0x0004003d,0x00000006,
|
||||
0x00000054,0x00000053,0x00050084,0x00000006,0x00000055,0x00000052,0x00000054,0x0004003d,
|
||||
0x00000006,0x00000056,0x00000010,0x00050084,0x00000006,0x00000057,0x00000055,0x00000056,
|
||||
0x0004003d,0x00000006,0x00000058,0x00000010,0x0004003d,0x00000006,0x00000059,0x0000001c,
|
||||
0x00050084,0x00000006,0x0000005a,0x00000058,0x00000059,0x00050080,0x00000006,0x0000005b,
|
||||
0x00000057,0x0000005a,0x0004003d,0x00000006,0x0000005c,0x00000040,0x0004003d,0x00000006,
|
||||
0x0000005d,0x00000010,0x00050084,0x00000006,0x0000005e,0x0000005c,0x0000005d,0x00050080,
|
||||
0x00000006,0x0000005f,0x0000005b,0x0000005e,0x0004003d,0x00000006,0x00000060,0x0000003a,
|
||||
0x00050080,0x00000006,0x00000061,0x0000005f,0x00000060,0x0003003e,0x0000004f,0x00000061,
|
||||
0x00050041,0x0000000d,0x00000064,0x0000000b,0x00000063,0x0004003d,0x00000006,0x00000065,
|
||||
0x00000064,0x00050041,0x0000000d,0x00000067,0x0000000b,0x00000066,0x0004003d,0x00000006,
|
||||
0x00000068,0x00000067,0x00050084,0x00000006,0x00000069,0x00000065,0x00000068,0x00050041,
|
||||
0x0000000d,0x0000006a,0x0000000b,0x00000050,0x0004003d,0x00000006,0x0000006b,0x0000006a,
|
||||
0x00050080,0x00000006,0x0000006c,0x00000069,0x0000006b,0x00050041,0x0000000d,0x0000006e,
|
||||
0x0000000b,0x0000006d,0x0004003d,0x00000006,0x0000006f,0x0000006e,0x00050084,0x00000006,
|
||||
0x00000070,0x0000006c,0x0000006f,0x00050041,0x0000000d,0x00000072,0x0000000b,0x00000071,
|
||||
0x0004003d,0x00000006,0x00000073,0x00000072,0x00050084,0x00000006,0x00000074,0x00000070,
|
||||
0x00000073,0x00050041,0x0000000d,0x00000076,0x0000000b,0x00000075,0x0004003d,0x00000006,
|
||||
0x00000077,0x00000076,0x00050084,0x00000006,0x00000078,0x00000074,0x00000077,0x0004003d,
|
||||
0x00000006,0x00000079,0x0000004a,0x00050041,0x0000000d,0x0000007a,0x0000000b,0x0000006d,
|
||||
0x0004003d,0x00000006,0x0000007b,0x0000007a,0x00050084,0x00000006,0x0000007c,0x00000079,
|
||||
0x0000007b,0x00050041,0x0000000d,0x0000007d,0x0000000b,0x00000071,0x0004003d,0x00000006,
|
||||
0x0000007e,0x0000007d,0x00050084,0x00000006,0x0000007f,0x0000007c,0x0000007e,0x00050080,
|
||||
0x00000006,0x00000080,0x00000078,0x0000007f,0x0004003d,0x00000006,0x00000081,0x00000028,
|
||||
0x00050080,0x00000006,0x00000082,0x00000080,0x00000081,0x0004003d,0x00000006,0x00000083,
|
||||
0x00000045,0x00050080,0x00000006,0x00000084,0x00000082,0x00000083,0x0003003e,0x00000062,
|
||||
0x00000084,0x00050041,0x0000000d,0x00000086,0x0000000b,0x00000063,0x0004003d,0x00000006,
|
||||
0x00000087,0x00000086,0x00050041,0x0000000d,0x00000088,0x0000000b,0x00000066,0x0004003d,
|
||||
0x00000006,0x00000089,0x00000088,0x00050084,0x00000006,0x0000008a,0x00000087,0x00000089,
|
||||
0x00050041,0x0000000d,0x0000008b,0x0000000b,0x00000050,0x0004003d,0x00000006,0x0000008c,
|
||||
0x0000008b,0x00050080,0x00000006,0x0000008d,0x0000008a,0x0000008c,0x00050041,0x0000000d,
|
||||
0x0000008e,0x0000000b,0x00000015,0x0004003d,0x00000006,0x0000008f,0x0000008e,0x00050084,
|
||||
0x00000006,0x00000090,0x0000008d,0x0000008f,0x00050041,0x0000000d,0x00000091,0x0000000b,
|
||||
0x00000018,0x0004003d,0x00000006,0x00000092,0x00000091,0x00050084,0x00000006,0x00000093,
|
||||
0x00000090,0x00000092,0x00050041,0x0000000d,0x00000094,0x0000000b,0x0000000c,0x0004003d,
|
||||
0x00000006,0x00000095,0x00000094,0x00050084,0x00000006,0x00000096,0x00000093,0x00000095,
|
||||
0x0003003e,0x00000085,0x00000096,0x00050041,0x0000000d,0x00000098,0x0000000b,0x00000050,
|
||||
0x0004003d,0x00000006,0x00000099,0x00000098,0x00050041,0x0000000d,0x0000009a,0x0000000b,
|
||||
0x0000000c,0x0004003d,0x00000006,0x0000009b,0x0000009a,0x00050084,0x00000006,0x0000009c,
|
||||
0x00000099,0x0000009b,0x0004003d,0x00000006,0x0000009d,0x0000001c,0x00050080,0x00000006,
|
||||
0x0000009e,0x0000009c,0x0000009d,0x0004003d,0x00000006,0x0000009f,0x0000002e,0x00050084,
|
||||
0x00000006,0x000000a1,0x0000009f,0x000000a0,0x00050080,0x00000006,0x000000a2,0x0000009e,
|
||||
0x000000a1,0x0003003e,0x00000097,0x000000a2,0x0003003e,0x000000a3,0x0000006d,0x000200f9,
|
||||
0x000000a4,0x000200f8,0x000000a4,0x000400f6,0x000000a6,0x000000a7,0x00000000,0x000200f9,
|
||||
0x000000a8,0x000200f8,0x000000a8,0x0004003d,0x00000006,0x000000a9,0x000000a3,0x000500b1,
|
||||
0x000000aa,0x000000ab,0x000000a9,0x000000a0,0x000400fa,0x000000ab,0x000000a5,0x000000a6,
|
||||
0x000200f8,0x000000a5,0x0004003d,0x00000006,0x000000b2,0x000000a3,0x0004003d,0x00000006,
|
||||
0x000000b7,0x00000097,0x0004003d,0x00000006,0x000000b8,0x000000a3,0x00050080,0x00000006,
|
||||
0x000000b9,0x000000b7,0x000000b8,0x00060041,0x000000ba,0x000000bb,0x000000b6,0x0000006d,
|
||||
0x000000b9,0x0004003d,0x000000ac,0x000000bc,0x000000bb,0x00070050,0x000000ad,0x000000bd,
|
||||
0x000000bc,0x000000bc,0x000000bc,0x000000bc,0x00050041,0x000000be,0x000000bf,0x000000b1,
|
||||
0x000000b2,0x0003003e,0x000000bf,0x000000bd,0x000200f9,0x000000a7,0x000200f8,0x000000a7,
|
||||
0x0004003d,0x00000006,0x000000c0,0x000000a3,0x00050080,0x00000006,0x000000c1,0x000000c0,
|
||||
0x00000071,0x0003003e,0x000000a3,0x000000c1,0x000200f9,0x000000a4,0x000200f8,0x000000a6,
|
||||
0x0004003d,0x00000006,0x000000c3,0x00000010,0x00050087,0x00000006,0x000000c4,0x000000c3,
|
||||
0x0000003e,0x0003003e,0x000000c2,0x000000c4,0x0004003d,0x00000006,0x000000c6,0x00000010,
|
||||
0x0004003d,0x00000006,0x000000c7,0x000000c2,0x00050084,0x00000006,0x000000c8,0x000000c7,
|
||||
0x0000003e,0x00050082,0x00000006,0x000000c9,0x000000c6,0x000000c8,0x0003003e,0x000000c5,
|
||||
0x000000c9,0x0003003e,0x000000ca,0x0000006d,0x000200f9,0x000000cb,0x000200f8,0x000000cb,
|
||||
0x000400f6,0x000000cd,0x000000ce,0x00000000,0x000200f9,0x000000cf,0x000200f8,0x000000cf,
|
||||
0x0004003d,0x00000006,0x000000d0,0x000000ca,0x0004003d,0x00000006,0x000000d1,0x000000c2,
|
||||
0x000500b1,0x000000aa,0x000000d2,0x000000d0,0x000000d1,0x000400fa,0x000000d2,0x000000cc,
|
||||
0x000000cd,0x000200f8,0x000000cc,0x0004003d,0x00000006,0x000000d4,0x000000ca,0x00050084,
|
||||
0x00000006,0x000000d5,0x000000d4,0x0000003e,0x0003003e,0x000000d3,0x000000d5,0x0003003e,
|
||||
0x000000d6,0x0000006d,0x000200f9,0x000000d7,0x000200f8,0x000000d7,0x000400f6,0x000000d9,
|
||||
0x000000da,0x00000000,0x000200f9,0x000000db,0x000200f8,0x000000db,0x0004003d,0x00000006,
|
||||
0x000000dc,0x000000d6,0x000500b1,0x000000aa,0x000000de,0x000000dc,0x000000dd,0x000400fa,
|
||||
0x000000de,0x000000d8,0x000000d9,0x000200f8,0x000000d8,0x0004003d,0x00000006,0x000000e5,
|
||||
0x0000003a,0x0004003d,0x00000006,0x000000e6,0x000000d6,0x00050084,0x00000006,0x000000e7,
|
||||
0x000000e6,0x000000dd,0x0004003d,0x00000006,0x000000e8,0x00000040,0x00050080,0x00000006,
|
||||
0x000000e9,0x000000e7,0x000000e8,0x0004003d,0x00000006,0x000000ee,0x0000004f,0x0004003d,
|
||||
0x00000006,0x000000ef,0x000000d6,0x00050084,0x00000006,0x000000f0,0x000000ef,0x000000dd,
|
||||
0x0004003d,0x00000006,0x000000f1,0x00000010,0x00050084,0x00000006,0x000000f2,0x000000f0,
|
||||
0x000000f1,0x00050080,0x00000006,0x000000f3,0x000000ee,0x000000f2,0x0004003d,0x00000006,
|
||||
0x000000f4,0x000000d3,0x00050080,0x00000006,0x000000f5,0x000000f3,0x000000f4,0x00060041,
|
||||
0x000000ba,0x000000f6,0x000000ed,0x0000006d,0x000000f5,0x0004003d,0x000000ac,0x000000f7,
|
||||
0x000000f6,0x00060041,0x000000f8,0x000000f9,0x000000e4,0x000000e5,0x000000e9,0x0003003e,
|
||||
0x000000f9,0x000000f7,0x000200f9,0x000000da,0x000200f8,0x000000da,0x0004003d,0x00000006,
|
||||
0x000000fa,0x000000d6,0x00050080,0x00000006,0x000000fb,0x000000fa,0x00000071,0x0003003e,
|
||||
0x000000d6,0x000000fb,0x000200f9,0x000000d7,0x000200f8,0x000000d9,0x0003003e,0x000000fc,
|
||||
0x0000006d,0x000200f9,0x000000fd,0x000200f8,0x000000fd,0x000400f6,0x000000ff,0x00000100,
|
||||
0x00000000,0x000200f9,0x00000101,0x000200f8,0x00000101,0x0004003d,0x00000006,0x00000102,
|
||||
0x000000fc,0x000500b1,0x000000aa,0x00000103,0x00000102,0x000000dd,0x000400fa,0x00000103,
|
||||
0x000000fe,0x000000ff,0x000200f8,0x000000fe,0x0004003d,0x00000006,0x00000105,0x000000fc,
|
||||
0x00050084,0x00000006,0x00000106,0x00000105,0x000000a0,0x0004003d,0x00000006,0x00000107,
|
||||
0x0000004a,0x00050080,0x00000006,0x00000108,0x00000106,0x00000107,0x0003003e,0x00000104,
|
||||
0x00000108,0x0004003d,0x00000006,0x0000010a,0x00000028,0x0004003d,0x00000006,0x0000010b,
|
||||
0x00000045,0x00050080,0x00000006,0x0000010c,0x0000010a,0x0000010b,0x0003003e,0x00000109,
|
||||
0x0000010c,0x0004003d,0x00000006,0x0000010d,0x00000104,0x00050041,0x0000000d,0x0000010e,
|
||||
0x0000000b,0x00000075,0x0004003d,0x00000006,0x0000010f,0x0000010e,0x000500b1,0x000000aa,
|
||||
0x00000110,0x0000010d,0x0000010f,0x0004003d,0x00000006,0x00000111,0x00000109,0x0004003d,
|
||||
0x00000006,0x00000112,0x00000014,0x000500b1,0x000000aa,0x00000113,0x00000111,0x00000112,
|
||||
0x000500a7,0x000000aa,0x00000114,0x00000110,0x00000113,0x000300f7,0x00000116,0x00000000,
|
||||
0x000400fa,0x00000114,0x00000115,0x00000131,0x000200f8,0x00000115,0x0004003d,0x00000006,
|
||||
0x0000011b,0x00000045,0x0004003d,0x00000006,0x0000011c,0x000000fc,0x00050084,0x00000006,
|
||||
0x0000011d,0x0000011c,0x000000a0,0x0004003d,0x00000006,0x0000011e,0x0000004a,0x00050080,
|
||||
0x00000006,0x0000011f,0x0000011d,0x0000011e,0x0004003d,0x00000006,0x00000124,0x00000062,
|
||||
0x0004003d,0x00000006,0x00000125,0x000000fc,0x00050084,0x00000006,0x00000126,0x00000125,
|
||||
0x000000a0,0x0004003d,0x00000006,0x00000127,0x00000014,0x00050084,0x00000006,0x00000128,
|
||||
0x00000126,0x00000127,0x00050080,0x00000006,0x00000129,0x00000124,0x00000128,0x0004003d,
|
||||
0x00000006,0x0000012a,0x000000d3,0x0004003d,0x00000006,0x0000012b,0x00000014,0x00050084,
|
||||
0x00000006,0x0000012c,0x0000012a,0x0000012b,0x00050080,0x00000006,0x0000012d,0x00000129,
|
||||
0x0000012c,0x00060041,0x000000ba,0x0000012e,0x00000123,0x0000006d,0x0000012d,0x0004003d,
|
||||
0x000000ac,0x0000012f,0x0000012e,0x00060041,0x000000f8,0x00000130,0x0000011a,0x0000011b,
|
||||
0x0000011f,0x0003003e,0x00000130,0x0000012f,0x000200f9,0x00000116,0x000200f8,0x00000131,
|
||||
0x0004003d,0x00000006,0x00000132,0x00000045,0x0004003d,0x00000006,0x00000133,0x000000fc,
|
||||
0x00050084,0x00000006,0x00000134,0x00000133,0x000000a0,0x0004003d,0x00000006,0x00000135,
|
||||
0x0000004a,0x00050080,0x00000006,0x00000136,0x00000134,0x00000135,0x00060041,0x000000f8,
|
||||
0x00000138,0x0000011a,0x00000132,0x00000136,0x0003003e,0x00000138,0x00000137,0x000200f9,
|
||||
0x00000116,0x000200f8,0x00000116,0x000200f9,0x00000100,0x000200f8,0x00000100,0x0004003d,
|
||||
0x00000006,0x00000139,0x000000fc,0x00050080,0x00000006,0x0000013a,0x00000139,0x00000071,
|
||||
0x0003003e,0x000000fc,0x0000013a,0x000200f9,0x000000fd,0x000200f8,0x000000ff,0x000400e0,
|
||||
0x0000013b,0x0000013b,0x0000013c,0x0003003e,0x0000013d,0x0000006d,0x000200f9,0x0000013e,
|
||||
0x000200f8,0x0000013e,0x000400f6,0x00000140,0x00000141,0x00000000,0x000200f9,0x00000142,
|
||||
0x000200f8,0x00000142,0x0004003d,0x00000006,0x00000143,0x0000013d,0x000500b1,0x000000aa,
|
||||
0x00000144,0x00000143,0x0000003e,0x000400fa,0x00000144,0x0000013f,0x00000140,0x000200f8,
|
||||
0x0000013f,0x0003003e,0x00000145,0x0000006d,0x000200f9,0x00000146,0x000200f8,0x00000146,
|
||||
0x000400f6,0x00000148,0x00000149,0x00000000,0x000200f9,0x0000014a,0x000200f8,0x0000014a,
|
||||
0x0004003d,0x00000006,0x0000014b,0x00000145,0x000500b1,0x000000aa,0x0000014c,0x0000014b,
|
||||
0x000000a0,0x000400fa,0x0000014c,0x00000147,0x00000148,0x000200f8,0x00000147,0x0004003d,
|
||||
0x00000006,0x00000150,0x00000145,0x0004003d,0x00000006,0x00000151,0x0000013d,0x0004003d,
|
||||
0x00000006,0x00000152,0x0000002e,0x00050084,0x00000006,0x00000153,0x00000152,0x000000a0,
|
||||
0x0004003d,0x00000006,0x00000154,0x00000145,0x00050080,0x00000006,0x00000155,0x00000153,
|
||||
0x00000154,0x00060041,0x000000f8,0x00000156,0x000000e4,0x00000151,0x00000155,0x0004003d,
|
||||
0x000000ac,0x00000157,0x00000156,0x00050041,0x00000158,0x00000159,0x0000014f,0x00000150,
|
||||
0x0003003e,0x00000159,0x00000157,0x000200f9,0x00000149,0x000200f8,0x00000149,0x0004003d,
|
||||
0x00000006,0x0000015a,0x00000145,0x00050080,0x00000006,0x0000015b,0x0000015a,0x00000071,
|
||||
0x0003003e,0x00000145,0x0000015b,0x000200f9,0x00000146,0x000200f8,0x00000148,0x0003003e,
|
||||
0x0000015c,0x0000006d,0x000200f9,0x0000015d,0x000200f8,0x0000015d,0x000400f6,0x0000015f,
|
||||
0x00000160,0x00000000,0x000200f9,0x00000161,0x000200f8,0x00000161,0x0004003d,0x00000006,
|
||||
0x00000162,0x0000015c,0x000500b1,0x000000aa,0x00000163,0x00000162,0x000000a0,0x000400fa,
|
||||
0x00000163,0x0000015e,0x0000015f,0x000200f8,0x0000015e,0x0004003d,0x00000006,0x00000165,
|
||||
0x0000015c,0x0004003d,0x00000006,0x00000166,0x00000035,0x0004003d,0x00000006,0x00000167,
|
||||
0x0000015c,0x00050084,0x00000006,0x00000168,0x00000033,0x00000167,0x00050080,0x00000006,
|
||||
0x00000169,0x00000166,0x00000168,0x0004003d,0x00000006,0x0000016a,0x0000013d,0x00060041,
|
||||
0x000000f8,0x0000016b,0x0000011a,0x00000169,0x0000016a,0x0004003d,0x000000ac,0x0000016c,
|
||||
0x0000016b,0x00050041,0x00000158,0x0000016d,0x00000164,0x00000165,0x0003003e,0x0000016d,
|
||||
0x0000016c,0x000200f9,0x00000160,0x000200f8,0x00000160,0x0004003d,0x00000006,0x0000016e,
|
||||
0x0000015c,0x00050080,0x00000006,0x0000016f,0x0000016e,0x00000071,0x0003003e,0x0000015c,
|
||||
0x0000016f,0x000200f9,0x0000015d,0x000200f8,0x0000015f,0x0003003e,0x00000170,0x0000006d,
|
||||
0x000200f9,0x00000171,0x000200f8,0x00000171,0x000400f6,0x00000173,0x00000174,0x00000000,
|
||||
0x000200f9,0x00000175,0x000200f8,0x00000175,0x0004003d,0x00000006,0x00000176,0x00000170,
|
||||
0x000500b1,0x000000aa,0x00000177,0x00000176,0x000000a0,0x000400fa,0x00000177,0x00000172,
|
||||
0x00000173,0x000200f8,0x00000172,0x0003003e,0x00000178,0x0000006d,0x000200f9,0x00000179,
|
||||
0x000200f8,0x00000179,0x000400f6,0x0000017b,0x0000017c,0x00000000,0x000200f9,0x0000017d,
|
||||
0x000200f8,0x0000017d,0x0004003d,0x00000006,0x0000017e,0x00000178,0x000500b1,0x000000aa,
|
||||
0x0000017f,0x0000017e,0x000000a0,0x000400fa,0x0000017f,0x0000017a,0x0000017b,0x000200f8,
|
||||
0x0000017a,0x0004003d,0x00000006,0x00000180,0x00000170,0x0004003d,0x00000006,0x00000181,
|
||||
0x00000178,0x0004003d,0x00000006,0x00000182,0x00000170,0x00050041,0x00000158,0x00000183,
|
||||
0x0000014f,0x00000182,0x0004003d,0x000000ac,0x00000184,0x00000183,0x0004003d,0x00000006,
|
||||
0x00000185,0x00000178,0x00050041,0x00000158,0x00000186,0x00000164,0x00000185,0x0004003d,
|
||||
0x000000ac,0x00000187,0x00000186,0x00050085,0x000000ac,0x00000188,0x00000184,0x00000187,
|
||||
0x00060041,0x00000158,0x00000189,0x000000b1,0x00000180,0x00000181,0x0004003d,0x000000ac,
|
||||
0x0000018a,0x00000189,0x00050081,0x000000ac,0x0000018b,0x0000018a,0x00000188,0x00060041,
|
||||
0x00000158,0x0000018c,0x000000b1,0x00000180,0x00000181,0x0003003e,0x0000018c,0x0000018b,
|
||||
0x000200f9,0x0000017c,0x000200f8,0x0000017c,0x0004003d,0x00000006,0x0000018d,0x00000178,
|
||||
0x00050080,0x00000006,0x0000018e,0x0000018d,0x00000071,0x0003003e,0x00000178,0x0000018e,
|
||||
0x000200f9,0x00000179,0x000200f8,0x0000017b,0x000200f9,0x00000174,0x000200f8,0x00000174,
|
||||
0x0004003d,0x00000006,0x0000018f,0x00000170,0x00050080,0x00000006,0x00000190,0x0000018f,
|
||||
0x00000071,0x0003003e,0x00000170,0x00000190,0x000200f9,0x00000171,0x000200f8,0x00000173,
|
||||
0x000200f9,0x00000141,0x000200f8,0x00000141,0x0004003d,0x00000006,0x00000191,0x0000013d,
|
||||
0x00050080,0x00000006,0x00000192,0x00000191,0x00000071,0x0003003e,0x0000013d,0x00000192,
|
||||
0x000200f9,0x0000013e,0x000200f8,0x00000140,0x000400e0,0x0000013b,0x0000013b,0x0000013c,
|
||||
0x000200f9,0x000000ce,0x000200f8,0x000000ce,0x0004003d,0x00000006,0x00000193,0x000000ca,
|
||||
0x00050080,0x00000006,0x00000194,0x00000193,0x00000071,0x0003003e,0x000000ca,0x00000194,
|
||||
0x000200f9,0x000000cb,0x000200f8,0x000000cd,0x00050041,0x0000000d,0x00000195,0x0000000b,
|
||||
0x00000033,0x0004003d,0x00000006,0x00000196,0x00000195,0x000500aa,0x000000aa,0x00000197,
|
||||
0x00000196,0x00000071,0x000300f7,0x00000199,0x00000000,0x000400fa,0x00000197,0x00000198,
|
||||
0x000001ae,0x000200f8,0x00000198,0x00050041,0x000000be,0x0000019a,0x000000b1,0x0000006d,
|
||||
0x0004003d,0x000000ad,0x0000019b,0x0000019a,0x00070050,0x000000ad,0x0000019c,0x00000137,
|
||||
0x00000137,0x00000137,0x00000137,0x0007000c,0x000000ad,0x0000019d,0x00000001,0x00000028,
|
||||
0x0000019b,0x0000019c,0x00050041,0x000000be,0x0000019e,0x000000b1,0x0000006d,0x0003003e,
|
||||
0x0000019e,0x0000019d,0x00050041,0x000000be,0x0000019f,0x000000b1,0x00000071,0x0004003d,
|
||||
0x000000ad,0x000001a0,0x0000019f,0x00070050,0x000000ad,0x000001a1,0x00000137,0x00000137,
|
||||
0x00000137,0x00000137,0x0007000c,0x000000ad,0x000001a2,0x00000001,0x00000028,0x000001a0,
|
||||
0x000001a1,0x00050041,0x000000be,0x000001a3,0x000000b1,0x00000071,0x0003003e,0x000001a3,
|
||||
0x000001a2,0x00050041,0x000000be,0x000001a4,0x000000b1,0x00000015,0x0004003d,0x000000ad,
|
||||
0x000001a5,0x000001a4,0x00070050,0x000000ad,0x000001a6,0x00000137,0x00000137,0x00000137,
|
||||
0x00000137,0x0007000c,0x000000ad,0x000001a7,0x00000001,0x00000028,0x000001a5,0x000001a6,
|
||||
0x00050041,0x000000be,0x000001a8,0x000000b1,0x00000015,0x0003003e,0x000001a8,0x000001a7,
|
||||
0x00050041,0x000000be,0x000001a9,0x000000b1,0x00000018,0x0004003d,0x000000ad,0x000001aa,
|
||||
0x000001a9,0x00070050,0x000000ad,0x000001ab,0x00000137,0x00000137,0x00000137,0x00000137,
|
||||
0x0007000c,0x000000ad,0x000001ac,0x00000001,0x00000028,0x000001aa,0x000001ab,0x00050041,
|
||||
0x000000be,0x000001ad,0x000000b1,0x00000018,0x0003003e,0x000001ad,0x000001ac,0x000200f9,
|
||||
0x00000199,0x000200f8,0x000001ae,0x00050041,0x0000000d,0x000001af,0x0000000b,0x00000033,
|
||||
0x0004003d,0x00000006,0x000001b0,0x000001af,0x000500aa,0x000000aa,0x000001b1,0x000001b0,
|
||||
0x00000015,0x000300f7,0x000001b3,0x00000000,0x000400fa,0x000001b1,0x000001b2,0x000001b3,
|
||||
0x000200f8,0x000001b2,0x00050041,0x000000be,0x000001b4,0x000000b1,0x0000006d,0x0004003d,
|
||||
0x000000ad,0x000001b5,0x000001b4,0x0008000c,0x000000ad,0x000001b9,0x00000001,0x0000002b,
|
||||
0x000001b5,0x000001b6,0x000001b8,0x00050041,0x000000be,0x000001ba,0x000000b1,0x0000006d,
|
||||
0x0003003e,0x000001ba,0x000001b9,0x00050041,0x000000be,0x000001bb,0x000000b1,0x00000071,
|
||||
0x0004003d,0x000000ad,0x000001bc,0x000001bb,0x0008000c,0x000000ad,0x000001bd,0x00000001,
|
||||
0x0000002b,0x000001bc,0x000001b6,0x000001b8,0x00050041,0x000000be,0x000001be,0x000000b1,
|
||||
0x00000071,0x0003003e,0x000001be,0x000001bd,0x00050041,0x000000be,0x000001bf,0x000000b1,
|
||||
0x00000015,0x0004003d,0x000000ad,0x000001c0,0x000001bf,0x0008000c,0x000000ad,0x000001c1,
|
||||
0x00000001,0x0000002b,0x000001c0,0x000001b6,0x000001b8,0x00050041,0x000000be,0x000001c2,
|
||||
0x000000b1,0x00000015,0x0003003e,0x000001c2,0x000001c1,0x00050041,0x000000be,0x000001c3,
|
||||
0x000000b1,0x00000018,0x0004003d,0x000000ad,0x000001c4,0x000001c3,0x0008000c,0x000000ad,
|
||||
0x000001c5,0x00000001,0x0000002b,0x000001c4,0x000001b6,0x000001b8,0x00050041,0x000000be,
|
||||
0x000001c6,0x000000b1,0x00000018,0x0003003e,0x000001c6,0x000001c5,0x000200f9,0x000001b3,
|
||||
0x000200f8,0x000001b3,0x000200f9,0x00000199,0x000200f8,0x00000199,0x0003003e,0x000001c7,
|
||||
0x0000006d,0x000200f9,0x000001c8,0x000200f8,0x000001c8,0x000400f6,0x000001ca,0x000001cb,
|
||||
0x00000000,0x000200f9,0x000001cc,0x000200f8,0x000001cc,0x0004003d,0x00000006,0x000001cd,
|
||||
0x000001c7,0x000500b1,0x000000aa,0x000001ce,0x000001cd,0x000000a0,0x000400fa,0x000001ce,
|
||||
0x000001c9,0x000001ca,0x000200f8,0x000001c9,0x0004003d,0x00000006,0x000001d0,0x00000028,
|
||||
0x0004003d,0x00000006,0x000001d1,0x000001c7,0x00050084,0x00000006,0x000001d2,0x000001d1,
|
||||
0x00000033,0x00050080,0x00000006,0x000001d3,0x000001d0,0x000001d2,0x0004003d,0x00000006,
|
||||
0x000001d4,0x00000035,0x00050080,0x00000006,0x000001d5,0x000001d3,0x000001d4,0x0003003e,
|
||||
0x000001cf,0x000001d5,0x0004003d,0x00000006,0x000001d6,0x000001cf,0x0004003d,0x00000006,
|
||||
0x000001d7,0x00000014,0x000500b1,0x000000aa,0x000001d8,0x000001d6,0x000001d7,0x000300f7,
|
||||
0x000001da,0x00000000,0x000400fa,0x000001d8,0x000001d9,0x000001da,0x000200f8,0x000001d9,
|
||||
0x0003003e,0x000001db,0x0000006d,0x000200f9,0x000001dc,0x000200f8,0x000001dc,0x000400f6,
|
||||
0x000001de,0x000001df,0x00000000,0x000200f9,0x000001e0,0x000200f8,0x000001e0,0x0004003d,
|
||||
0x00000006,0x000001e1,0x000001db,0x000500b1,0x000000aa,0x000001e2,0x000001e1,0x000000a0,
|
||||
0x000400fa,0x000001e2,0x000001dd,0x000001de,0x000200f8,0x000001dd,0x0004003d,0x00000006,
|
||||
0x000001e4,0x0000001c,0x0004003d,0x00000006,0x000001e5,0x0000002e,0x00050084,0x00000006,
|
||||
0x000001e6,0x000001e5,0x000000a0,0x00050080,0x00000006,0x000001e7,0x000001e4,0x000001e6,
|
||||
0x0004003d,0x00000006,0x000001e8,0x000001db,0x00050080,0x00000006,0x000001e9,0x000001e7,
|
||||
0x000001e8,0x0003003e,0x000001e3,0x000001e9,0x0004003d,0x00000006,0x000001ea,0x000001e3,
|
||||
0x0004003d,0x00000006,0x000001eb,0x00000008,0x000500b1,0x000000aa,0x000001ec,0x000001ea,
|
||||
0x000001eb,0x000300f7,0x000001ee,0x00000000,0x000400fa,0x000001ec,0x000001ed,0x000001ee,
|
||||
0x000200f8,0x000001ed,0x0004003d,0x00000006,0x000001f3,0x00000085,0x0004003d,0x00000006,
|
||||
0x000001f4,0x000001e3,0x0004003d,0x00000006,0x000001f5,0x00000014,0x00050084,0x00000006,
|
||||
0x000001f6,0x000001f4,0x000001f5,0x00050080,0x00000006,0x000001f7,0x000001f3,0x000001f6,
|
||||
0x0004003d,0x00000006,0x000001f8,0x000001cf,0x00050080,0x00000006,0x000001f9,0x000001f7,
|
||||
0x000001f8,0x0004003d,0x00000006,0x000001fa,0x000001db,0x0004003d,0x00000006,0x000001fb,
|
||||
0x000001c7,0x00060041,0x00000158,0x000001fc,0x000000b1,0x000001fa,0x000001fb,0x0004003d,
|
||||
0x000000ac,0x000001fd,0x000001fc,0x00060041,0x000000ba,0x000001fe,0x000001f2,0x0000006d,
|
||||
0x000001f9,0x0003003e,0x000001fe,0x000001fd,0x000200f9,0x000001ee,0x000200f8,0x000001ee,
|
||||
0x000200f9,0x000001df,0x000200f8,0x000001df,0x0004003d,0x00000006,0x000001ff,0x000001db,
|
||||
0x00050080,0x00000006,0x00000200,0x000001ff,0x00000071,0x0003003e,0x000001db,0x00000200,
|
||||
0x000200f9,0x000001dc,0x000200f8,0x000001de,0x000200f9,0x000001da,0x000200f8,0x000001da,
|
||||
0x000200f9,0x000001cb,0x000200f8,0x000001cb,0x0004003d,0x00000006,0x00000201,0x000001c7,
|
||||
0x00050080,0x00000006,0x00000202,0x00000201,0x00000071,0x0003003e,0x000001c7,0x00000202,
|
||||
0x000200f9,0x000001c8,0x000200f8,0x000001ca,0x000100fd,0x00010038
|
||||
};
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -0,0 +1,125 @@
|
||||
#version 450
|
||||
|
||||
#define KSTRIP_LEN 16
|
||||
#define BLOCK_SIZE 64 // the output channel shoule be aligned to 64.
|
||||
#define WARP 32
|
||||
|
||||
#define ALL_THREAD 64
|
||||
|
||||
layout(binding = 0) readonly buffer Input0{
|
||||
float image_data[];
|
||||
};
|
||||
|
||||
layout(binding = 1) readonly buffer Input1 {
|
||||
float bias_data[];
|
||||
};
|
||||
|
||||
layout(binding = 2) readonly buffer Input2{
|
||||
float weight_data[];
|
||||
};
|
||||
|
||||
layout(binding = 3) writeonly buffer Output{
|
||||
float output_data[];
|
||||
};
|
||||
|
||||
layout(binding = 4) uniform pushBlock {
|
||||
int Hi; // H in
|
||||
int Wi; // W in
|
||||
int H0; // H out
|
||||
int W0; // W out
|
||||
int stride_h;
|
||||
int stride_w;
|
||||
int pad_h;
|
||||
int pad_w;
|
||||
int Hk;
|
||||
int Wk;
|
||||
int dilation_h;
|
||||
int dilation_w;
|
||||
int Kg;
|
||||
int Cg;
|
||||
int group;
|
||||
int CgHkWk_aligned;
|
||||
int activationType; // 0 : no activation, 1: ReLU, 2: ReLU6.
|
||||
int batchi;
|
||||
int _unused;
|
||||
} p;
|
||||
|
||||
shared float wshare[KSTRIP_LEN];
|
||||
shared float inshare[KSTRIP_LEN][BLOCK_SIZE]; // 2 KB
|
||||
|
||||
layout(local_size_x = ALL_THREAD, local_size_y = 1, local_size_z = 1) in;
|
||||
|
||||
void main()
|
||||
{
|
||||
int outputPlan = p.H0 * p.W0; // H0 * W0
|
||||
int HkWk = p.Hk * p.Wk;
|
||||
int KStrip = p.CgHkWk_aligned / KSTRIP_LEN;
|
||||
|
||||
int hwIndex = int(gl_WorkGroupID.x) * BLOCK_SIZE;
|
||||
int kIndex = int(gl_WorkGroupID.y);
|
||||
|
||||
int local_x = int(gl_LocalInvocationID.x); // 0 ~ 63
|
||||
|
||||
int w_local_x = int(gl_LocalInvocationID.x) % KSTRIP_LEN; // 64 % 32 = 0 ~ 31
|
||||
int w_local_y = int(gl_LocalInvocationID.x) / KSTRIP_LEN;
|
||||
|
||||
int in_local_x = local_x; // 64 / 64 = 1
|
||||
|
||||
int woffset = kIndex * p.CgHkWk_aligned + w_local_x;
|
||||
int inoffset = p.batchi * p.group * p.Hi * p.Wi;
|
||||
int outoffset = p.batchi * p.group * p.H0 * p.W0;
|
||||
|
||||
float sum = bias_data[kIndex];
|
||||
|
||||
for (int i = 0; i < KStrip; i++)
|
||||
{
|
||||
int kStrip = i * KSTRIP_LEN;
|
||||
|
||||
// load Weight to local memory.
|
||||
if (w_local_y == 0)
|
||||
wshare[w_local_x] = weight_data[woffset + kStrip];
|
||||
|
||||
// load Input to local memory
|
||||
for (int k = 0; k < KSTRIP_LEN; k++)
|
||||
{
|
||||
int hk = k / p.Wk;
|
||||
int wk = k - hk * p.Wk;
|
||||
int dh = hk * p.dilation_h, dw = wk * p.dilation_w;
|
||||
|
||||
int h0w0 = in_local_x + hwIndex;
|
||||
int h0 = h0w0 / p.W0;
|
||||
int w0 = h0w0 - h0 * p.W0;
|
||||
|
||||
int hi = h0 * p.stride_h + dh - p.pad_h;
|
||||
int wi = w0 * p.stride_w + dw - p.pad_w;
|
||||
|
||||
if (uint(hi) < uint(p.Hi) && uint(wi) < uint(p.Wi))
|
||||
inshare[k][in_local_x] = image_data[inoffset + hi * p.Wi + wi];
|
||||
else
|
||||
inshare[k][in_local_x] = 0.f;
|
||||
}
|
||||
|
||||
barrier();
|
||||
|
||||
for (int j = 0; j < KSTRIP_LEN; j++)
|
||||
{
|
||||
sum += wshare[j] * inshare[j][in_local_x];
|
||||
}
|
||||
|
||||
barrier();
|
||||
}
|
||||
|
||||
if (p.activationType == 1) // ReLU
|
||||
{
|
||||
sum = max(sum, 0.f);
|
||||
}
|
||||
else if (p.activationType == 2) // ReLU6
|
||||
{
|
||||
sum = clamp(sum, 0.f, 6.f);
|
||||
}
|
||||
|
||||
hwIndex += in_local_x;
|
||||
|
||||
if (hwIndex < outputPlan)
|
||||
output_data[outoffset + hwIndex] = sum;
|
||||
}
|
||||
@@ -0,0 +1,121 @@
|
||||
#version 450
|
||||
|
||||
// This kernel is made for generic convolution, but for depth-wise, it is very slow.
|
||||
|
||||
#define KSTRIP_LEN 16
|
||||
#define REAL_KSTRIP_LEN 9 // 3x3 kernel size.
|
||||
#define BLOCK_SIZE 64 // the output channel shoule be aligned to 64.
|
||||
#define WARP 32
|
||||
|
||||
#define ALL_THREAD 64
|
||||
|
||||
layout(binding = 0) readonly buffer Input0{
|
||||
float image_data[];
|
||||
};
|
||||
|
||||
layout(binding = 1) readonly buffer Input1 {
|
||||
float bias_data[];
|
||||
};
|
||||
|
||||
layout(binding = 2) readonly buffer Input2{
|
||||
float weight_data[];
|
||||
};
|
||||
|
||||
layout(binding = 3) writeonly buffer Output{
|
||||
float output_data[];
|
||||
};
|
||||
|
||||
layout(binding = 4) uniform pushBlock {
|
||||
int Hi; // H in
|
||||
int Wi; // W in
|
||||
int H0; // H out
|
||||
int W0; // W out
|
||||
int stride_h;
|
||||
int stride_w;
|
||||
int pad_h;
|
||||
int pad_w;
|
||||
int Hk;
|
||||
int Wk;
|
||||
int dilation_h;
|
||||
int dilation_w;
|
||||
int Kg;
|
||||
int Cg;
|
||||
int group;
|
||||
int CgHkWk_aligned;
|
||||
int activationType; // 0 : no activation, 1: ReLU, 2: ReLU6.
|
||||
int batchi;
|
||||
int _unused;
|
||||
} p;
|
||||
|
||||
shared float wshare[KSTRIP_LEN];
|
||||
shared float inshare[KSTRIP_LEN][BLOCK_SIZE]; // 2 KB
|
||||
|
||||
layout(local_size_x = ALL_THREAD, local_size_y = 1, local_size_z = 1) in;
|
||||
|
||||
void main()
|
||||
{
|
||||
int outputPlan = p.H0 * p.W0; // H0 * W0
|
||||
int HkWk = p.Hk * p.Wk;
|
||||
|
||||
int hwIndex = int(gl_WorkGroupID.x) * BLOCK_SIZE;
|
||||
int kIndex = int(gl_WorkGroupID.y);
|
||||
|
||||
int local_x = int(gl_LocalInvocationID.x); // 0 ~ 63
|
||||
|
||||
int w_local_x = int(gl_LocalInvocationID.x) % KSTRIP_LEN; // 64 % 32 = 0 ~ 31
|
||||
int w_local_y = int(gl_LocalInvocationID.x) / KSTRIP_LEN;
|
||||
|
||||
int in_local_x = local_x; // 64 / 64 = 1
|
||||
|
||||
int woffset = kIndex * p.CgHkWk_aligned + w_local_x;
|
||||
int inoffset = p.batchi * p.group * p.Hi * p.Wi;
|
||||
int outoffset = p.batchi * p.group * p.H0 * p.W0;
|
||||
|
||||
float sum = bias_data[kIndex];
|
||||
|
||||
// load Weight to local memory.
|
||||
if (w_local_y == 0)
|
||||
wshare[w_local_x] = weight_data[woffset];
|
||||
|
||||
for (int k = 0; k < REAL_KSTRIP_LEN; k++)
|
||||
{
|
||||
int hk = k / p.Wk;
|
||||
int wk = k - hk * p.Wk;
|
||||
int dh = hk * p.dilation_h, dw = wk * p.dilation_w;
|
||||
|
||||
int h0w0 = in_local_x + hwIndex;
|
||||
int h0 = h0w0 / p.W0;
|
||||
int w0 = h0w0 - h0 * p.W0;
|
||||
|
||||
int hi = h0 * p.stride_h + dh - p.pad_h;
|
||||
int wi = w0 * p.stride_w + dw - p.pad_w;
|
||||
|
||||
if (uint(hi) < uint(p.Hi) && uint(wi) < uint(p.Wi))
|
||||
inshare[k][in_local_x] = image_data[inoffset + hi * p.Wi + wi];
|
||||
else
|
||||
inshare[k][in_local_x] = 0.f;
|
||||
}
|
||||
|
||||
barrier();
|
||||
|
||||
for (int j = 0; j < REAL_KSTRIP_LEN; j++)
|
||||
{
|
||||
sum += wshare[j] * inshare[j][in_local_x];
|
||||
}
|
||||
|
||||
barrier();
|
||||
|
||||
if (p.activationType == 1) // ReLU
|
||||
{
|
||||
sum = max(sum, 0.f);
|
||||
}
|
||||
else if (p.activationType == 2) // ReLU6
|
||||
{
|
||||
sum = clamp(sum, 0.f, 6.f);
|
||||
}
|
||||
|
||||
hwIndex += in_local_x;
|
||||
|
||||
if (hwIndex < outputPlan)
|
||||
output_data[outoffset + hwIndex] = sum;
|
||||
}
|
||||
@@ -0,0 +1,260 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
extern const unsigned int conv_depthwise_3x3_spv[1977] = {
|
||||
0x07230203,0x00010000,0x0008000b,0x0000012f,0x00000000,0x00020011,0x00000001,0x0006000b,
|
||||
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
|
||||
0x0007000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000020,0x0000002e,0x00060010,
|
||||
0x00000004,0x00000011,0x00000040,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,
|
||||
0x00040005,0x00000004,0x6e69616d,0x00000000,0x00050005,0x00000008,0x7074756f,0x6c507475,
|
||||
0x00006e61,0x00050005,0x00000009,0x68737570,0x636f6c42,0x0000006b,0x00040006,0x00000009,
|
||||
0x00000000,0x00006948,0x00040006,0x00000009,0x00000001,0x00006957,0x00040006,0x00000009,
|
||||
0x00000002,0x00003048,0x00040006,0x00000009,0x00000003,0x00003057,0x00060006,0x00000009,
|
||||
0x00000004,0x69727473,0x685f6564,0x00000000,0x00060006,0x00000009,0x00000005,0x69727473,
|
||||
0x775f6564,0x00000000,0x00050006,0x00000009,0x00000006,0x5f646170,0x00000068,0x00050006,
|
||||
0x00000009,0x00000007,0x5f646170,0x00000077,0x00040006,0x00000009,0x00000008,0x00006b48,
|
||||
0x00040006,0x00000009,0x00000009,0x00006b57,0x00060006,0x00000009,0x0000000a,0x616c6964,
|
||||
0x6e6f6974,0x0000685f,0x00060006,0x00000009,0x0000000b,0x616c6964,0x6e6f6974,0x0000775f,
|
||||
0x00040006,0x00000009,0x0000000c,0x0000674b,0x00040006,0x00000009,0x0000000d,0x00006743,
|
||||
0x00050006,0x00000009,0x0000000e,0x756f7267,0x00000070,0x00070006,0x00000009,0x0000000f,
|
||||
0x6b486743,0x615f6b57,0x6e67696c,0x00006465,0x00070006,0x00000009,0x00000010,0x69746361,
|
||||
0x69746176,0x79546e6f,0x00006570,0x00050006,0x00000009,0x00000011,0x63746162,0x00006968,
|
||||
0x00050006,0x00000009,0x00000012,0x756e755f,0x00646573,0x00030005,0x0000000b,0x00000070,
|
||||
0x00040005,0x00000014,0x6b576b48,0x00000000,0x00040005,0x0000001c,0x6e497768,0x00786564,
|
||||
0x00060005,0x00000020,0x575f6c67,0x476b726f,0x70756f72,0x00004449,0x00040005,0x00000028,
|
||||
0x646e496b,0x00007865,0x00040005,0x0000002d,0x61636f6c,0x00785f6c,0x00080005,0x0000002e,
|
||||
0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163,0x44496e6f,0x00000000,0x00050005,0x00000032,
|
||||
0x6f6c5f77,0x5f6c6163,0x00000078,0x00050005,0x00000038,0x6f6c5f77,0x5f6c6163,0x00000079,
|
||||
0x00050005,0x0000003d,0x6c5f6e69,0x6c61636f,0x0000785f,0x00040005,0x0000003f,0x66666f77,
|
||||
0x00746573,0x00050005,0x00000047,0x666f6e69,0x74657366,0x00000000,0x00050005,0x00000057,
|
||||
0x6f74756f,0x65736666,0x00000074,0x00030005,0x00000065,0x006d7573,0x00040005,0x00000067,
|
||||
0x75706e49,0x00003174,0x00060006,0x00000067,0x00000000,0x73616962,0x7461645f,0x00000061,
|
||||
0x00030005,0x00000069,0x00000000,0x00040005,0x00000076,0x61687377,0x00006572,0x00040005,
|
||||
0x00000079,0x75706e49,0x00003274,0x00060006,0x00000079,0x00000000,0x67696577,0x645f7468,
|
||||
0x00617461,0x00030005,0x0000007b,0x00000000,0x00030005,0x00000081,0x0000006b,0x00030005,
|
||||
0x00000089,0x00006b68,0x00030005,0x0000008e,0x00006b77,0x00030005,0x00000095,0x00006864,
|
||||
0x00030005,0x0000009b,0x00007764,0x00040005,0x000000a1,0x30773068,0x00000000,0x00030005,
|
||||
0x000000a5,0x00003068,0x00030005,0x000000aa,0x00003077,0x00030005,0x000000b1,0x00006968,
|
||||
0x00030005,0x000000bd,0x00006977,0x00040005,0x000000de,0x68736e69,0x00657261,0x00040005,
|
||||
0x000000e2,0x75706e49,0x00003074,0x00060006,0x000000e2,0x00000000,0x67616d69,0x61645f65,
|
||||
0x00006174,0x00030005,0x000000e4,0x00000000,0x00030005,0x000000f9,0x0000006a,0x00040005,
|
||||
0x00000126,0x7074754f,0x00007475,0x00060006,0x00000126,0x00000000,0x7074756f,0x645f7475,
|
||||
0x00617461,0x00030005,0x00000128,0x00000000,0x00050048,0x00000009,0x00000000,0x00000023,
|
||||
0x00000000,0x00050048,0x00000009,0x00000001,0x00000023,0x00000004,0x00050048,0x00000009,
|
||||
0x00000002,0x00000023,0x00000008,0x00050048,0x00000009,0x00000003,0x00000023,0x0000000c,
|
||||
0x00050048,0x00000009,0x00000004,0x00000023,0x00000010,0x00050048,0x00000009,0x00000005,
|
||||
0x00000023,0x00000014,0x00050048,0x00000009,0x00000006,0x00000023,0x00000018,0x00050048,
|
||||
0x00000009,0x00000007,0x00000023,0x0000001c,0x00050048,0x00000009,0x00000008,0x00000023,
|
||||
0x00000020,0x00050048,0x00000009,0x00000009,0x00000023,0x00000024,0x00050048,0x00000009,
|
||||
0x0000000a,0x00000023,0x00000028,0x00050048,0x00000009,0x0000000b,0x00000023,0x0000002c,
|
||||
0x00050048,0x00000009,0x0000000c,0x00000023,0x00000030,0x00050048,0x00000009,0x0000000d,
|
||||
0x00000023,0x00000034,0x00050048,0x00000009,0x0000000e,0x00000023,0x00000038,0x00050048,
|
||||
0x00000009,0x0000000f,0x00000023,0x0000003c,0x00050048,0x00000009,0x00000010,0x00000023,
|
||||
0x00000040,0x00050048,0x00000009,0x00000011,0x00000023,0x00000044,0x00050048,0x00000009,
|
||||
0x00000012,0x00000023,0x00000048,0x00030047,0x00000009,0x00000002,0x00040047,0x0000000b,
|
||||
0x00000022,0x00000000,0x00040047,0x0000000b,0x00000021,0x00000004,0x00040047,0x00000020,
|
||||
0x0000000b,0x0000001a,0x00040047,0x0000002e,0x0000000b,0x0000001b,0x00040047,0x00000066,
|
||||
0x00000006,0x00000004,0x00040048,0x00000067,0x00000000,0x00000018,0x00050048,0x00000067,
|
||||
0x00000000,0x00000023,0x00000000,0x00030047,0x00000067,0x00000003,0x00040047,0x00000069,
|
||||
0x00000022,0x00000000,0x00040047,0x00000069,0x00000021,0x00000001,0x00040047,0x00000078,
|
||||
0x00000006,0x00000004,0x00040048,0x00000079,0x00000000,0x00000018,0x00050048,0x00000079,
|
||||
0x00000000,0x00000023,0x00000000,0x00030047,0x00000079,0x00000003,0x00040047,0x0000007b,
|
||||
0x00000022,0x00000000,0x00040047,0x0000007b,0x00000021,0x00000002,0x00040047,0x000000e1,
|
||||
0x00000006,0x00000004,0x00040048,0x000000e2,0x00000000,0x00000018,0x00050048,0x000000e2,
|
||||
0x00000000,0x00000023,0x00000000,0x00030047,0x000000e2,0x00000003,0x00040047,0x000000e4,
|
||||
0x00000022,0x00000000,0x00040047,0x000000e4,0x00000021,0x00000000,0x00040047,0x00000125,
|
||||
0x00000006,0x00000004,0x00040048,0x00000126,0x00000000,0x00000019,0x00050048,0x00000126,
|
||||
0x00000000,0x00000023,0x00000000,0x00030047,0x00000126,0x00000003,0x00040047,0x00000128,
|
||||
0x00000022,0x00000000,0x00040047,0x00000128,0x00000021,0x00000003,0x00040047,0x0000012e,
|
||||
0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,
|
||||
0x00000006,0x00000020,0x00000001,0x00040020,0x00000007,0x00000007,0x00000006,0x0015001e,
|
||||
0x00000009,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,
|
||||
0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,
|
||||
0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x0000000a,0x00000002,0x00000009,
|
||||
0x0004003b,0x0000000a,0x0000000b,0x00000002,0x0004002b,0x00000006,0x0000000c,0x00000002,
|
||||
0x00040020,0x0000000d,0x00000002,0x00000006,0x0004002b,0x00000006,0x00000010,0x00000003,
|
||||
0x0004002b,0x00000006,0x00000015,0x00000008,0x0004002b,0x00000006,0x00000018,0x00000009,
|
||||
0x00040015,0x0000001d,0x00000020,0x00000000,0x00040017,0x0000001e,0x0000001d,0x00000003,
|
||||
0x00040020,0x0000001f,0x00000001,0x0000001e,0x0004003b,0x0000001f,0x00000020,0x00000001,
|
||||
0x0004002b,0x0000001d,0x00000021,0x00000000,0x00040020,0x00000022,0x00000001,0x0000001d,
|
||||
0x0004002b,0x00000006,0x00000026,0x00000040,0x0004002b,0x0000001d,0x00000029,0x00000001,
|
||||
0x0004003b,0x0000001f,0x0000002e,0x00000001,0x0004002b,0x00000006,0x00000036,0x00000010,
|
||||
0x0004002b,0x00000006,0x00000041,0x0000000f,0x0004002b,0x00000006,0x00000048,0x00000011,
|
||||
0x0004002b,0x00000006,0x0000004b,0x0000000e,0x0004002b,0x00000006,0x0000004f,0x00000000,
|
||||
0x0004002b,0x00000006,0x00000053,0x00000001,0x00030016,0x00000063,0x00000020,0x00040020,
|
||||
0x00000064,0x00000007,0x00000063,0x0003001d,0x00000066,0x00000063,0x0003001e,0x00000067,
|
||||
0x00000066,0x00040020,0x00000068,0x00000002,0x00000067,0x0004003b,0x00000068,0x00000069,
|
||||
0x00000002,0x00040020,0x0000006b,0x00000002,0x00000063,0x00020014,0x0000006f,0x0004002b,
|
||||
0x0000001d,0x00000073,0x00000010,0x0004001c,0x00000074,0x00000063,0x00000073,0x00040020,
|
||||
0x00000075,0x00000004,0x00000074,0x0004003b,0x00000075,0x00000076,0x00000004,0x0003001d,
|
||||
0x00000078,0x00000063,0x0003001e,0x00000079,0x00000078,0x00040020,0x0000007a,0x00000002,
|
||||
0x00000079,0x0004003b,0x0000007a,0x0000007b,0x00000002,0x00040020,0x0000007f,0x00000004,
|
||||
0x00000063,0x0004002b,0x00000006,0x00000097,0x0000000a,0x0004002b,0x00000006,0x0000009d,
|
||||
0x0000000b,0x0004002b,0x00000006,0x000000b3,0x00000004,0x0004002b,0x00000006,0x000000b9,
|
||||
0x00000006,0x0004002b,0x00000006,0x000000bf,0x00000005,0x0004002b,0x00000006,0x000000c5,
|
||||
0x00000007,0x0004002b,0x0000001d,0x000000da,0x00000040,0x0004001c,0x000000db,0x00000063,
|
||||
0x000000da,0x0004001c,0x000000dc,0x000000db,0x00000073,0x00040020,0x000000dd,0x00000004,
|
||||
0x000000dc,0x0004003b,0x000000dd,0x000000de,0x00000004,0x0003001d,0x000000e1,0x00000063,
|
||||
0x0003001e,0x000000e2,0x000000e1,0x00040020,0x000000e3,0x00000002,0x000000e2,0x0004003b,
|
||||
0x000000e3,0x000000e4,0x00000002,0x0004002b,0x00000063,0x000000f3,0x00000000,0x0004002b,
|
||||
0x0000001d,0x000000f7,0x00000002,0x0004002b,0x0000001d,0x000000f8,0x00000108,0x0004002b,
|
||||
0x00000063,0x0000011b,0x40c00000,0x0003001d,0x00000125,0x00000063,0x0003001e,0x00000126,
|
||||
0x00000125,0x00040020,0x00000127,0x00000002,0x00000126,0x0004003b,0x00000127,0x00000128,
|
||||
0x00000002,0x0006002c,0x0000001e,0x0000012e,0x000000da,0x00000029,0x00000029,0x00050036,
|
||||
0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,
|
||||
0x00000008,0x00000007,0x0004003b,0x00000007,0x00000014,0x00000007,0x0004003b,0x00000007,
|
||||
0x0000001c,0x00000007,0x0004003b,0x00000007,0x00000028,0x00000007,0x0004003b,0x00000007,
|
||||
0x0000002d,0x00000007,0x0004003b,0x00000007,0x00000032,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000038,0x00000007,0x0004003b,0x00000007,0x0000003d,0x00000007,0x0004003b,0x00000007,
|
||||
0x0000003f,0x00000007,0x0004003b,0x00000007,0x00000047,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000057,0x00000007,0x0004003b,0x00000064,0x00000065,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000081,0x00000007,0x0004003b,0x00000007,0x00000089,0x00000007,0x0004003b,0x00000007,
|
||||
0x0000008e,0x00000007,0x0004003b,0x00000007,0x00000095,0x00000007,0x0004003b,0x00000007,
|
||||
0x0000009b,0x00000007,0x0004003b,0x00000007,0x000000a1,0x00000007,0x0004003b,0x00000007,
|
||||
0x000000a5,0x00000007,0x0004003b,0x00000007,0x000000aa,0x00000007,0x0004003b,0x00000007,
|
||||
0x000000b1,0x00000007,0x0004003b,0x00000007,0x000000bd,0x00000007,0x0004003b,0x00000007,
|
||||
0x000000f9,0x00000007,0x00050041,0x0000000d,0x0000000e,0x0000000b,0x0000000c,0x0004003d,
|
||||
0x00000006,0x0000000f,0x0000000e,0x00050041,0x0000000d,0x00000011,0x0000000b,0x00000010,
|
||||
0x0004003d,0x00000006,0x00000012,0x00000011,0x00050084,0x00000006,0x00000013,0x0000000f,
|
||||
0x00000012,0x0003003e,0x00000008,0x00000013,0x00050041,0x0000000d,0x00000016,0x0000000b,
|
||||
0x00000015,0x0004003d,0x00000006,0x00000017,0x00000016,0x00050041,0x0000000d,0x00000019,
|
||||
0x0000000b,0x00000018,0x0004003d,0x00000006,0x0000001a,0x00000019,0x00050084,0x00000006,
|
||||
0x0000001b,0x00000017,0x0000001a,0x0003003e,0x00000014,0x0000001b,0x00050041,0x00000022,
|
||||
0x00000023,0x00000020,0x00000021,0x0004003d,0x0000001d,0x00000024,0x00000023,0x0004007c,
|
||||
0x00000006,0x00000025,0x00000024,0x00050084,0x00000006,0x00000027,0x00000025,0x00000026,
|
||||
0x0003003e,0x0000001c,0x00000027,0x00050041,0x00000022,0x0000002a,0x00000020,0x00000029,
|
||||
0x0004003d,0x0000001d,0x0000002b,0x0000002a,0x0004007c,0x00000006,0x0000002c,0x0000002b,
|
||||
0x0003003e,0x00000028,0x0000002c,0x00050041,0x00000022,0x0000002f,0x0000002e,0x00000021,
|
||||
0x0004003d,0x0000001d,0x00000030,0x0000002f,0x0004007c,0x00000006,0x00000031,0x00000030,
|
||||
0x0003003e,0x0000002d,0x00000031,0x00050041,0x00000022,0x00000033,0x0000002e,0x00000021,
|
||||
0x0004003d,0x0000001d,0x00000034,0x00000033,0x0004007c,0x00000006,0x00000035,0x00000034,
|
||||
0x0005008b,0x00000006,0x00000037,0x00000035,0x00000036,0x0003003e,0x00000032,0x00000037,
|
||||
0x00050041,0x00000022,0x00000039,0x0000002e,0x00000021,0x0004003d,0x0000001d,0x0000003a,
|
||||
0x00000039,0x0004007c,0x00000006,0x0000003b,0x0000003a,0x00050087,0x00000006,0x0000003c,
|
||||
0x0000003b,0x00000036,0x0003003e,0x00000038,0x0000003c,0x0004003d,0x00000006,0x0000003e,
|
||||
0x0000002d,0x0003003e,0x0000003d,0x0000003e,0x0004003d,0x00000006,0x00000040,0x00000028,
|
||||
0x00050041,0x0000000d,0x00000042,0x0000000b,0x00000041,0x0004003d,0x00000006,0x00000043,
|
||||
0x00000042,0x00050084,0x00000006,0x00000044,0x00000040,0x00000043,0x0004003d,0x00000006,
|
||||
0x00000045,0x00000032,0x00050080,0x00000006,0x00000046,0x00000044,0x00000045,0x0003003e,
|
||||
0x0000003f,0x00000046,0x00050041,0x0000000d,0x00000049,0x0000000b,0x00000048,0x0004003d,
|
||||
0x00000006,0x0000004a,0x00000049,0x00050041,0x0000000d,0x0000004c,0x0000000b,0x0000004b,
|
||||
0x0004003d,0x00000006,0x0000004d,0x0000004c,0x00050084,0x00000006,0x0000004e,0x0000004a,
|
||||
0x0000004d,0x00050041,0x0000000d,0x00000050,0x0000000b,0x0000004f,0x0004003d,0x00000006,
|
||||
0x00000051,0x00000050,0x00050084,0x00000006,0x00000052,0x0000004e,0x00000051,0x00050041,
|
||||
0x0000000d,0x00000054,0x0000000b,0x00000053,0x0004003d,0x00000006,0x00000055,0x00000054,
|
||||
0x00050084,0x00000006,0x00000056,0x00000052,0x00000055,0x0003003e,0x00000047,0x00000056,
|
||||
0x00050041,0x0000000d,0x00000058,0x0000000b,0x00000048,0x0004003d,0x00000006,0x00000059,
|
||||
0x00000058,0x00050041,0x0000000d,0x0000005a,0x0000000b,0x0000004b,0x0004003d,0x00000006,
|
||||
0x0000005b,0x0000005a,0x00050084,0x00000006,0x0000005c,0x00000059,0x0000005b,0x00050041,
|
||||
0x0000000d,0x0000005d,0x0000000b,0x0000000c,0x0004003d,0x00000006,0x0000005e,0x0000005d,
|
||||
0x00050084,0x00000006,0x0000005f,0x0000005c,0x0000005e,0x00050041,0x0000000d,0x00000060,
|
||||
0x0000000b,0x00000010,0x0004003d,0x00000006,0x00000061,0x00000060,0x00050084,0x00000006,
|
||||
0x00000062,0x0000005f,0x00000061,0x0003003e,0x00000057,0x00000062,0x0004003d,0x00000006,
|
||||
0x0000006a,0x00000028,0x00060041,0x0000006b,0x0000006c,0x00000069,0x0000004f,0x0000006a,
|
||||
0x0004003d,0x00000063,0x0000006d,0x0000006c,0x0003003e,0x00000065,0x0000006d,0x0004003d,
|
||||
0x00000006,0x0000006e,0x00000038,0x000500aa,0x0000006f,0x00000070,0x0000006e,0x0000004f,
|
||||
0x000300f7,0x00000072,0x00000000,0x000400fa,0x00000070,0x00000071,0x00000072,0x000200f8,
|
||||
0x00000071,0x0004003d,0x00000006,0x00000077,0x00000032,0x0004003d,0x00000006,0x0000007c,
|
||||
0x0000003f,0x00060041,0x0000006b,0x0000007d,0x0000007b,0x0000004f,0x0000007c,0x0004003d,
|
||||
0x00000063,0x0000007e,0x0000007d,0x00050041,0x0000007f,0x00000080,0x00000076,0x00000077,
|
||||
0x0003003e,0x00000080,0x0000007e,0x000200f9,0x00000072,0x000200f8,0x00000072,0x0003003e,
|
||||
0x00000081,0x0000004f,0x000200f9,0x00000082,0x000200f8,0x00000082,0x000400f6,0x00000084,
|
||||
0x00000085,0x00000000,0x000200f9,0x00000086,0x000200f8,0x00000086,0x0004003d,0x00000006,
|
||||
0x00000087,0x00000081,0x000500b1,0x0000006f,0x00000088,0x00000087,0x00000018,0x000400fa,
|
||||
0x00000088,0x00000083,0x00000084,0x000200f8,0x00000083,0x0004003d,0x00000006,0x0000008a,
|
||||
0x00000081,0x00050041,0x0000000d,0x0000008b,0x0000000b,0x00000018,0x0004003d,0x00000006,
|
||||
0x0000008c,0x0000008b,0x00050087,0x00000006,0x0000008d,0x0000008a,0x0000008c,0x0003003e,
|
||||
0x00000089,0x0000008d,0x0004003d,0x00000006,0x0000008f,0x00000081,0x0004003d,0x00000006,
|
||||
0x00000090,0x00000089,0x00050041,0x0000000d,0x00000091,0x0000000b,0x00000018,0x0004003d,
|
||||
0x00000006,0x00000092,0x00000091,0x00050084,0x00000006,0x00000093,0x00000090,0x00000092,
|
||||
0x00050082,0x00000006,0x00000094,0x0000008f,0x00000093,0x0003003e,0x0000008e,0x00000094,
|
||||
0x0004003d,0x00000006,0x00000096,0x00000089,0x00050041,0x0000000d,0x00000098,0x0000000b,
|
||||
0x00000097,0x0004003d,0x00000006,0x00000099,0x00000098,0x00050084,0x00000006,0x0000009a,
|
||||
0x00000096,0x00000099,0x0003003e,0x00000095,0x0000009a,0x0004003d,0x00000006,0x0000009c,
|
||||
0x0000008e,0x00050041,0x0000000d,0x0000009e,0x0000000b,0x0000009d,0x0004003d,0x00000006,
|
||||
0x0000009f,0x0000009e,0x00050084,0x00000006,0x000000a0,0x0000009c,0x0000009f,0x0003003e,
|
||||
0x0000009b,0x000000a0,0x0004003d,0x00000006,0x000000a2,0x0000003d,0x0004003d,0x00000006,
|
||||
0x000000a3,0x0000001c,0x00050080,0x00000006,0x000000a4,0x000000a2,0x000000a3,0x0003003e,
|
||||
0x000000a1,0x000000a4,0x0004003d,0x00000006,0x000000a6,0x000000a1,0x00050041,0x0000000d,
|
||||
0x000000a7,0x0000000b,0x00000010,0x0004003d,0x00000006,0x000000a8,0x000000a7,0x00050087,
|
||||
0x00000006,0x000000a9,0x000000a6,0x000000a8,0x0003003e,0x000000a5,0x000000a9,0x0004003d,
|
||||
0x00000006,0x000000ab,0x000000a1,0x0004003d,0x00000006,0x000000ac,0x000000a5,0x00050041,
|
||||
0x0000000d,0x000000ad,0x0000000b,0x00000010,0x0004003d,0x00000006,0x000000ae,0x000000ad,
|
||||
0x00050084,0x00000006,0x000000af,0x000000ac,0x000000ae,0x00050082,0x00000006,0x000000b0,
|
||||
0x000000ab,0x000000af,0x0003003e,0x000000aa,0x000000b0,0x0004003d,0x00000006,0x000000b2,
|
||||
0x000000a5,0x00050041,0x0000000d,0x000000b4,0x0000000b,0x000000b3,0x0004003d,0x00000006,
|
||||
0x000000b5,0x000000b4,0x00050084,0x00000006,0x000000b6,0x000000b2,0x000000b5,0x0004003d,
|
||||
0x00000006,0x000000b7,0x00000095,0x00050080,0x00000006,0x000000b8,0x000000b6,0x000000b7,
|
||||
0x00050041,0x0000000d,0x000000ba,0x0000000b,0x000000b9,0x0004003d,0x00000006,0x000000bb,
|
||||
0x000000ba,0x00050082,0x00000006,0x000000bc,0x000000b8,0x000000bb,0x0003003e,0x000000b1,
|
||||
0x000000bc,0x0004003d,0x00000006,0x000000be,0x000000aa,0x00050041,0x0000000d,0x000000c0,
|
||||
0x0000000b,0x000000bf,0x0004003d,0x00000006,0x000000c1,0x000000c0,0x00050084,0x00000006,
|
||||
0x000000c2,0x000000be,0x000000c1,0x0004003d,0x00000006,0x000000c3,0x0000009b,0x00050080,
|
||||
0x00000006,0x000000c4,0x000000c2,0x000000c3,0x00050041,0x0000000d,0x000000c6,0x0000000b,
|
||||
0x000000c5,0x0004003d,0x00000006,0x000000c7,0x000000c6,0x00050082,0x00000006,0x000000c8,
|
||||
0x000000c4,0x000000c7,0x0003003e,0x000000bd,0x000000c8,0x0004003d,0x00000006,0x000000c9,
|
||||
0x000000b1,0x0004007c,0x0000001d,0x000000ca,0x000000c9,0x00050041,0x0000000d,0x000000cb,
|
||||
0x0000000b,0x0000004f,0x0004003d,0x00000006,0x000000cc,0x000000cb,0x0004007c,0x0000001d,
|
||||
0x000000cd,0x000000cc,0x000500b0,0x0000006f,0x000000ce,0x000000ca,0x000000cd,0x000300f7,
|
||||
0x000000d0,0x00000000,0x000400fa,0x000000ce,0x000000cf,0x000000d0,0x000200f8,0x000000cf,
|
||||
0x0004003d,0x00000006,0x000000d1,0x000000bd,0x0004007c,0x0000001d,0x000000d2,0x000000d1,
|
||||
0x00050041,0x0000000d,0x000000d3,0x0000000b,0x00000053,0x0004003d,0x00000006,0x000000d4,
|
||||
0x000000d3,0x0004007c,0x0000001d,0x000000d5,0x000000d4,0x000500b0,0x0000006f,0x000000d6,
|
||||
0x000000d2,0x000000d5,0x000200f9,0x000000d0,0x000200f8,0x000000d0,0x000700f5,0x0000006f,
|
||||
0x000000d7,0x000000ce,0x00000083,0x000000d6,0x000000cf,0x000300f7,0x000000d9,0x00000000,
|
||||
0x000400fa,0x000000d7,0x000000d8,0x000000f0,0x000200f8,0x000000d8,0x0004003d,0x00000006,
|
||||
0x000000df,0x00000081,0x0004003d,0x00000006,0x000000e0,0x0000003d,0x0004003d,0x00000006,
|
||||
0x000000e5,0x00000047,0x0004003d,0x00000006,0x000000e6,0x000000b1,0x00050041,0x0000000d,
|
||||
0x000000e7,0x0000000b,0x00000053,0x0004003d,0x00000006,0x000000e8,0x000000e7,0x00050084,
|
||||
0x00000006,0x000000e9,0x000000e6,0x000000e8,0x00050080,0x00000006,0x000000ea,0x000000e5,
|
||||
0x000000e9,0x0004003d,0x00000006,0x000000eb,0x000000bd,0x00050080,0x00000006,0x000000ec,
|
||||
0x000000ea,0x000000eb,0x00060041,0x0000006b,0x000000ed,0x000000e4,0x0000004f,0x000000ec,
|
||||
0x0004003d,0x00000063,0x000000ee,0x000000ed,0x00060041,0x0000007f,0x000000ef,0x000000de,
|
||||
0x000000df,0x000000e0,0x0003003e,0x000000ef,0x000000ee,0x000200f9,0x000000d9,0x000200f8,
|
||||
0x000000f0,0x0004003d,0x00000006,0x000000f1,0x00000081,0x0004003d,0x00000006,0x000000f2,
|
||||
0x0000003d,0x00060041,0x0000007f,0x000000f4,0x000000de,0x000000f1,0x000000f2,0x0003003e,
|
||||
0x000000f4,0x000000f3,0x000200f9,0x000000d9,0x000200f8,0x000000d9,0x000200f9,0x00000085,
|
||||
0x000200f8,0x00000085,0x0004003d,0x00000006,0x000000f5,0x00000081,0x00050080,0x00000006,
|
||||
0x000000f6,0x000000f5,0x00000053,0x0003003e,0x00000081,0x000000f6,0x000200f9,0x00000082,
|
||||
0x000200f8,0x00000084,0x000400e0,0x000000f7,0x000000f7,0x000000f8,0x0003003e,0x000000f9,
|
||||
0x0000004f,0x000200f9,0x000000fa,0x000200f8,0x000000fa,0x000400f6,0x000000fc,0x000000fd,
|
||||
0x00000000,0x000200f9,0x000000fe,0x000200f8,0x000000fe,0x0004003d,0x00000006,0x000000ff,
|
||||
0x000000f9,0x000500b1,0x0000006f,0x00000100,0x000000ff,0x00000018,0x000400fa,0x00000100,
|
||||
0x000000fb,0x000000fc,0x000200f8,0x000000fb,0x0004003d,0x00000006,0x00000101,0x000000f9,
|
||||
0x00050041,0x0000007f,0x00000102,0x00000076,0x00000101,0x0004003d,0x00000063,0x00000103,
|
||||
0x00000102,0x0004003d,0x00000006,0x00000104,0x000000f9,0x0004003d,0x00000006,0x00000105,
|
||||
0x0000003d,0x00060041,0x0000007f,0x00000106,0x000000de,0x00000104,0x00000105,0x0004003d,
|
||||
0x00000063,0x00000107,0x00000106,0x00050085,0x00000063,0x00000108,0x00000103,0x00000107,
|
||||
0x0004003d,0x00000063,0x00000109,0x00000065,0x00050081,0x00000063,0x0000010a,0x00000109,
|
||||
0x00000108,0x0003003e,0x00000065,0x0000010a,0x000200f9,0x000000fd,0x000200f8,0x000000fd,
|
||||
0x0004003d,0x00000006,0x0000010b,0x000000f9,0x00050080,0x00000006,0x0000010c,0x0000010b,
|
||||
0x00000053,0x0003003e,0x000000f9,0x0000010c,0x000200f9,0x000000fa,0x000200f8,0x000000fc,
|
||||
0x000400e0,0x000000f7,0x000000f7,0x000000f8,0x00050041,0x0000000d,0x0000010d,0x0000000b,
|
||||
0x00000036,0x0004003d,0x00000006,0x0000010e,0x0000010d,0x000500aa,0x0000006f,0x0000010f,
|
||||
0x0000010e,0x00000053,0x000300f7,0x00000111,0x00000000,0x000400fa,0x0000010f,0x00000110,
|
||||
0x00000114,0x000200f8,0x00000110,0x0004003d,0x00000063,0x00000112,0x00000065,0x0007000c,
|
||||
0x00000063,0x00000113,0x00000001,0x00000028,0x00000112,0x000000f3,0x0003003e,0x00000065,
|
||||
0x00000113,0x000200f9,0x00000111,0x000200f8,0x00000114,0x00050041,0x0000000d,0x00000115,
|
||||
0x0000000b,0x00000036,0x0004003d,0x00000006,0x00000116,0x00000115,0x000500aa,0x0000006f,
|
||||
0x00000117,0x00000116,0x0000000c,0x000300f7,0x00000119,0x00000000,0x000400fa,0x00000117,
|
||||
0x00000118,0x00000119,0x000200f8,0x00000118,0x0004003d,0x00000063,0x0000011a,0x00000065,
|
||||
0x0008000c,0x00000063,0x0000011c,0x00000001,0x0000002b,0x0000011a,0x000000f3,0x0000011b,
|
||||
0x0003003e,0x00000065,0x0000011c,0x000200f9,0x00000119,0x000200f8,0x00000119,0x000200f9,
|
||||
0x00000111,0x000200f8,0x00000111,0x0004003d,0x00000006,0x0000011d,0x0000003d,0x0004003d,
|
||||
0x00000006,0x0000011e,0x0000001c,0x00050080,0x00000006,0x0000011f,0x0000011e,0x0000011d,
|
||||
0x0003003e,0x0000001c,0x0000011f,0x0004003d,0x00000006,0x00000120,0x0000001c,0x0004003d,
|
||||
0x00000006,0x00000121,0x00000008,0x000500b1,0x0000006f,0x00000122,0x00000120,0x00000121,
|
||||
0x000300f7,0x00000124,0x00000000,0x000400fa,0x00000122,0x00000123,0x00000124,0x000200f8,
|
||||
0x00000123,0x0004003d,0x00000006,0x00000129,0x00000057,0x0004003d,0x00000006,0x0000012a,
|
||||
0x0000001c,0x00050080,0x00000006,0x0000012b,0x00000129,0x0000012a,0x0004003d,0x00000063,
|
||||
0x0000012c,0x00000065,0x00060041,0x0000006b,0x0000012d,0x00000128,0x0000004f,0x0000012b,
|
||||
0x0003003e,0x0000012d,0x0000012c,0x000200f9,0x00000124,0x000200f8,0x00000124,0x000100fd,
|
||||
0x00010038
|
||||
};
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -0,0 +1,274 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
extern const unsigned int conv_depthwise_spv[2092] = {
|
||||
0x07230203,0x00010000,0x0008000b,0x00000143,0x00000000,0x00020011,0x00000001,0x0006000b,
|
||||
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
|
||||
0x0007000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000026,0x00000034,0x00060010,
|
||||
0x00000004,0x00000011,0x00000040,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,
|
||||
0x00040005,0x00000004,0x6e69616d,0x00000000,0x00050005,0x00000008,0x7074756f,0x6c507475,
|
||||
0x00006e61,0x00050005,0x00000009,0x68737570,0x636f6c42,0x0000006b,0x00040006,0x00000009,
|
||||
0x00000000,0x00006948,0x00040006,0x00000009,0x00000001,0x00006957,0x00040006,0x00000009,
|
||||
0x00000002,0x00003048,0x00040006,0x00000009,0x00000003,0x00003057,0x00060006,0x00000009,
|
||||
0x00000004,0x69727473,0x685f6564,0x00000000,0x00060006,0x00000009,0x00000005,0x69727473,
|
||||
0x775f6564,0x00000000,0x00050006,0x00000009,0x00000006,0x5f646170,0x00000068,0x00050006,
|
||||
0x00000009,0x00000007,0x5f646170,0x00000077,0x00040006,0x00000009,0x00000008,0x00006b48,
|
||||
0x00040006,0x00000009,0x00000009,0x00006b57,0x00060006,0x00000009,0x0000000a,0x616c6964,
|
||||
0x6e6f6974,0x0000685f,0x00060006,0x00000009,0x0000000b,0x616c6964,0x6e6f6974,0x0000775f,
|
||||
0x00040006,0x00000009,0x0000000c,0x0000674b,0x00040006,0x00000009,0x0000000d,0x00006743,
|
||||
0x00050006,0x00000009,0x0000000e,0x756f7267,0x00000070,0x00070006,0x00000009,0x0000000f,
|
||||
0x6b486743,0x615f6b57,0x6e67696c,0x00006465,0x00070006,0x00000009,0x00000010,0x69746361,
|
||||
0x69746176,0x79546e6f,0x00006570,0x00050006,0x00000009,0x00000011,0x63746162,0x00006968,
|
||||
0x00050006,0x00000009,0x00000012,0x756e755f,0x00646573,0x00030005,0x0000000b,0x00000070,
|
||||
0x00040005,0x00000014,0x6b576b48,0x00000000,0x00040005,0x0000001c,0x7274534b,0x00007069,
|
||||
0x00040005,0x00000022,0x6e497768,0x00786564,0x00060005,0x00000026,0x575f6c67,0x476b726f,
|
||||
0x70756f72,0x00004449,0x00040005,0x0000002e,0x646e496b,0x00007865,0x00040005,0x00000033,
|
||||
0x61636f6c,0x00785f6c,0x00080005,0x00000034,0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163,
|
||||
0x44496e6f,0x00000000,0x00050005,0x00000038,0x6f6c5f77,0x5f6c6163,0x00000078,0x00050005,
|
||||
0x0000003d,0x6f6c5f77,0x5f6c6163,0x00000079,0x00050005,0x00000042,0x6c5f6e69,0x6c61636f,
|
||||
0x0000785f,0x00040005,0x00000044,0x66666f77,0x00746573,0x00050005,0x0000004b,0x666f6e69,
|
||||
0x74657366,0x00000000,0x00050005,0x0000005b,0x6f74756f,0x65736666,0x00000074,0x00030005,
|
||||
0x00000069,0x006d7573,0x00040005,0x0000006b,0x75706e49,0x00003174,0x00060006,0x0000006b,
|
||||
0x00000000,0x73616962,0x7461645f,0x00000061,0x00030005,0x0000006d,0x00000000,0x00030005,
|
||||
0x00000072,0x00000069,0x00040005,0x0000007c,0x7274536b,0x00007069,0x00040005,0x00000086,
|
||||
0x61687377,0x00006572,0x00040005,0x00000089,0x75706e49,0x00003274,0x00060006,0x00000089,
|
||||
0x00000000,0x67696577,0x645f7468,0x00617461,0x00030005,0x0000008b,0x00000000,0x00030005,
|
||||
0x00000093,0x0000006b,0x00030005,0x0000009b,0x00006b68,0x00030005,0x000000a0,0x00006b77,
|
||||
0x00030005,0x000000a7,0x00006864,0x00030005,0x000000ad,0x00007764,0x00040005,0x000000b3,
|
||||
0x30773068,0x00000000,0x00030005,0x000000b7,0x00003068,0x00030005,0x000000bc,0x00003077,
|
||||
0x00030005,0x000000c3,0x00006968,0x00030005,0x000000cf,0x00006977,0x00040005,0x000000f0,
|
||||
0x68736e69,0x00657261,0x00040005,0x000000f4,0x75706e49,0x00003074,0x00060006,0x000000f4,
|
||||
0x00000000,0x67616d69,0x61645f65,0x00006174,0x00030005,0x000000f6,0x00000000,0x00030005,
|
||||
0x0000010b,0x0000006a,0x00040005,0x0000013a,0x7074754f,0x00007475,0x00060006,0x0000013a,
|
||||
0x00000000,0x7074756f,0x645f7475,0x00617461,0x00030005,0x0000013c,0x00000000,0x00050048,
|
||||
0x00000009,0x00000000,0x00000023,0x00000000,0x00050048,0x00000009,0x00000001,0x00000023,
|
||||
0x00000004,0x00050048,0x00000009,0x00000002,0x00000023,0x00000008,0x00050048,0x00000009,
|
||||
0x00000003,0x00000023,0x0000000c,0x00050048,0x00000009,0x00000004,0x00000023,0x00000010,
|
||||
0x00050048,0x00000009,0x00000005,0x00000023,0x00000014,0x00050048,0x00000009,0x00000006,
|
||||
0x00000023,0x00000018,0x00050048,0x00000009,0x00000007,0x00000023,0x0000001c,0x00050048,
|
||||
0x00000009,0x00000008,0x00000023,0x00000020,0x00050048,0x00000009,0x00000009,0x00000023,
|
||||
0x00000024,0x00050048,0x00000009,0x0000000a,0x00000023,0x00000028,0x00050048,0x00000009,
|
||||
0x0000000b,0x00000023,0x0000002c,0x00050048,0x00000009,0x0000000c,0x00000023,0x00000030,
|
||||
0x00050048,0x00000009,0x0000000d,0x00000023,0x00000034,0x00050048,0x00000009,0x0000000e,
|
||||
0x00000023,0x00000038,0x00050048,0x00000009,0x0000000f,0x00000023,0x0000003c,0x00050048,
|
||||
0x00000009,0x00000010,0x00000023,0x00000040,0x00050048,0x00000009,0x00000011,0x00000023,
|
||||
0x00000044,0x00050048,0x00000009,0x00000012,0x00000023,0x00000048,0x00030047,0x00000009,
|
||||
0x00000002,0x00040047,0x0000000b,0x00000022,0x00000000,0x00040047,0x0000000b,0x00000021,
|
||||
0x00000004,0x00040047,0x00000026,0x0000000b,0x0000001a,0x00040047,0x00000034,0x0000000b,
|
||||
0x0000001b,0x00040047,0x0000006a,0x00000006,0x00000004,0x00040048,0x0000006b,0x00000000,
|
||||
0x00000018,0x00050048,0x0000006b,0x00000000,0x00000023,0x00000000,0x00030047,0x0000006b,
|
||||
0x00000003,0x00040047,0x0000006d,0x00000022,0x00000000,0x00040047,0x0000006d,0x00000021,
|
||||
0x00000001,0x00040047,0x00000088,0x00000006,0x00000004,0x00040048,0x00000089,0x00000000,
|
||||
0x00000018,0x00050048,0x00000089,0x00000000,0x00000023,0x00000000,0x00030047,0x00000089,
|
||||
0x00000003,0x00040047,0x0000008b,0x00000022,0x00000000,0x00040047,0x0000008b,0x00000021,
|
||||
0x00000002,0x00040047,0x000000f3,0x00000006,0x00000004,0x00040048,0x000000f4,0x00000000,
|
||||
0x00000018,0x00050048,0x000000f4,0x00000000,0x00000023,0x00000000,0x00030047,0x000000f4,
|
||||
0x00000003,0x00040047,0x000000f6,0x00000022,0x00000000,0x00040047,0x000000f6,0x00000021,
|
||||
0x00000000,0x00040047,0x00000139,0x00000006,0x00000004,0x00040048,0x0000013a,0x00000000,
|
||||
0x00000019,0x00050048,0x0000013a,0x00000000,0x00000023,0x00000000,0x00030047,0x0000013a,
|
||||
0x00000003,0x00040047,0x0000013c,0x00000022,0x00000000,0x00040047,0x0000013c,0x00000021,
|
||||
0x00000003,0x00040047,0x00000142,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,
|
||||
0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000001,0x00040020,0x00000007,
|
||||
0x00000007,0x00000006,0x0015001e,0x00000009,0x00000006,0x00000006,0x00000006,0x00000006,
|
||||
0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,
|
||||
0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,
|
||||
0x0000000a,0x00000002,0x00000009,0x0004003b,0x0000000a,0x0000000b,0x00000002,0x0004002b,
|
||||
0x00000006,0x0000000c,0x00000002,0x00040020,0x0000000d,0x00000002,0x00000006,0x0004002b,
|
||||
0x00000006,0x00000010,0x00000003,0x0004002b,0x00000006,0x00000015,0x00000008,0x0004002b,
|
||||
0x00000006,0x00000018,0x00000009,0x0004002b,0x00000006,0x0000001d,0x0000000f,0x0004002b,
|
||||
0x00000006,0x00000020,0x00000010,0x00040015,0x00000023,0x00000020,0x00000000,0x00040017,
|
||||
0x00000024,0x00000023,0x00000003,0x00040020,0x00000025,0x00000001,0x00000024,0x0004003b,
|
||||
0x00000025,0x00000026,0x00000001,0x0004002b,0x00000023,0x00000027,0x00000000,0x00040020,
|
||||
0x00000028,0x00000001,0x00000023,0x0004002b,0x00000006,0x0000002c,0x00000040,0x0004002b,
|
||||
0x00000023,0x0000002f,0x00000001,0x0004003b,0x00000025,0x00000034,0x00000001,0x0004002b,
|
||||
0x00000006,0x0000004c,0x00000011,0x0004002b,0x00000006,0x0000004f,0x0000000e,0x0004002b,
|
||||
0x00000006,0x00000053,0x00000000,0x0004002b,0x00000006,0x00000057,0x00000001,0x00030016,
|
||||
0x00000067,0x00000020,0x00040020,0x00000068,0x00000007,0x00000067,0x0003001d,0x0000006a,
|
||||
0x00000067,0x0003001e,0x0000006b,0x0000006a,0x00040020,0x0000006c,0x00000002,0x0000006b,
|
||||
0x0004003b,0x0000006c,0x0000006d,0x00000002,0x00040020,0x0000006f,0x00000002,0x00000067,
|
||||
0x00020014,0x0000007a,0x0004002b,0x00000023,0x00000083,0x00000010,0x0004001c,0x00000084,
|
||||
0x00000067,0x00000083,0x00040020,0x00000085,0x00000004,0x00000084,0x0004003b,0x00000085,
|
||||
0x00000086,0x00000004,0x0003001d,0x00000088,0x00000067,0x0003001e,0x00000089,0x00000088,
|
||||
0x00040020,0x0000008a,0x00000002,0x00000089,0x0004003b,0x0000008a,0x0000008b,0x00000002,
|
||||
0x00040020,0x00000091,0x00000004,0x00000067,0x0004002b,0x00000006,0x000000a9,0x0000000a,
|
||||
0x0004002b,0x00000006,0x000000af,0x0000000b,0x0004002b,0x00000006,0x000000c5,0x00000004,
|
||||
0x0004002b,0x00000006,0x000000cb,0x00000006,0x0004002b,0x00000006,0x000000d1,0x00000005,
|
||||
0x0004002b,0x00000006,0x000000d7,0x00000007,0x0004002b,0x00000023,0x000000ec,0x00000040,
|
||||
0x0004001c,0x000000ed,0x00000067,0x000000ec,0x0004001c,0x000000ee,0x000000ed,0x00000083,
|
||||
0x00040020,0x000000ef,0x00000004,0x000000ee,0x0004003b,0x000000ef,0x000000f0,0x00000004,
|
||||
0x0003001d,0x000000f3,0x00000067,0x0003001e,0x000000f4,0x000000f3,0x00040020,0x000000f5,
|
||||
0x00000002,0x000000f4,0x0004003b,0x000000f5,0x000000f6,0x00000002,0x0004002b,0x00000067,
|
||||
0x00000105,0x00000000,0x0004002b,0x00000023,0x00000109,0x00000002,0x0004002b,0x00000023,
|
||||
0x0000010a,0x00000108,0x0004002b,0x00000067,0x0000012f,0x40c00000,0x0003001d,0x00000139,
|
||||
0x00000067,0x0003001e,0x0000013a,0x00000139,0x00040020,0x0000013b,0x00000002,0x0000013a,
|
||||
0x0004003b,0x0000013b,0x0000013c,0x00000002,0x0006002c,0x00000024,0x00000142,0x000000ec,
|
||||
0x0000002f,0x0000002f,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,
|
||||
0x00000005,0x0004003b,0x00000007,0x00000008,0x00000007,0x0004003b,0x00000007,0x00000014,
|
||||
0x00000007,0x0004003b,0x00000007,0x0000001c,0x00000007,0x0004003b,0x00000007,0x00000022,
|
||||
0x00000007,0x0004003b,0x00000007,0x0000002e,0x00000007,0x0004003b,0x00000007,0x00000033,
|
||||
0x00000007,0x0004003b,0x00000007,0x00000038,0x00000007,0x0004003b,0x00000007,0x0000003d,
|
||||
0x00000007,0x0004003b,0x00000007,0x00000042,0x00000007,0x0004003b,0x00000007,0x00000044,
|
||||
0x00000007,0x0004003b,0x00000007,0x0000004b,0x00000007,0x0004003b,0x00000007,0x0000005b,
|
||||
0x00000007,0x0004003b,0x00000068,0x00000069,0x00000007,0x0004003b,0x00000007,0x00000072,
|
||||
0x00000007,0x0004003b,0x00000007,0x0000007c,0x00000007,0x0004003b,0x00000007,0x00000093,
|
||||
0x00000007,0x0004003b,0x00000007,0x0000009b,0x00000007,0x0004003b,0x00000007,0x000000a0,
|
||||
0x00000007,0x0004003b,0x00000007,0x000000a7,0x00000007,0x0004003b,0x00000007,0x000000ad,
|
||||
0x00000007,0x0004003b,0x00000007,0x000000b3,0x00000007,0x0004003b,0x00000007,0x000000b7,
|
||||
0x00000007,0x0004003b,0x00000007,0x000000bc,0x00000007,0x0004003b,0x00000007,0x000000c3,
|
||||
0x00000007,0x0004003b,0x00000007,0x000000cf,0x00000007,0x0004003b,0x00000007,0x0000010b,
|
||||
0x00000007,0x00050041,0x0000000d,0x0000000e,0x0000000b,0x0000000c,0x0004003d,0x00000006,
|
||||
0x0000000f,0x0000000e,0x00050041,0x0000000d,0x00000011,0x0000000b,0x00000010,0x0004003d,
|
||||
0x00000006,0x00000012,0x00000011,0x00050084,0x00000006,0x00000013,0x0000000f,0x00000012,
|
||||
0x0003003e,0x00000008,0x00000013,0x00050041,0x0000000d,0x00000016,0x0000000b,0x00000015,
|
||||
0x0004003d,0x00000006,0x00000017,0x00000016,0x00050041,0x0000000d,0x00000019,0x0000000b,
|
||||
0x00000018,0x0004003d,0x00000006,0x0000001a,0x00000019,0x00050084,0x00000006,0x0000001b,
|
||||
0x00000017,0x0000001a,0x0003003e,0x00000014,0x0000001b,0x00050041,0x0000000d,0x0000001e,
|
||||
0x0000000b,0x0000001d,0x0004003d,0x00000006,0x0000001f,0x0000001e,0x00050087,0x00000006,
|
||||
0x00000021,0x0000001f,0x00000020,0x0003003e,0x0000001c,0x00000021,0x00050041,0x00000028,
|
||||
0x00000029,0x00000026,0x00000027,0x0004003d,0x00000023,0x0000002a,0x00000029,0x0004007c,
|
||||
0x00000006,0x0000002b,0x0000002a,0x00050084,0x00000006,0x0000002d,0x0000002b,0x0000002c,
|
||||
0x0003003e,0x00000022,0x0000002d,0x00050041,0x00000028,0x00000030,0x00000026,0x0000002f,
|
||||
0x0004003d,0x00000023,0x00000031,0x00000030,0x0004007c,0x00000006,0x00000032,0x00000031,
|
||||
0x0003003e,0x0000002e,0x00000032,0x00050041,0x00000028,0x00000035,0x00000034,0x00000027,
|
||||
0x0004003d,0x00000023,0x00000036,0x00000035,0x0004007c,0x00000006,0x00000037,0x00000036,
|
||||
0x0003003e,0x00000033,0x00000037,0x00050041,0x00000028,0x00000039,0x00000034,0x00000027,
|
||||
0x0004003d,0x00000023,0x0000003a,0x00000039,0x0004007c,0x00000006,0x0000003b,0x0000003a,
|
||||
0x0005008b,0x00000006,0x0000003c,0x0000003b,0x00000020,0x0003003e,0x00000038,0x0000003c,
|
||||
0x00050041,0x00000028,0x0000003e,0x00000034,0x00000027,0x0004003d,0x00000023,0x0000003f,
|
||||
0x0000003e,0x0004007c,0x00000006,0x00000040,0x0000003f,0x00050087,0x00000006,0x00000041,
|
||||
0x00000040,0x00000020,0x0003003e,0x0000003d,0x00000041,0x0004003d,0x00000006,0x00000043,
|
||||
0x00000033,0x0003003e,0x00000042,0x00000043,0x0004003d,0x00000006,0x00000045,0x0000002e,
|
||||
0x00050041,0x0000000d,0x00000046,0x0000000b,0x0000001d,0x0004003d,0x00000006,0x00000047,
|
||||
0x00000046,0x00050084,0x00000006,0x00000048,0x00000045,0x00000047,0x0004003d,0x00000006,
|
||||
0x00000049,0x00000038,0x00050080,0x00000006,0x0000004a,0x00000048,0x00000049,0x0003003e,
|
||||
0x00000044,0x0000004a,0x00050041,0x0000000d,0x0000004d,0x0000000b,0x0000004c,0x0004003d,
|
||||
0x00000006,0x0000004e,0x0000004d,0x00050041,0x0000000d,0x00000050,0x0000000b,0x0000004f,
|
||||
0x0004003d,0x00000006,0x00000051,0x00000050,0x00050084,0x00000006,0x00000052,0x0000004e,
|
||||
0x00000051,0x00050041,0x0000000d,0x00000054,0x0000000b,0x00000053,0x0004003d,0x00000006,
|
||||
0x00000055,0x00000054,0x00050084,0x00000006,0x00000056,0x00000052,0x00000055,0x00050041,
|
||||
0x0000000d,0x00000058,0x0000000b,0x00000057,0x0004003d,0x00000006,0x00000059,0x00000058,
|
||||
0x00050084,0x00000006,0x0000005a,0x00000056,0x00000059,0x0003003e,0x0000004b,0x0000005a,
|
||||
0x00050041,0x0000000d,0x0000005c,0x0000000b,0x0000004c,0x0004003d,0x00000006,0x0000005d,
|
||||
0x0000005c,0x00050041,0x0000000d,0x0000005e,0x0000000b,0x0000004f,0x0004003d,0x00000006,
|
||||
0x0000005f,0x0000005e,0x00050084,0x00000006,0x00000060,0x0000005d,0x0000005f,0x00050041,
|
||||
0x0000000d,0x00000061,0x0000000b,0x0000000c,0x0004003d,0x00000006,0x00000062,0x00000061,
|
||||
0x00050084,0x00000006,0x00000063,0x00000060,0x00000062,0x00050041,0x0000000d,0x00000064,
|
||||
0x0000000b,0x00000010,0x0004003d,0x00000006,0x00000065,0x00000064,0x00050084,0x00000006,
|
||||
0x00000066,0x00000063,0x00000065,0x0003003e,0x0000005b,0x00000066,0x0004003d,0x00000006,
|
||||
0x0000006e,0x0000002e,0x00060041,0x0000006f,0x00000070,0x0000006d,0x00000053,0x0000006e,
|
||||
0x0004003d,0x00000067,0x00000071,0x00000070,0x0003003e,0x00000069,0x00000071,0x0003003e,
|
||||
0x00000072,0x00000053,0x000200f9,0x00000073,0x000200f8,0x00000073,0x000400f6,0x00000075,
|
||||
0x00000076,0x00000000,0x000200f9,0x00000077,0x000200f8,0x00000077,0x0004003d,0x00000006,
|
||||
0x00000078,0x00000072,0x0004003d,0x00000006,0x00000079,0x0000001c,0x000500b1,0x0000007a,
|
||||
0x0000007b,0x00000078,0x00000079,0x000400fa,0x0000007b,0x00000074,0x00000075,0x000200f8,
|
||||
0x00000074,0x0004003d,0x00000006,0x0000007d,0x00000072,0x00050084,0x00000006,0x0000007e,
|
||||
0x0000007d,0x00000020,0x0003003e,0x0000007c,0x0000007e,0x0004003d,0x00000006,0x0000007f,
|
||||
0x0000003d,0x000500aa,0x0000007a,0x00000080,0x0000007f,0x00000053,0x000300f7,0x00000082,
|
||||
0x00000000,0x000400fa,0x00000080,0x00000081,0x00000082,0x000200f8,0x00000081,0x0004003d,
|
||||
0x00000006,0x00000087,0x00000038,0x0004003d,0x00000006,0x0000008c,0x00000044,0x0004003d,
|
||||
0x00000006,0x0000008d,0x0000007c,0x00050080,0x00000006,0x0000008e,0x0000008c,0x0000008d,
|
||||
0x00060041,0x0000006f,0x0000008f,0x0000008b,0x00000053,0x0000008e,0x0004003d,0x00000067,
|
||||
0x00000090,0x0000008f,0x00050041,0x00000091,0x00000092,0x00000086,0x00000087,0x0003003e,
|
||||
0x00000092,0x00000090,0x000200f9,0x00000082,0x000200f8,0x00000082,0x0003003e,0x00000093,
|
||||
0x00000053,0x000200f9,0x00000094,0x000200f8,0x00000094,0x000400f6,0x00000096,0x00000097,
|
||||
0x00000000,0x000200f9,0x00000098,0x000200f8,0x00000098,0x0004003d,0x00000006,0x00000099,
|
||||
0x00000093,0x000500b1,0x0000007a,0x0000009a,0x00000099,0x00000020,0x000400fa,0x0000009a,
|
||||
0x00000095,0x00000096,0x000200f8,0x00000095,0x0004003d,0x00000006,0x0000009c,0x00000093,
|
||||
0x00050041,0x0000000d,0x0000009d,0x0000000b,0x00000018,0x0004003d,0x00000006,0x0000009e,
|
||||
0x0000009d,0x00050087,0x00000006,0x0000009f,0x0000009c,0x0000009e,0x0003003e,0x0000009b,
|
||||
0x0000009f,0x0004003d,0x00000006,0x000000a1,0x00000093,0x0004003d,0x00000006,0x000000a2,
|
||||
0x0000009b,0x00050041,0x0000000d,0x000000a3,0x0000000b,0x00000018,0x0004003d,0x00000006,
|
||||
0x000000a4,0x000000a3,0x00050084,0x00000006,0x000000a5,0x000000a2,0x000000a4,0x00050082,
|
||||
0x00000006,0x000000a6,0x000000a1,0x000000a5,0x0003003e,0x000000a0,0x000000a6,0x0004003d,
|
||||
0x00000006,0x000000a8,0x0000009b,0x00050041,0x0000000d,0x000000aa,0x0000000b,0x000000a9,
|
||||
0x0004003d,0x00000006,0x000000ab,0x000000aa,0x00050084,0x00000006,0x000000ac,0x000000a8,
|
||||
0x000000ab,0x0003003e,0x000000a7,0x000000ac,0x0004003d,0x00000006,0x000000ae,0x000000a0,
|
||||
0x00050041,0x0000000d,0x000000b0,0x0000000b,0x000000af,0x0004003d,0x00000006,0x000000b1,
|
||||
0x000000b0,0x00050084,0x00000006,0x000000b2,0x000000ae,0x000000b1,0x0003003e,0x000000ad,
|
||||
0x000000b2,0x0004003d,0x00000006,0x000000b4,0x00000042,0x0004003d,0x00000006,0x000000b5,
|
||||
0x00000022,0x00050080,0x00000006,0x000000b6,0x000000b4,0x000000b5,0x0003003e,0x000000b3,
|
||||
0x000000b6,0x0004003d,0x00000006,0x000000b8,0x000000b3,0x00050041,0x0000000d,0x000000b9,
|
||||
0x0000000b,0x00000010,0x0004003d,0x00000006,0x000000ba,0x000000b9,0x00050087,0x00000006,
|
||||
0x000000bb,0x000000b8,0x000000ba,0x0003003e,0x000000b7,0x000000bb,0x0004003d,0x00000006,
|
||||
0x000000bd,0x000000b3,0x0004003d,0x00000006,0x000000be,0x000000b7,0x00050041,0x0000000d,
|
||||
0x000000bf,0x0000000b,0x00000010,0x0004003d,0x00000006,0x000000c0,0x000000bf,0x00050084,
|
||||
0x00000006,0x000000c1,0x000000be,0x000000c0,0x00050082,0x00000006,0x000000c2,0x000000bd,
|
||||
0x000000c1,0x0003003e,0x000000bc,0x000000c2,0x0004003d,0x00000006,0x000000c4,0x000000b7,
|
||||
0x00050041,0x0000000d,0x000000c6,0x0000000b,0x000000c5,0x0004003d,0x00000006,0x000000c7,
|
||||
0x000000c6,0x00050084,0x00000006,0x000000c8,0x000000c4,0x000000c7,0x0004003d,0x00000006,
|
||||
0x000000c9,0x000000a7,0x00050080,0x00000006,0x000000ca,0x000000c8,0x000000c9,0x00050041,
|
||||
0x0000000d,0x000000cc,0x0000000b,0x000000cb,0x0004003d,0x00000006,0x000000cd,0x000000cc,
|
||||
0x00050082,0x00000006,0x000000ce,0x000000ca,0x000000cd,0x0003003e,0x000000c3,0x000000ce,
|
||||
0x0004003d,0x00000006,0x000000d0,0x000000bc,0x00050041,0x0000000d,0x000000d2,0x0000000b,
|
||||
0x000000d1,0x0004003d,0x00000006,0x000000d3,0x000000d2,0x00050084,0x00000006,0x000000d4,
|
||||
0x000000d0,0x000000d3,0x0004003d,0x00000006,0x000000d5,0x000000ad,0x00050080,0x00000006,
|
||||
0x000000d6,0x000000d4,0x000000d5,0x00050041,0x0000000d,0x000000d8,0x0000000b,0x000000d7,
|
||||
0x0004003d,0x00000006,0x000000d9,0x000000d8,0x00050082,0x00000006,0x000000da,0x000000d6,
|
||||
0x000000d9,0x0003003e,0x000000cf,0x000000da,0x0004003d,0x00000006,0x000000db,0x000000c3,
|
||||
0x0004007c,0x00000023,0x000000dc,0x000000db,0x00050041,0x0000000d,0x000000dd,0x0000000b,
|
||||
0x00000053,0x0004003d,0x00000006,0x000000de,0x000000dd,0x0004007c,0x00000023,0x000000df,
|
||||
0x000000de,0x000500b0,0x0000007a,0x000000e0,0x000000dc,0x000000df,0x000300f7,0x000000e2,
|
||||
0x00000000,0x000400fa,0x000000e0,0x000000e1,0x000000e2,0x000200f8,0x000000e1,0x0004003d,
|
||||
0x00000006,0x000000e3,0x000000cf,0x0004007c,0x00000023,0x000000e4,0x000000e3,0x00050041,
|
||||
0x0000000d,0x000000e5,0x0000000b,0x00000057,0x0004003d,0x00000006,0x000000e6,0x000000e5,
|
||||
0x0004007c,0x00000023,0x000000e7,0x000000e6,0x000500b0,0x0000007a,0x000000e8,0x000000e4,
|
||||
0x000000e7,0x000200f9,0x000000e2,0x000200f8,0x000000e2,0x000700f5,0x0000007a,0x000000e9,
|
||||
0x000000e0,0x00000095,0x000000e8,0x000000e1,0x000300f7,0x000000eb,0x00000000,0x000400fa,
|
||||
0x000000e9,0x000000ea,0x00000102,0x000200f8,0x000000ea,0x0004003d,0x00000006,0x000000f1,
|
||||
0x00000093,0x0004003d,0x00000006,0x000000f2,0x00000042,0x0004003d,0x00000006,0x000000f7,
|
||||
0x0000004b,0x0004003d,0x00000006,0x000000f8,0x000000c3,0x00050041,0x0000000d,0x000000f9,
|
||||
0x0000000b,0x00000057,0x0004003d,0x00000006,0x000000fa,0x000000f9,0x00050084,0x00000006,
|
||||
0x000000fb,0x000000f8,0x000000fa,0x00050080,0x00000006,0x000000fc,0x000000f7,0x000000fb,
|
||||
0x0004003d,0x00000006,0x000000fd,0x000000cf,0x00050080,0x00000006,0x000000fe,0x000000fc,
|
||||
0x000000fd,0x00060041,0x0000006f,0x000000ff,0x000000f6,0x00000053,0x000000fe,0x0004003d,
|
||||
0x00000067,0x00000100,0x000000ff,0x00060041,0x00000091,0x00000101,0x000000f0,0x000000f1,
|
||||
0x000000f2,0x0003003e,0x00000101,0x00000100,0x000200f9,0x000000eb,0x000200f8,0x00000102,
|
||||
0x0004003d,0x00000006,0x00000103,0x00000093,0x0004003d,0x00000006,0x00000104,0x00000042,
|
||||
0x00060041,0x00000091,0x00000106,0x000000f0,0x00000103,0x00000104,0x0003003e,0x00000106,
|
||||
0x00000105,0x000200f9,0x000000eb,0x000200f8,0x000000eb,0x000200f9,0x00000097,0x000200f8,
|
||||
0x00000097,0x0004003d,0x00000006,0x00000107,0x00000093,0x00050080,0x00000006,0x00000108,
|
||||
0x00000107,0x00000057,0x0003003e,0x00000093,0x00000108,0x000200f9,0x00000094,0x000200f8,
|
||||
0x00000096,0x000400e0,0x00000109,0x00000109,0x0000010a,0x0003003e,0x0000010b,0x00000053,
|
||||
0x000200f9,0x0000010c,0x000200f8,0x0000010c,0x000400f6,0x0000010e,0x0000010f,0x00000000,
|
||||
0x000200f9,0x00000110,0x000200f8,0x00000110,0x0004003d,0x00000006,0x00000111,0x0000010b,
|
||||
0x000500b1,0x0000007a,0x00000112,0x00000111,0x00000020,0x000400fa,0x00000112,0x0000010d,
|
||||
0x0000010e,0x000200f8,0x0000010d,0x0004003d,0x00000006,0x00000113,0x0000010b,0x00050041,
|
||||
0x00000091,0x00000114,0x00000086,0x00000113,0x0004003d,0x00000067,0x00000115,0x00000114,
|
||||
0x0004003d,0x00000006,0x00000116,0x0000010b,0x0004003d,0x00000006,0x00000117,0x00000042,
|
||||
0x00060041,0x00000091,0x00000118,0x000000f0,0x00000116,0x00000117,0x0004003d,0x00000067,
|
||||
0x00000119,0x00000118,0x00050085,0x00000067,0x0000011a,0x00000115,0x00000119,0x0004003d,
|
||||
0x00000067,0x0000011b,0x00000069,0x00050081,0x00000067,0x0000011c,0x0000011b,0x0000011a,
|
||||
0x0003003e,0x00000069,0x0000011c,0x000200f9,0x0000010f,0x000200f8,0x0000010f,0x0004003d,
|
||||
0x00000006,0x0000011d,0x0000010b,0x00050080,0x00000006,0x0000011e,0x0000011d,0x00000057,
|
||||
0x0003003e,0x0000010b,0x0000011e,0x000200f9,0x0000010c,0x000200f8,0x0000010e,0x000400e0,
|
||||
0x00000109,0x00000109,0x0000010a,0x000200f9,0x00000076,0x000200f8,0x00000076,0x0004003d,
|
||||
0x00000006,0x0000011f,0x00000072,0x00050080,0x00000006,0x00000120,0x0000011f,0x00000057,
|
||||
0x0003003e,0x00000072,0x00000120,0x000200f9,0x00000073,0x000200f8,0x00000075,0x00050041,
|
||||
0x0000000d,0x00000121,0x0000000b,0x00000020,0x0004003d,0x00000006,0x00000122,0x00000121,
|
||||
0x000500aa,0x0000007a,0x00000123,0x00000122,0x00000057,0x000300f7,0x00000125,0x00000000,
|
||||
0x000400fa,0x00000123,0x00000124,0x00000128,0x000200f8,0x00000124,0x0004003d,0x00000067,
|
||||
0x00000126,0x00000069,0x0007000c,0x00000067,0x00000127,0x00000001,0x00000028,0x00000126,
|
||||
0x00000105,0x0003003e,0x00000069,0x00000127,0x000200f9,0x00000125,0x000200f8,0x00000128,
|
||||
0x00050041,0x0000000d,0x00000129,0x0000000b,0x00000020,0x0004003d,0x00000006,0x0000012a,
|
||||
0x00000129,0x000500aa,0x0000007a,0x0000012b,0x0000012a,0x0000000c,0x000300f7,0x0000012d,
|
||||
0x00000000,0x000400fa,0x0000012b,0x0000012c,0x0000012d,0x000200f8,0x0000012c,0x0004003d,
|
||||
0x00000067,0x0000012e,0x00000069,0x0008000c,0x00000067,0x00000130,0x00000001,0x0000002b,
|
||||
0x0000012e,0x00000105,0x0000012f,0x0003003e,0x00000069,0x00000130,0x000200f9,0x0000012d,
|
||||
0x000200f8,0x0000012d,0x000200f9,0x00000125,0x000200f8,0x00000125,0x0004003d,0x00000006,
|
||||
0x00000131,0x00000042,0x0004003d,0x00000006,0x00000132,0x00000022,0x00050080,0x00000006,
|
||||
0x00000133,0x00000132,0x00000131,0x0003003e,0x00000022,0x00000133,0x0004003d,0x00000006,
|
||||
0x00000134,0x00000022,0x0004003d,0x00000006,0x00000135,0x00000008,0x000500b1,0x0000007a,
|
||||
0x00000136,0x00000134,0x00000135,0x000300f7,0x00000138,0x00000000,0x000400fa,0x00000136,
|
||||
0x00000137,0x00000138,0x000200f8,0x00000137,0x0004003d,0x00000006,0x0000013d,0x0000005b,
|
||||
0x0004003d,0x00000006,0x0000013e,0x00000022,0x00050080,0x00000006,0x0000013f,0x0000013d,
|
||||
0x0000013e,0x0004003d,0x00000067,0x00000140,0x00000069,0x00060041,0x0000006f,0x00000141,
|
||||
0x0000013c,0x00000053,0x0000013f,0x0003003e,0x00000141,0x00000140,0x000200f9,0x00000138,
|
||||
0x000200f8,0x00000138,0x000100fd,0x00010038
|
||||
};
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -0,0 +1,188 @@
|
||||
#version 450
|
||||
|
||||
#define KSTRIP_LEN 32
|
||||
#define BLOCK_SIZE 64 // the output channel shoule be aligned to 64.
|
||||
#define WARP 32
|
||||
|
||||
#define INNER_THREAD 16 // inner thread
|
||||
#define ALL_THREAD 256
|
||||
|
||||
#define A_INSTRIP 8
|
||||
#define A_STRIP 8 // (BLOCK_SIZE/A_INSTRIP)
|
||||
|
||||
#define B_INSTRIP 4 // (ALL_THREAD/BLOCK_SIZE)
|
||||
#define B_STRIP 8 // (KSTRIP_LEN/B_INSTRIP)
|
||||
|
||||
#define PER_THREAD (BLOCK_SIZE/INNER_THREAD)
|
||||
|
||||
layout(binding = 0) readonly buffer Input0{
|
||||
float image_data[];
|
||||
};
|
||||
|
||||
layout(binding = 1) readonly buffer Input1 {
|
||||
float bias_data[];
|
||||
};
|
||||
|
||||
layout(binding = 2) readonly buffer Input2{
|
||||
float weight_data[];
|
||||
};
|
||||
|
||||
layout(binding = 3) writeonly buffer Output{
|
||||
float output_data[];
|
||||
};
|
||||
|
||||
layout(binding = 4) uniform pushBlock {
|
||||
int Hi; // H in
|
||||
int Wi; // W in
|
||||
int H0; // H out
|
||||
int W0; // W out
|
||||
int stride_h;
|
||||
int stride_w;
|
||||
int pad_h;
|
||||
int pad_w;
|
||||
int Hk;
|
||||
int Wk;
|
||||
int dilation_h;
|
||||
int dilation_w;
|
||||
int Kg;
|
||||
int Cg;
|
||||
int group;
|
||||
int CgHkWk_aligned;
|
||||
int activationType; // 0 : no activation, 1: ReLU, 2: ReLU6.
|
||||
int batchi; // batch index
|
||||
int groupi; // group index
|
||||
} p;
|
||||
|
||||
shared float wshare[KSTRIP_LEN][BLOCK_SIZE]; // 2 KB
|
||||
shared float inshare[BLOCK_SIZE][KSTRIP_LEN]; // 2 KB
|
||||
|
||||
layout(local_size_x = ALL_THREAD, local_size_y = 1, local_size_z = 1) in;
|
||||
|
||||
void main()
|
||||
{
|
||||
int M = p.Kg; // output channel
|
||||
int K = p.CgHkWk_aligned; // Hk * Wk * G // aligned to KSTRIP_LEN
|
||||
int N = p.H0 * p.W0; // H0 * W0
|
||||
|
||||
int mIndex = int(gl_WorkGroupID.x) * BLOCK_SIZE;
|
||||
int nIndex = int(gl_WorkGroupID.y) * BLOCK_SIZE;
|
||||
|
||||
int local_x = int(gl_LocalInvocationID.x) % 16; // 0~7
|
||||
int local_y = int(gl_LocalInvocationID.x) / 16; // 0~31
|
||||
|
||||
int w_local_x = int(gl_LocalInvocationID.x) % KSTRIP_LEN; // 256 / 32 = 8
|
||||
int w_local_y = int(gl_LocalInvocationID.x) / KSTRIP_LEN;
|
||||
|
||||
int in_local_x = int(gl_LocalInvocationID.x) % BLOCK_SIZE; // 256 / 64 = 4
|
||||
int in_local_y = int(gl_LocalInvocationID.x) / BLOCK_SIZE;
|
||||
|
||||
int woffset = p.groupi * p.Kg * K + K * mIndex + w_local_y * K + w_local_x;
|
||||
int inoffset = (p.batchi * p.group + p.groupi) * p.Hi*p.Wi*p.Cg;
|
||||
int outoffset = (p.batchi * p.group + p.groupi) * p.H0*p.W0*p.Kg;
|
||||
int biasoffset = p.groupi * p.Kg + mIndex + local_x * PER_THREAD;
|
||||
|
||||
vec4 sum[PER_THREAD];
|
||||
{
|
||||
for (int i = 0; i < PER_THREAD; i++)
|
||||
{
|
||||
sum[i] = vec4(bias_data[biasoffset + i]);
|
||||
}
|
||||
}
|
||||
|
||||
float regA[PER_THREAD];
|
||||
float regB[PER_THREAD];
|
||||
|
||||
int KStrip = K / KSTRIP_LEN;
|
||||
int KRemain = K - KStrip * KSTRIP_LEN; // NOTE: this value shoule be always 0.
|
||||
|
||||
for (int i = 0; i < KStrip; i++)
|
||||
{
|
||||
int k = i * KSTRIP_LEN;
|
||||
// load Weight to local memory.
|
||||
for (int s = 0; s < A_STRIP; s++)
|
||||
{
|
||||
wshare[w_local_x][s * A_INSTRIP + w_local_y] = weight_data[woffset + s * A_INSTRIP * K + k];
|
||||
}
|
||||
|
||||
// load Input to local memory
|
||||
for (int s = 0; s < B_STRIP; s++)
|
||||
{
|
||||
int kk = in_local_y + s * B_INSTRIP + k;
|
||||
|
||||
int HkWk = p.Hk * p.Wk;
|
||||
int cg = kk/HkWk;
|
||||
int hkwk = kk - cg * HkWk;
|
||||
int hk = hkwk / p.Wk;
|
||||
int wk = hkwk - hk * p.Wk;
|
||||
int dh = hk * p.dilation_h, dw = wk * p.dilation_w;
|
||||
|
||||
int h0w0 = in_local_x + nIndex;
|
||||
int h0 = h0w0 / p.W0;
|
||||
int w0 = h0w0 - h0 * p.W0;
|
||||
|
||||
int hi = h0 * p.stride_h + dh - p.pad_h;
|
||||
int wi = w0 * p.stride_w + dw - p.pad_w;
|
||||
|
||||
if (cg < p.Cg && uint(hi) < uint(p.Hi) && uint(wi) < uint(p.Wi))
|
||||
inshare[in_local_x][s * B_INSTRIP + in_local_y] = image_data[inoffset + cg * p.Hi * p.Wi + hi * p.Wi + wi];
|
||||
else
|
||||
inshare[in_local_x][s * B_INSTRIP + in_local_y] = 0.f;
|
||||
}
|
||||
|
||||
barrier();
|
||||
|
||||
for (int j = 0; j < KSTRIP_LEN; j++)
|
||||
{
|
||||
// Load shared memory to register.
|
||||
for (int m = 0; m < 4; m++)
|
||||
{
|
||||
regA[m] = wshare[j][local_x*4 + m];
|
||||
}
|
||||
|
||||
for (int m = 0; m < 4; m++)
|
||||
{
|
||||
regB[m] = inshare[local_y + 16 * m][j];
|
||||
}
|
||||
|
||||
for (int m = 0; m < 4; m++)
|
||||
{
|
||||
for (int n = 0; n < 4; n++)
|
||||
{
|
||||
sum[m][n] += regA[m] * regB[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
barrier();
|
||||
}
|
||||
|
||||
if (p.activationType == 1) // ReLU
|
||||
{
|
||||
sum[0] = max(sum[0], vec4(0));
|
||||
sum[1] = max(sum[1], vec4(0));
|
||||
sum[2] = max(sum[2], vec4(0));
|
||||
sum[3] = max(sum[3], vec4(0));
|
||||
}
|
||||
else if (p.activationType == 2) // ReLU6
|
||||
{
|
||||
sum[0] = clamp(sum[0], vec4(0), vec4(6));
|
||||
sum[1] = clamp(sum[1], vec4(0), vec4(6));
|
||||
sum[2] = clamp(sum[2], vec4(0), vec4(6));
|
||||
sum[3] = clamp(sum[3], vec4(0), vec4(6));
|
||||
}
|
||||
|
||||
for (int n = 0; n < PER_THREAD; n++)
|
||||
{
|
||||
int nIndex2 = nIndex + n * INNER_THREAD + local_y;
|
||||
if (nIndex2 < N)
|
||||
{
|
||||
for (int m = 0; m < PER_THREAD; m++)
|
||||
{
|
||||
int mIndex2 = mIndex + local_x * PER_THREAD + m;
|
||||
if (mIndex2 < M)
|
||||
{
|
||||
output_data[outoffset + mIndex2 * N + nIndex2] = sum[m][n];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,458 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
extern const unsigned int conv_implicit_gemm_spv[3565] = {
|
||||
0x07230203,0x00010000,0x0008000b,0x00000257,0x00000000,0x00020011,0x00000001,0x0006000b,
|
||||
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
|
||||
0x0007000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000020,0x0000002f,0x00060010,
|
||||
0x00000004,0x00000011,0x00000100,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,
|
||||
0x00040005,0x00000004,0x6e69616d,0x00000000,0x00030005,0x00000008,0x0000004d,0x00050005,
|
||||
0x00000009,0x68737570,0x636f6c42,0x0000006b,0x00040006,0x00000009,0x00000000,0x00006948,
|
||||
0x00040006,0x00000009,0x00000001,0x00006957,0x00040006,0x00000009,0x00000002,0x00003048,
|
||||
0x00040006,0x00000009,0x00000003,0x00003057,0x00060006,0x00000009,0x00000004,0x69727473,
|
||||
0x685f6564,0x00000000,0x00060006,0x00000009,0x00000005,0x69727473,0x775f6564,0x00000000,
|
||||
0x00050006,0x00000009,0x00000006,0x5f646170,0x00000068,0x00050006,0x00000009,0x00000007,
|
||||
0x5f646170,0x00000077,0x00040006,0x00000009,0x00000008,0x00006b48,0x00040006,0x00000009,
|
||||
0x00000009,0x00006b57,0x00060006,0x00000009,0x0000000a,0x616c6964,0x6e6f6974,0x0000685f,
|
||||
0x00060006,0x00000009,0x0000000b,0x616c6964,0x6e6f6974,0x0000775f,0x00040006,0x00000009,
|
||||
0x0000000c,0x0000674b,0x00040006,0x00000009,0x0000000d,0x00006743,0x00050006,0x00000009,
|
||||
0x0000000e,0x756f7267,0x00000070,0x00070006,0x00000009,0x0000000f,0x6b486743,0x615f6b57,
|
||||
0x6e67696c,0x00006465,0x00070006,0x00000009,0x00000010,0x69746361,0x69746176,0x79546e6f,
|
||||
0x00006570,0x00050006,0x00000009,0x00000011,0x63746162,0x00006968,0x00050006,0x00000009,
|
||||
0x00000012,0x756f7267,0x00006970,0x00030005,0x0000000b,0x00000070,0x00030005,0x00000010,
|
||||
0x0000004b,0x00030005,0x00000014,0x0000004e,0x00040005,0x0000001c,0x646e496d,0x00007865,
|
||||
0x00060005,0x00000020,0x575f6c67,0x476b726f,0x70756f72,0x00004449,0x00040005,0x00000028,
|
||||
0x646e496e,0x00007865,0x00040005,0x0000002e,0x61636f6c,0x00785f6c,0x00080005,0x0000002f,
|
||||
0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163,0x44496e6f,0x00000000,0x00040005,0x00000035,
|
||||
0x61636f6c,0x00795f6c,0x00050005,0x0000003a,0x6f6c5f77,0x5f6c6163,0x00000078,0x00050005,
|
||||
0x00000040,0x6f6c5f77,0x5f6c6163,0x00000079,0x00050005,0x00000045,0x6c5f6e69,0x6c61636f,
|
||||
0x0000785f,0x00050005,0x0000004a,0x6c5f6e69,0x6c61636f,0x0000795f,0x00040005,0x0000004f,
|
||||
0x66666f77,0x00746573,0x00050005,0x00000062,0x666f6e69,0x74657366,0x00000000,0x00050005,
|
||||
0x00000079,0x6f74756f,0x65736666,0x00000074,0x00050005,0x0000008b,0x73616962,0x7366666f,
|
||||
0x00007465,0x00030005,0x00000097,0x00000069,0x00030005,0x000000a5,0x006d7573,0x00040005,
|
||||
0x000000a8,0x75706e49,0x00003174,0x00060006,0x000000a8,0x00000000,0x73616962,0x7461645f,
|
||||
0x00000061,0x00030005,0x000000aa,0x00000000,0x00040005,0x000000b6,0x7274534b,0x00007069,
|
||||
0x00040005,0x000000b9,0x6d65524b,0x006e6961,0x00030005,0x000000be,0x00000069,0x00030005,
|
||||
0x000000c7,0x0000006b,0x00030005,0x000000ca,0x00000073,0x00040005,0x000000d8,0x61687377,
|
||||
0x00006572,0x00040005,0x000000df,0x75706e49,0x00003274,0x00060006,0x000000df,0x00000000,
|
||||
0x67696577,0x645f7468,0x00617461,0x00030005,0x000000e1,0x00000000,0x00030005,0x000000f0,
|
||||
0x00000073,0x00030005,0x000000f8,0x00006b6b,0x00040005,0x000000ff,0x6b576b48,0x00000000,
|
||||
0x00030005,0x00000106,0x00006763,0x00040005,0x0000010a,0x6b776b68,0x00000000,0x00030005,
|
||||
0x00000110,0x00006b68,0x00030005,0x00000115,0x00006b77,0x00030005,0x0000011c,0x00006864,
|
||||
0x00030005,0x00000122,0x00007764,0x00040005,0x00000128,0x30773068,0x00000000,0x00030005,
|
||||
0x0000012c,0x00003068,0x00030005,0x00000131,0x00003077,0x00030005,0x00000138,0x00006968,
|
||||
0x00030005,0x00000143,0x00006977,0x00040005,0x0000016a,0x68736e69,0x00657261,0x00040005,
|
||||
0x00000171,0x75706e49,0x00003074,0x00060006,0x00000171,0x00000000,0x67616d69,0x61645f65,
|
||||
0x00006174,0x00030005,0x00000173,0x00000000,0x00030005,0x00000193,0x0000006a,0x00030005,
|
||||
0x0000019b,0x0000006d,0x00040005,0x000001a5,0x41676572,0x00000000,0x00030005,0x000001b2,
|
||||
0x0000006d,0x00040005,0x000001ba,0x42676572,0x00000000,0x00030005,0x000001c6,0x0000006d,
|
||||
0x00030005,0x000001ce,0x0000006e,0x00030005,0x00000219,0x0000006e,0x00040005,0x00000221,
|
||||
0x646e496e,0x00327865,0x00030005,0x0000022d,0x0000006d,0x00040005,0x00000235,0x646e496d,
|
||||
0x00327865,0x00040005,0x00000242,0x7074754f,0x00007475,0x00060006,0x00000242,0x00000000,
|
||||
0x7074756f,0x645f7475,0x00617461,0x00030005,0x00000244,0x00000000,0x00050048,0x00000009,
|
||||
0x00000000,0x00000023,0x00000000,0x00050048,0x00000009,0x00000001,0x00000023,0x00000004,
|
||||
0x00050048,0x00000009,0x00000002,0x00000023,0x00000008,0x00050048,0x00000009,0x00000003,
|
||||
0x00000023,0x0000000c,0x00050048,0x00000009,0x00000004,0x00000023,0x00000010,0x00050048,
|
||||
0x00000009,0x00000005,0x00000023,0x00000014,0x00050048,0x00000009,0x00000006,0x00000023,
|
||||
0x00000018,0x00050048,0x00000009,0x00000007,0x00000023,0x0000001c,0x00050048,0x00000009,
|
||||
0x00000008,0x00000023,0x00000020,0x00050048,0x00000009,0x00000009,0x00000023,0x00000024,
|
||||
0x00050048,0x00000009,0x0000000a,0x00000023,0x00000028,0x00050048,0x00000009,0x0000000b,
|
||||
0x00000023,0x0000002c,0x00050048,0x00000009,0x0000000c,0x00000023,0x00000030,0x00050048,
|
||||
0x00000009,0x0000000d,0x00000023,0x00000034,0x00050048,0x00000009,0x0000000e,0x00000023,
|
||||
0x00000038,0x00050048,0x00000009,0x0000000f,0x00000023,0x0000003c,0x00050048,0x00000009,
|
||||
0x00000010,0x00000023,0x00000040,0x00050048,0x00000009,0x00000011,0x00000023,0x00000044,
|
||||
0x00050048,0x00000009,0x00000012,0x00000023,0x00000048,0x00030047,0x00000009,0x00000002,
|
||||
0x00040047,0x0000000b,0x00000022,0x00000000,0x00040047,0x0000000b,0x00000021,0x00000004,
|
||||
0x00040047,0x00000020,0x0000000b,0x0000001a,0x00040047,0x0000002f,0x0000000b,0x0000001b,
|
||||
0x00040047,0x000000a7,0x00000006,0x00000004,0x00040048,0x000000a8,0x00000000,0x00000018,
|
||||
0x00050048,0x000000a8,0x00000000,0x00000023,0x00000000,0x00030047,0x000000a8,0x00000003,
|
||||
0x00040047,0x000000aa,0x00000022,0x00000000,0x00040047,0x000000aa,0x00000021,0x00000001,
|
||||
0x00040047,0x000000de,0x00000006,0x00000004,0x00040048,0x000000df,0x00000000,0x00000018,
|
||||
0x00050048,0x000000df,0x00000000,0x00000023,0x00000000,0x00030047,0x000000df,0x00000003,
|
||||
0x00040047,0x000000e1,0x00000022,0x00000000,0x00040047,0x000000e1,0x00000021,0x00000002,
|
||||
0x00040047,0x00000170,0x00000006,0x00000004,0x00040048,0x00000171,0x00000000,0x00000018,
|
||||
0x00050048,0x00000171,0x00000000,0x00000023,0x00000000,0x00030047,0x00000171,0x00000003,
|
||||
0x00040047,0x00000173,0x00000022,0x00000000,0x00040047,0x00000173,0x00000021,0x00000000,
|
||||
0x00040047,0x00000241,0x00000006,0x00000004,0x00040048,0x00000242,0x00000000,0x00000019,
|
||||
0x00050048,0x00000242,0x00000000,0x00000023,0x00000000,0x00030047,0x00000242,0x00000003,
|
||||
0x00040047,0x00000244,0x00000022,0x00000000,0x00040047,0x00000244,0x00000021,0x00000003,
|
||||
0x00040047,0x00000256,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,
|
||||
0x00000002,0x00040015,0x00000006,0x00000020,0x00000001,0x00040020,0x00000007,0x00000007,
|
||||
0x00000006,0x0015001e,0x00000009,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,
|
||||
0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,
|
||||
0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x0000000a,
|
||||
0x00000002,0x00000009,0x0004003b,0x0000000a,0x0000000b,0x00000002,0x0004002b,0x00000006,
|
||||
0x0000000c,0x0000000c,0x00040020,0x0000000d,0x00000002,0x00000006,0x0004002b,0x00000006,
|
||||
0x00000011,0x0000000f,0x0004002b,0x00000006,0x00000015,0x00000002,0x0004002b,0x00000006,
|
||||
0x00000018,0x00000003,0x00040015,0x0000001d,0x00000020,0x00000000,0x00040017,0x0000001e,
|
||||
0x0000001d,0x00000003,0x00040020,0x0000001f,0x00000001,0x0000001e,0x0004003b,0x0000001f,
|
||||
0x00000020,0x00000001,0x0004002b,0x0000001d,0x00000021,0x00000000,0x00040020,0x00000022,
|
||||
0x00000001,0x0000001d,0x0004002b,0x00000006,0x00000026,0x00000040,0x0004002b,0x0000001d,
|
||||
0x00000029,0x00000001,0x0004003b,0x0000001f,0x0000002f,0x00000001,0x0004002b,0x00000006,
|
||||
0x00000033,0x00000010,0x0004002b,0x00000006,0x0000003e,0x00000020,0x0004002b,0x00000006,
|
||||
0x00000050,0x00000012,0x0004002b,0x00000006,0x00000063,0x00000011,0x0004002b,0x00000006,
|
||||
0x00000066,0x0000000e,0x0004002b,0x00000006,0x0000006d,0x00000000,0x0004002b,0x00000006,
|
||||
0x00000071,0x00000001,0x0004002b,0x00000006,0x00000075,0x0000000d,0x0004002b,0x00000006,
|
||||
0x00000094,0x00000004,0x00020014,0x0000009e,0x00030016,0x000000a0,0x00000020,0x00040017,
|
||||
0x000000a1,0x000000a0,0x00000004,0x0004002b,0x0000001d,0x000000a2,0x00000004,0x0004001c,
|
||||
0x000000a3,0x000000a1,0x000000a2,0x00040020,0x000000a4,0x00000007,0x000000a3,0x0003001d,
|
||||
0x000000a7,0x000000a0,0x0003001e,0x000000a8,0x000000a7,0x00040020,0x000000a9,0x00000002,
|
||||
0x000000a8,0x0004003b,0x000000a9,0x000000aa,0x00000002,0x00040020,0x000000ae,0x00000002,
|
||||
0x000000a0,0x00040020,0x000000b2,0x00000007,0x000000a1,0x0004002b,0x00000006,0x000000d1,
|
||||
0x00000008,0x0004002b,0x0000001d,0x000000d3,0x00000040,0x0004001c,0x000000d4,0x000000a0,
|
||||
0x000000d3,0x0004002b,0x0000001d,0x000000d5,0x00000020,0x0004001c,0x000000d6,0x000000d4,
|
||||
0x000000d5,0x00040020,0x000000d7,0x00000004,0x000000d6,0x0004003b,0x000000d7,0x000000d8,
|
||||
0x00000004,0x0003001d,0x000000de,0x000000a0,0x0003001e,0x000000df,0x000000de,0x00040020,
|
||||
0x000000e0,0x00000002,0x000000df,0x0004003b,0x000000e0,0x000000e1,0x00000002,0x00040020,
|
||||
0x000000ec,0x00000004,0x000000a0,0x0004002b,0x00000006,0x00000102,0x00000009,0x0004002b,
|
||||
0x00000006,0x0000011e,0x0000000a,0x0004002b,0x00000006,0x00000124,0x0000000b,0x0004002b,
|
||||
0x00000006,0x0000013f,0x00000006,0x0004002b,0x00000006,0x00000145,0x00000005,0x0004002b,
|
||||
0x00000006,0x0000014b,0x00000007,0x0004001c,0x00000167,0x000000a0,0x000000d5,0x0004001c,
|
||||
0x00000168,0x00000167,0x000000d3,0x00040020,0x00000169,0x00000004,0x00000168,0x0004003b,
|
||||
0x00000169,0x0000016a,0x00000004,0x0003001d,0x00000170,0x000000a0,0x0003001e,0x00000171,
|
||||
0x00000170,0x00040020,0x00000172,0x00000002,0x00000171,0x0004003b,0x00000172,0x00000173,
|
||||
0x00000002,0x0004002b,0x000000a0,0x0000018d,0x00000000,0x0004002b,0x0000001d,0x00000191,
|
||||
0x00000002,0x0004002b,0x0000001d,0x00000192,0x00000108,0x0004001c,0x000001a3,0x000000a0,
|
||||
0x000000a2,0x00040020,0x000001a4,0x00000007,0x000001a3,0x00040020,0x000001ae,0x00000007,
|
||||
0x000000a0,0x0007002c,0x000000a1,0x000001f2,0x0000018d,0x0000018d,0x0000018d,0x0000018d,
|
||||
0x0004002b,0x000000a0,0x00000209,0x40c00000,0x0007002c,0x000000a1,0x0000020a,0x00000209,
|
||||
0x00000209,0x00000209,0x00000209,0x0003001d,0x00000241,0x000000a0,0x0003001e,0x00000242,
|
||||
0x00000241,0x00040020,0x00000243,0x00000002,0x00000242,0x0004003b,0x00000243,0x00000244,
|
||||
0x00000002,0x0004002b,0x0000001d,0x00000255,0x00000100,0x0006002c,0x0000001e,0x00000256,
|
||||
0x00000255,0x00000029,0x00000029,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,
|
||||
0x000200f8,0x00000005,0x0004003b,0x00000007,0x00000008,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000010,0x00000007,0x0004003b,0x00000007,0x00000014,0x00000007,0x0004003b,0x00000007,
|
||||
0x0000001c,0x00000007,0x0004003b,0x00000007,0x00000028,0x00000007,0x0004003b,0x00000007,
|
||||
0x0000002e,0x00000007,0x0004003b,0x00000007,0x00000035,0x00000007,0x0004003b,0x00000007,
|
||||
0x0000003a,0x00000007,0x0004003b,0x00000007,0x00000040,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000045,0x00000007,0x0004003b,0x00000007,0x0000004a,0x00000007,0x0004003b,0x00000007,
|
||||
0x0000004f,0x00000007,0x0004003b,0x00000007,0x00000062,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000079,0x00000007,0x0004003b,0x00000007,0x0000008b,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000097,0x00000007,0x0004003b,0x000000a4,0x000000a5,0x00000007,0x0004003b,0x00000007,
|
||||
0x000000b6,0x00000007,0x0004003b,0x00000007,0x000000b9,0x00000007,0x0004003b,0x00000007,
|
||||
0x000000be,0x00000007,0x0004003b,0x00000007,0x000000c7,0x00000007,0x0004003b,0x00000007,
|
||||
0x000000ca,0x00000007,0x0004003b,0x00000007,0x000000f0,0x00000007,0x0004003b,0x00000007,
|
||||
0x000000f8,0x00000007,0x0004003b,0x00000007,0x000000ff,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000106,0x00000007,0x0004003b,0x00000007,0x0000010a,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000110,0x00000007,0x0004003b,0x00000007,0x00000115,0x00000007,0x0004003b,0x00000007,
|
||||
0x0000011c,0x00000007,0x0004003b,0x00000007,0x00000122,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000128,0x00000007,0x0004003b,0x00000007,0x0000012c,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000131,0x00000007,0x0004003b,0x00000007,0x00000138,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000143,0x00000007,0x0004003b,0x00000007,0x00000193,0x00000007,0x0004003b,0x00000007,
|
||||
0x0000019b,0x00000007,0x0004003b,0x000001a4,0x000001a5,0x00000007,0x0004003b,0x00000007,
|
||||
0x000001b2,0x00000007,0x0004003b,0x000001a4,0x000001ba,0x00000007,0x0004003b,0x00000007,
|
||||
0x000001c6,0x00000007,0x0004003b,0x00000007,0x000001ce,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000219,0x00000007,0x0004003b,0x00000007,0x00000221,0x00000007,0x0004003b,0x00000007,
|
||||
0x0000022d,0x00000007,0x0004003b,0x00000007,0x00000235,0x00000007,0x00050041,0x0000000d,
|
||||
0x0000000e,0x0000000b,0x0000000c,0x0004003d,0x00000006,0x0000000f,0x0000000e,0x0003003e,
|
||||
0x00000008,0x0000000f,0x00050041,0x0000000d,0x00000012,0x0000000b,0x00000011,0x0004003d,
|
||||
0x00000006,0x00000013,0x00000012,0x0003003e,0x00000010,0x00000013,0x00050041,0x0000000d,
|
||||
0x00000016,0x0000000b,0x00000015,0x0004003d,0x00000006,0x00000017,0x00000016,0x00050041,
|
||||
0x0000000d,0x00000019,0x0000000b,0x00000018,0x0004003d,0x00000006,0x0000001a,0x00000019,
|
||||
0x00050084,0x00000006,0x0000001b,0x00000017,0x0000001a,0x0003003e,0x00000014,0x0000001b,
|
||||
0x00050041,0x00000022,0x00000023,0x00000020,0x00000021,0x0004003d,0x0000001d,0x00000024,
|
||||
0x00000023,0x0004007c,0x00000006,0x00000025,0x00000024,0x00050084,0x00000006,0x00000027,
|
||||
0x00000025,0x00000026,0x0003003e,0x0000001c,0x00000027,0x00050041,0x00000022,0x0000002a,
|
||||
0x00000020,0x00000029,0x0004003d,0x0000001d,0x0000002b,0x0000002a,0x0004007c,0x00000006,
|
||||
0x0000002c,0x0000002b,0x00050084,0x00000006,0x0000002d,0x0000002c,0x00000026,0x0003003e,
|
||||
0x00000028,0x0000002d,0x00050041,0x00000022,0x00000030,0x0000002f,0x00000021,0x0004003d,
|
||||
0x0000001d,0x00000031,0x00000030,0x0004007c,0x00000006,0x00000032,0x00000031,0x0005008b,
|
||||
0x00000006,0x00000034,0x00000032,0x00000033,0x0003003e,0x0000002e,0x00000034,0x00050041,
|
||||
0x00000022,0x00000036,0x0000002f,0x00000021,0x0004003d,0x0000001d,0x00000037,0x00000036,
|
||||
0x0004007c,0x00000006,0x00000038,0x00000037,0x00050087,0x00000006,0x00000039,0x00000038,
|
||||
0x00000033,0x0003003e,0x00000035,0x00000039,0x00050041,0x00000022,0x0000003b,0x0000002f,
|
||||
0x00000021,0x0004003d,0x0000001d,0x0000003c,0x0000003b,0x0004007c,0x00000006,0x0000003d,
|
||||
0x0000003c,0x0005008b,0x00000006,0x0000003f,0x0000003d,0x0000003e,0x0003003e,0x0000003a,
|
||||
0x0000003f,0x00050041,0x00000022,0x00000041,0x0000002f,0x00000021,0x0004003d,0x0000001d,
|
||||
0x00000042,0x00000041,0x0004007c,0x00000006,0x00000043,0x00000042,0x00050087,0x00000006,
|
||||
0x00000044,0x00000043,0x0000003e,0x0003003e,0x00000040,0x00000044,0x00050041,0x00000022,
|
||||
0x00000046,0x0000002f,0x00000021,0x0004003d,0x0000001d,0x00000047,0x00000046,0x0004007c,
|
||||
0x00000006,0x00000048,0x00000047,0x0005008b,0x00000006,0x00000049,0x00000048,0x00000026,
|
||||
0x0003003e,0x00000045,0x00000049,0x00050041,0x00000022,0x0000004b,0x0000002f,0x00000021,
|
||||
0x0004003d,0x0000001d,0x0000004c,0x0000004b,0x0004007c,0x00000006,0x0000004d,0x0000004c,
|
||||
0x00050087,0x00000006,0x0000004e,0x0000004d,0x00000026,0x0003003e,0x0000004a,0x0000004e,
|
||||
0x00050041,0x0000000d,0x00000051,0x0000000b,0x00000050,0x0004003d,0x00000006,0x00000052,
|
||||
0x00000051,0x00050041,0x0000000d,0x00000053,0x0000000b,0x0000000c,0x0004003d,0x00000006,
|
||||
0x00000054,0x00000053,0x00050084,0x00000006,0x00000055,0x00000052,0x00000054,0x0004003d,
|
||||
0x00000006,0x00000056,0x00000010,0x00050084,0x00000006,0x00000057,0x00000055,0x00000056,
|
||||
0x0004003d,0x00000006,0x00000058,0x00000010,0x0004003d,0x00000006,0x00000059,0x0000001c,
|
||||
0x00050084,0x00000006,0x0000005a,0x00000058,0x00000059,0x00050080,0x00000006,0x0000005b,
|
||||
0x00000057,0x0000005a,0x0004003d,0x00000006,0x0000005c,0x00000040,0x0004003d,0x00000006,
|
||||
0x0000005d,0x00000010,0x00050084,0x00000006,0x0000005e,0x0000005c,0x0000005d,0x00050080,
|
||||
0x00000006,0x0000005f,0x0000005b,0x0000005e,0x0004003d,0x00000006,0x00000060,0x0000003a,
|
||||
0x00050080,0x00000006,0x00000061,0x0000005f,0x00000060,0x0003003e,0x0000004f,0x00000061,
|
||||
0x00050041,0x0000000d,0x00000064,0x0000000b,0x00000063,0x0004003d,0x00000006,0x00000065,
|
||||
0x00000064,0x00050041,0x0000000d,0x00000067,0x0000000b,0x00000066,0x0004003d,0x00000006,
|
||||
0x00000068,0x00000067,0x00050084,0x00000006,0x00000069,0x00000065,0x00000068,0x00050041,
|
||||
0x0000000d,0x0000006a,0x0000000b,0x00000050,0x0004003d,0x00000006,0x0000006b,0x0000006a,
|
||||
0x00050080,0x00000006,0x0000006c,0x00000069,0x0000006b,0x00050041,0x0000000d,0x0000006e,
|
||||
0x0000000b,0x0000006d,0x0004003d,0x00000006,0x0000006f,0x0000006e,0x00050084,0x00000006,
|
||||
0x00000070,0x0000006c,0x0000006f,0x00050041,0x0000000d,0x00000072,0x0000000b,0x00000071,
|
||||
0x0004003d,0x00000006,0x00000073,0x00000072,0x00050084,0x00000006,0x00000074,0x00000070,
|
||||
0x00000073,0x00050041,0x0000000d,0x00000076,0x0000000b,0x00000075,0x0004003d,0x00000006,
|
||||
0x00000077,0x00000076,0x00050084,0x00000006,0x00000078,0x00000074,0x00000077,0x0003003e,
|
||||
0x00000062,0x00000078,0x00050041,0x0000000d,0x0000007a,0x0000000b,0x00000063,0x0004003d,
|
||||
0x00000006,0x0000007b,0x0000007a,0x00050041,0x0000000d,0x0000007c,0x0000000b,0x00000066,
|
||||
0x0004003d,0x00000006,0x0000007d,0x0000007c,0x00050084,0x00000006,0x0000007e,0x0000007b,
|
||||
0x0000007d,0x00050041,0x0000000d,0x0000007f,0x0000000b,0x00000050,0x0004003d,0x00000006,
|
||||
0x00000080,0x0000007f,0x00050080,0x00000006,0x00000081,0x0000007e,0x00000080,0x00050041,
|
||||
0x0000000d,0x00000082,0x0000000b,0x00000015,0x0004003d,0x00000006,0x00000083,0x00000082,
|
||||
0x00050084,0x00000006,0x00000084,0x00000081,0x00000083,0x00050041,0x0000000d,0x00000085,
|
||||
0x0000000b,0x00000018,0x0004003d,0x00000006,0x00000086,0x00000085,0x00050084,0x00000006,
|
||||
0x00000087,0x00000084,0x00000086,0x00050041,0x0000000d,0x00000088,0x0000000b,0x0000000c,
|
||||
0x0004003d,0x00000006,0x00000089,0x00000088,0x00050084,0x00000006,0x0000008a,0x00000087,
|
||||
0x00000089,0x0003003e,0x00000079,0x0000008a,0x00050041,0x0000000d,0x0000008c,0x0000000b,
|
||||
0x00000050,0x0004003d,0x00000006,0x0000008d,0x0000008c,0x00050041,0x0000000d,0x0000008e,
|
||||
0x0000000b,0x0000000c,0x0004003d,0x00000006,0x0000008f,0x0000008e,0x00050084,0x00000006,
|
||||
0x00000090,0x0000008d,0x0000008f,0x0004003d,0x00000006,0x00000091,0x0000001c,0x00050080,
|
||||
0x00000006,0x00000092,0x00000090,0x00000091,0x0004003d,0x00000006,0x00000093,0x0000002e,
|
||||
0x00050084,0x00000006,0x00000095,0x00000093,0x00000094,0x00050080,0x00000006,0x00000096,
|
||||
0x00000092,0x00000095,0x0003003e,0x0000008b,0x00000096,0x0003003e,0x00000097,0x0000006d,
|
||||
0x000200f9,0x00000098,0x000200f8,0x00000098,0x000400f6,0x0000009a,0x0000009b,0x00000000,
|
||||
0x000200f9,0x0000009c,0x000200f8,0x0000009c,0x0004003d,0x00000006,0x0000009d,0x00000097,
|
||||
0x000500b1,0x0000009e,0x0000009f,0x0000009d,0x00000094,0x000400fa,0x0000009f,0x00000099,
|
||||
0x0000009a,0x000200f8,0x00000099,0x0004003d,0x00000006,0x000000a6,0x00000097,0x0004003d,
|
||||
0x00000006,0x000000ab,0x0000008b,0x0004003d,0x00000006,0x000000ac,0x00000097,0x00050080,
|
||||
0x00000006,0x000000ad,0x000000ab,0x000000ac,0x00060041,0x000000ae,0x000000af,0x000000aa,
|
||||
0x0000006d,0x000000ad,0x0004003d,0x000000a0,0x000000b0,0x000000af,0x00070050,0x000000a1,
|
||||
0x000000b1,0x000000b0,0x000000b0,0x000000b0,0x000000b0,0x00050041,0x000000b2,0x000000b3,
|
||||
0x000000a5,0x000000a6,0x0003003e,0x000000b3,0x000000b1,0x000200f9,0x0000009b,0x000200f8,
|
||||
0x0000009b,0x0004003d,0x00000006,0x000000b4,0x00000097,0x00050080,0x00000006,0x000000b5,
|
||||
0x000000b4,0x00000071,0x0003003e,0x00000097,0x000000b5,0x000200f9,0x00000098,0x000200f8,
|
||||
0x0000009a,0x0004003d,0x00000006,0x000000b7,0x00000010,0x00050087,0x00000006,0x000000b8,
|
||||
0x000000b7,0x0000003e,0x0003003e,0x000000b6,0x000000b8,0x0004003d,0x00000006,0x000000ba,
|
||||
0x00000010,0x0004003d,0x00000006,0x000000bb,0x000000b6,0x00050084,0x00000006,0x000000bc,
|
||||
0x000000bb,0x0000003e,0x00050082,0x00000006,0x000000bd,0x000000ba,0x000000bc,0x0003003e,
|
||||
0x000000b9,0x000000bd,0x0003003e,0x000000be,0x0000006d,0x000200f9,0x000000bf,0x000200f8,
|
||||
0x000000bf,0x000400f6,0x000000c1,0x000000c2,0x00000000,0x000200f9,0x000000c3,0x000200f8,
|
||||
0x000000c3,0x0004003d,0x00000006,0x000000c4,0x000000be,0x0004003d,0x00000006,0x000000c5,
|
||||
0x000000b6,0x000500b1,0x0000009e,0x000000c6,0x000000c4,0x000000c5,0x000400fa,0x000000c6,
|
||||
0x000000c0,0x000000c1,0x000200f8,0x000000c0,0x0004003d,0x00000006,0x000000c8,0x000000be,
|
||||
0x00050084,0x00000006,0x000000c9,0x000000c8,0x0000003e,0x0003003e,0x000000c7,0x000000c9,
|
||||
0x0003003e,0x000000ca,0x0000006d,0x000200f9,0x000000cb,0x000200f8,0x000000cb,0x000400f6,
|
||||
0x000000cd,0x000000ce,0x00000000,0x000200f9,0x000000cf,0x000200f8,0x000000cf,0x0004003d,
|
||||
0x00000006,0x000000d0,0x000000ca,0x000500b1,0x0000009e,0x000000d2,0x000000d0,0x000000d1,
|
||||
0x000400fa,0x000000d2,0x000000cc,0x000000cd,0x000200f8,0x000000cc,0x0004003d,0x00000006,
|
||||
0x000000d9,0x0000003a,0x0004003d,0x00000006,0x000000da,0x000000ca,0x00050084,0x00000006,
|
||||
0x000000db,0x000000da,0x000000d1,0x0004003d,0x00000006,0x000000dc,0x00000040,0x00050080,
|
||||
0x00000006,0x000000dd,0x000000db,0x000000dc,0x0004003d,0x00000006,0x000000e2,0x0000004f,
|
||||
0x0004003d,0x00000006,0x000000e3,0x000000ca,0x00050084,0x00000006,0x000000e4,0x000000e3,
|
||||
0x000000d1,0x0004003d,0x00000006,0x000000e5,0x00000010,0x00050084,0x00000006,0x000000e6,
|
||||
0x000000e4,0x000000e5,0x00050080,0x00000006,0x000000e7,0x000000e2,0x000000e6,0x0004003d,
|
||||
0x00000006,0x000000e8,0x000000c7,0x00050080,0x00000006,0x000000e9,0x000000e7,0x000000e8,
|
||||
0x00060041,0x000000ae,0x000000ea,0x000000e1,0x0000006d,0x000000e9,0x0004003d,0x000000a0,
|
||||
0x000000eb,0x000000ea,0x00060041,0x000000ec,0x000000ed,0x000000d8,0x000000d9,0x000000dd,
|
||||
0x0003003e,0x000000ed,0x000000eb,0x000200f9,0x000000ce,0x000200f8,0x000000ce,0x0004003d,
|
||||
0x00000006,0x000000ee,0x000000ca,0x00050080,0x00000006,0x000000ef,0x000000ee,0x00000071,
|
||||
0x0003003e,0x000000ca,0x000000ef,0x000200f9,0x000000cb,0x000200f8,0x000000cd,0x0003003e,
|
||||
0x000000f0,0x0000006d,0x000200f9,0x000000f1,0x000200f8,0x000000f1,0x000400f6,0x000000f3,
|
||||
0x000000f4,0x00000000,0x000200f9,0x000000f5,0x000200f8,0x000000f5,0x0004003d,0x00000006,
|
||||
0x000000f6,0x000000f0,0x000500b1,0x0000009e,0x000000f7,0x000000f6,0x000000d1,0x000400fa,
|
||||
0x000000f7,0x000000f2,0x000000f3,0x000200f8,0x000000f2,0x0004003d,0x00000006,0x000000f9,
|
||||
0x0000004a,0x0004003d,0x00000006,0x000000fa,0x000000f0,0x00050084,0x00000006,0x000000fb,
|
||||
0x000000fa,0x00000094,0x00050080,0x00000006,0x000000fc,0x000000f9,0x000000fb,0x0004003d,
|
||||
0x00000006,0x000000fd,0x000000c7,0x00050080,0x00000006,0x000000fe,0x000000fc,0x000000fd,
|
||||
0x0003003e,0x000000f8,0x000000fe,0x00050041,0x0000000d,0x00000100,0x0000000b,0x000000d1,
|
||||
0x0004003d,0x00000006,0x00000101,0x00000100,0x00050041,0x0000000d,0x00000103,0x0000000b,
|
||||
0x00000102,0x0004003d,0x00000006,0x00000104,0x00000103,0x00050084,0x00000006,0x00000105,
|
||||
0x00000101,0x00000104,0x0003003e,0x000000ff,0x00000105,0x0004003d,0x00000006,0x00000107,
|
||||
0x000000f8,0x0004003d,0x00000006,0x00000108,0x000000ff,0x00050087,0x00000006,0x00000109,
|
||||
0x00000107,0x00000108,0x0003003e,0x00000106,0x00000109,0x0004003d,0x00000006,0x0000010b,
|
||||
0x000000f8,0x0004003d,0x00000006,0x0000010c,0x00000106,0x0004003d,0x00000006,0x0000010d,
|
||||
0x000000ff,0x00050084,0x00000006,0x0000010e,0x0000010c,0x0000010d,0x00050082,0x00000006,
|
||||
0x0000010f,0x0000010b,0x0000010e,0x0003003e,0x0000010a,0x0000010f,0x0004003d,0x00000006,
|
||||
0x00000111,0x0000010a,0x00050041,0x0000000d,0x00000112,0x0000000b,0x00000102,0x0004003d,
|
||||
0x00000006,0x00000113,0x00000112,0x00050087,0x00000006,0x00000114,0x00000111,0x00000113,
|
||||
0x0003003e,0x00000110,0x00000114,0x0004003d,0x00000006,0x00000116,0x0000010a,0x0004003d,
|
||||
0x00000006,0x00000117,0x00000110,0x00050041,0x0000000d,0x00000118,0x0000000b,0x00000102,
|
||||
0x0004003d,0x00000006,0x00000119,0x00000118,0x00050084,0x00000006,0x0000011a,0x00000117,
|
||||
0x00000119,0x00050082,0x00000006,0x0000011b,0x00000116,0x0000011a,0x0003003e,0x00000115,
|
||||
0x0000011b,0x0004003d,0x00000006,0x0000011d,0x00000110,0x00050041,0x0000000d,0x0000011f,
|
||||
0x0000000b,0x0000011e,0x0004003d,0x00000006,0x00000120,0x0000011f,0x00050084,0x00000006,
|
||||
0x00000121,0x0000011d,0x00000120,0x0003003e,0x0000011c,0x00000121,0x0004003d,0x00000006,
|
||||
0x00000123,0x00000115,0x00050041,0x0000000d,0x00000125,0x0000000b,0x00000124,0x0004003d,
|
||||
0x00000006,0x00000126,0x00000125,0x00050084,0x00000006,0x00000127,0x00000123,0x00000126,
|
||||
0x0003003e,0x00000122,0x00000127,0x0004003d,0x00000006,0x00000129,0x00000045,0x0004003d,
|
||||
0x00000006,0x0000012a,0x00000028,0x00050080,0x00000006,0x0000012b,0x00000129,0x0000012a,
|
||||
0x0003003e,0x00000128,0x0000012b,0x0004003d,0x00000006,0x0000012d,0x00000128,0x00050041,
|
||||
0x0000000d,0x0000012e,0x0000000b,0x00000018,0x0004003d,0x00000006,0x0000012f,0x0000012e,
|
||||
0x00050087,0x00000006,0x00000130,0x0000012d,0x0000012f,0x0003003e,0x0000012c,0x00000130,
|
||||
0x0004003d,0x00000006,0x00000132,0x00000128,0x0004003d,0x00000006,0x00000133,0x0000012c,
|
||||
0x00050041,0x0000000d,0x00000134,0x0000000b,0x00000018,0x0004003d,0x00000006,0x00000135,
|
||||
0x00000134,0x00050084,0x00000006,0x00000136,0x00000133,0x00000135,0x00050082,0x00000006,
|
||||
0x00000137,0x00000132,0x00000136,0x0003003e,0x00000131,0x00000137,0x0004003d,0x00000006,
|
||||
0x00000139,0x0000012c,0x00050041,0x0000000d,0x0000013a,0x0000000b,0x00000094,0x0004003d,
|
||||
0x00000006,0x0000013b,0x0000013a,0x00050084,0x00000006,0x0000013c,0x00000139,0x0000013b,
|
||||
0x0004003d,0x00000006,0x0000013d,0x0000011c,0x00050080,0x00000006,0x0000013e,0x0000013c,
|
||||
0x0000013d,0x00050041,0x0000000d,0x00000140,0x0000000b,0x0000013f,0x0004003d,0x00000006,
|
||||
0x00000141,0x00000140,0x00050082,0x00000006,0x00000142,0x0000013e,0x00000141,0x0003003e,
|
||||
0x00000138,0x00000142,0x0004003d,0x00000006,0x00000144,0x00000131,0x00050041,0x0000000d,
|
||||
0x00000146,0x0000000b,0x00000145,0x0004003d,0x00000006,0x00000147,0x00000146,0x00050084,
|
||||
0x00000006,0x00000148,0x00000144,0x00000147,0x0004003d,0x00000006,0x00000149,0x00000122,
|
||||
0x00050080,0x00000006,0x0000014a,0x00000148,0x00000149,0x00050041,0x0000000d,0x0000014c,
|
||||
0x0000000b,0x0000014b,0x0004003d,0x00000006,0x0000014d,0x0000014c,0x00050082,0x00000006,
|
||||
0x0000014e,0x0000014a,0x0000014d,0x0003003e,0x00000143,0x0000014e,0x0004003d,0x00000006,
|
||||
0x0000014f,0x00000106,0x00050041,0x0000000d,0x00000150,0x0000000b,0x00000075,0x0004003d,
|
||||
0x00000006,0x00000151,0x00000150,0x000500b1,0x0000009e,0x00000152,0x0000014f,0x00000151,
|
||||
0x000300f7,0x00000154,0x00000000,0x000400fa,0x00000152,0x00000153,0x00000154,0x000200f8,
|
||||
0x00000153,0x0004003d,0x00000006,0x00000155,0x00000138,0x0004007c,0x0000001d,0x00000156,
|
||||
0x00000155,0x00050041,0x0000000d,0x00000157,0x0000000b,0x0000006d,0x0004003d,0x00000006,
|
||||
0x00000158,0x00000157,0x0004007c,0x0000001d,0x00000159,0x00000158,0x000500b0,0x0000009e,
|
||||
0x0000015a,0x00000156,0x00000159,0x000200f9,0x00000154,0x000200f8,0x00000154,0x000700f5,
|
||||
0x0000009e,0x0000015b,0x00000152,0x000000f2,0x0000015a,0x00000153,0x000300f7,0x0000015d,
|
||||
0x00000000,0x000400fa,0x0000015b,0x0000015c,0x0000015d,0x000200f8,0x0000015c,0x0004003d,
|
||||
0x00000006,0x0000015e,0x00000143,0x0004007c,0x0000001d,0x0000015f,0x0000015e,0x00050041,
|
||||
0x0000000d,0x00000160,0x0000000b,0x00000071,0x0004003d,0x00000006,0x00000161,0x00000160,
|
||||
0x0004007c,0x0000001d,0x00000162,0x00000161,0x000500b0,0x0000009e,0x00000163,0x0000015f,
|
||||
0x00000162,0x000200f9,0x0000015d,0x000200f8,0x0000015d,0x000700f5,0x0000009e,0x00000164,
|
||||
0x0000015b,0x00000154,0x00000163,0x0000015c,0x000300f7,0x00000166,0x00000000,0x000400fa,
|
||||
0x00000164,0x00000165,0x00000187,0x000200f8,0x00000165,0x0004003d,0x00000006,0x0000016b,
|
||||
0x00000045,0x0004003d,0x00000006,0x0000016c,0x000000f0,0x00050084,0x00000006,0x0000016d,
|
||||
0x0000016c,0x00000094,0x0004003d,0x00000006,0x0000016e,0x0000004a,0x00050080,0x00000006,
|
||||
0x0000016f,0x0000016d,0x0000016e,0x0004003d,0x00000006,0x00000174,0x00000062,0x0004003d,
|
||||
0x00000006,0x00000175,0x00000106,0x00050041,0x0000000d,0x00000176,0x0000000b,0x0000006d,
|
||||
0x0004003d,0x00000006,0x00000177,0x00000176,0x00050084,0x00000006,0x00000178,0x00000175,
|
||||
0x00000177,0x00050041,0x0000000d,0x00000179,0x0000000b,0x00000071,0x0004003d,0x00000006,
|
||||
0x0000017a,0x00000179,0x00050084,0x00000006,0x0000017b,0x00000178,0x0000017a,0x00050080,
|
||||
0x00000006,0x0000017c,0x00000174,0x0000017b,0x0004003d,0x00000006,0x0000017d,0x00000138,
|
||||
0x00050041,0x0000000d,0x0000017e,0x0000000b,0x00000071,0x0004003d,0x00000006,0x0000017f,
|
||||
0x0000017e,0x00050084,0x00000006,0x00000180,0x0000017d,0x0000017f,0x00050080,0x00000006,
|
||||
0x00000181,0x0000017c,0x00000180,0x0004003d,0x00000006,0x00000182,0x00000143,0x00050080,
|
||||
0x00000006,0x00000183,0x00000181,0x00000182,0x00060041,0x000000ae,0x00000184,0x00000173,
|
||||
0x0000006d,0x00000183,0x0004003d,0x000000a0,0x00000185,0x00000184,0x00060041,0x000000ec,
|
||||
0x00000186,0x0000016a,0x0000016b,0x0000016f,0x0003003e,0x00000186,0x00000185,0x000200f9,
|
||||
0x00000166,0x000200f8,0x00000187,0x0004003d,0x00000006,0x00000188,0x00000045,0x0004003d,
|
||||
0x00000006,0x00000189,0x000000f0,0x00050084,0x00000006,0x0000018a,0x00000189,0x00000094,
|
||||
0x0004003d,0x00000006,0x0000018b,0x0000004a,0x00050080,0x00000006,0x0000018c,0x0000018a,
|
||||
0x0000018b,0x00060041,0x000000ec,0x0000018e,0x0000016a,0x00000188,0x0000018c,0x0003003e,
|
||||
0x0000018e,0x0000018d,0x000200f9,0x00000166,0x000200f8,0x00000166,0x000200f9,0x000000f4,
|
||||
0x000200f8,0x000000f4,0x0004003d,0x00000006,0x0000018f,0x000000f0,0x00050080,0x00000006,
|
||||
0x00000190,0x0000018f,0x00000071,0x0003003e,0x000000f0,0x00000190,0x000200f9,0x000000f1,
|
||||
0x000200f8,0x000000f3,0x000400e0,0x00000191,0x00000191,0x00000192,0x0003003e,0x00000193,
|
||||
0x0000006d,0x000200f9,0x00000194,0x000200f8,0x00000194,0x000400f6,0x00000196,0x00000197,
|
||||
0x00000000,0x000200f9,0x00000198,0x000200f8,0x00000198,0x0004003d,0x00000006,0x00000199,
|
||||
0x00000193,0x000500b1,0x0000009e,0x0000019a,0x00000199,0x0000003e,0x000400fa,0x0000019a,
|
||||
0x00000195,0x00000196,0x000200f8,0x00000195,0x0003003e,0x0000019b,0x0000006d,0x000200f9,
|
||||
0x0000019c,0x000200f8,0x0000019c,0x000400f6,0x0000019e,0x0000019f,0x00000000,0x000200f9,
|
||||
0x000001a0,0x000200f8,0x000001a0,0x0004003d,0x00000006,0x000001a1,0x0000019b,0x000500b1,
|
||||
0x0000009e,0x000001a2,0x000001a1,0x00000094,0x000400fa,0x000001a2,0x0000019d,0x0000019e,
|
||||
0x000200f8,0x0000019d,0x0004003d,0x00000006,0x000001a6,0x0000019b,0x0004003d,0x00000006,
|
||||
0x000001a7,0x00000193,0x0004003d,0x00000006,0x000001a8,0x0000002e,0x00050084,0x00000006,
|
||||
0x000001a9,0x000001a8,0x00000094,0x0004003d,0x00000006,0x000001aa,0x0000019b,0x00050080,
|
||||
0x00000006,0x000001ab,0x000001a9,0x000001aa,0x00060041,0x000000ec,0x000001ac,0x000000d8,
|
||||
0x000001a7,0x000001ab,0x0004003d,0x000000a0,0x000001ad,0x000001ac,0x00050041,0x000001ae,
|
||||
0x000001af,0x000001a5,0x000001a6,0x0003003e,0x000001af,0x000001ad,0x000200f9,0x0000019f,
|
||||
0x000200f8,0x0000019f,0x0004003d,0x00000006,0x000001b0,0x0000019b,0x00050080,0x00000006,
|
||||
0x000001b1,0x000001b0,0x00000071,0x0003003e,0x0000019b,0x000001b1,0x000200f9,0x0000019c,
|
||||
0x000200f8,0x0000019e,0x0003003e,0x000001b2,0x0000006d,0x000200f9,0x000001b3,0x000200f8,
|
||||
0x000001b3,0x000400f6,0x000001b5,0x000001b6,0x00000000,0x000200f9,0x000001b7,0x000200f8,
|
||||
0x000001b7,0x0004003d,0x00000006,0x000001b8,0x000001b2,0x000500b1,0x0000009e,0x000001b9,
|
||||
0x000001b8,0x00000094,0x000400fa,0x000001b9,0x000001b4,0x000001b5,0x000200f8,0x000001b4,
|
||||
0x0004003d,0x00000006,0x000001bb,0x000001b2,0x0004003d,0x00000006,0x000001bc,0x00000035,
|
||||
0x0004003d,0x00000006,0x000001bd,0x000001b2,0x00050084,0x00000006,0x000001be,0x00000033,
|
||||
0x000001bd,0x00050080,0x00000006,0x000001bf,0x000001bc,0x000001be,0x0004003d,0x00000006,
|
||||
0x000001c0,0x00000193,0x00060041,0x000000ec,0x000001c1,0x0000016a,0x000001bf,0x000001c0,
|
||||
0x0004003d,0x000000a0,0x000001c2,0x000001c1,0x00050041,0x000001ae,0x000001c3,0x000001ba,
|
||||
0x000001bb,0x0003003e,0x000001c3,0x000001c2,0x000200f9,0x000001b6,0x000200f8,0x000001b6,
|
||||
0x0004003d,0x00000006,0x000001c4,0x000001b2,0x00050080,0x00000006,0x000001c5,0x000001c4,
|
||||
0x00000071,0x0003003e,0x000001b2,0x000001c5,0x000200f9,0x000001b3,0x000200f8,0x000001b5,
|
||||
0x0003003e,0x000001c6,0x0000006d,0x000200f9,0x000001c7,0x000200f8,0x000001c7,0x000400f6,
|
||||
0x000001c9,0x000001ca,0x00000000,0x000200f9,0x000001cb,0x000200f8,0x000001cb,0x0004003d,
|
||||
0x00000006,0x000001cc,0x000001c6,0x000500b1,0x0000009e,0x000001cd,0x000001cc,0x00000094,
|
||||
0x000400fa,0x000001cd,0x000001c8,0x000001c9,0x000200f8,0x000001c8,0x0003003e,0x000001ce,
|
||||
0x0000006d,0x000200f9,0x000001cf,0x000200f8,0x000001cf,0x000400f6,0x000001d1,0x000001d2,
|
||||
0x00000000,0x000200f9,0x000001d3,0x000200f8,0x000001d3,0x0004003d,0x00000006,0x000001d4,
|
||||
0x000001ce,0x000500b1,0x0000009e,0x000001d5,0x000001d4,0x00000094,0x000400fa,0x000001d5,
|
||||
0x000001d0,0x000001d1,0x000200f8,0x000001d0,0x0004003d,0x00000006,0x000001d6,0x000001c6,
|
||||
0x0004003d,0x00000006,0x000001d7,0x000001ce,0x0004003d,0x00000006,0x000001d8,0x000001c6,
|
||||
0x00050041,0x000001ae,0x000001d9,0x000001a5,0x000001d8,0x0004003d,0x000000a0,0x000001da,
|
||||
0x000001d9,0x0004003d,0x00000006,0x000001db,0x000001ce,0x00050041,0x000001ae,0x000001dc,
|
||||
0x000001ba,0x000001db,0x0004003d,0x000000a0,0x000001dd,0x000001dc,0x00050085,0x000000a0,
|
||||
0x000001de,0x000001da,0x000001dd,0x00060041,0x000001ae,0x000001df,0x000000a5,0x000001d6,
|
||||
0x000001d7,0x0004003d,0x000000a0,0x000001e0,0x000001df,0x00050081,0x000000a0,0x000001e1,
|
||||
0x000001e0,0x000001de,0x00060041,0x000001ae,0x000001e2,0x000000a5,0x000001d6,0x000001d7,
|
||||
0x0003003e,0x000001e2,0x000001e1,0x000200f9,0x000001d2,0x000200f8,0x000001d2,0x0004003d,
|
||||
0x00000006,0x000001e3,0x000001ce,0x00050080,0x00000006,0x000001e4,0x000001e3,0x00000071,
|
||||
0x0003003e,0x000001ce,0x000001e4,0x000200f9,0x000001cf,0x000200f8,0x000001d1,0x000200f9,
|
||||
0x000001ca,0x000200f8,0x000001ca,0x0004003d,0x00000006,0x000001e5,0x000001c6,0x00050080,
|
||||
0x00000006,0x000001e6,0x000001e5,0x00000071,0x0003003e,0x000001c6,0x000001e6,0x000200f9,
|
||||
0x000001c7,0x000200f8,0x000001c9,0x000200f9,0x00000197,0x000200f8,0x00000197,0x0004003d,
|
||||
0x00000006,0x000001e7,0x00000193,0x00050080,0x00000006,0x000001e8,0x000001e7,0x00000071,
|
||||
0x0003003e,0x00000193,0x000001e8,0x000200f9,0x00000194,0x000200f8,0x00000196,0x000400e0,
|
||||
0x00000191,0x00000191,0x00000192,0x000200f9,0x000000c2,0x000200f8,0x000000c2,0x0004003d,
|
||||
0x00000006,0x000001e9,0x000000be,0x00050080,0x00000006,0x000001ea,0x000001e9,0x00000071,
|
||||
0x0003003e,0x000000be,0x000001ea,0x000200f9,0x000000bf,0x000200f8,0x000000c1,0x00050041,
|
||||
0x0000000d,0x000001eb,0x0000000b,0x00000033,0x0004003d,0x00000006,0x000001ec,0x000001eb,
|
||||
0x000500aa,0x0000009e,0x000001ed,0x000001ec,0x00000071,0x000300f7,0x000001ef,0x00000000,
|
||||
0x000400fa,0x000001ed,0x000001ee,0x00000201,0x000200f8,0x000001ee,0x00050041,0x000000b2,
|
||||
0x000001f0,0x000000a5,0x0000006d,0x0004003d,0x000000a1,0x000001f1,0x000001f0,0x0007000c,
|
||||
0x000000a1,0x000001f3,0x00000001,0x00000028,0x000001f1,0x000001f2,0x00050041,0x000000b2,
|
||||
0x000001f4,0x000000a5,0x0000006d,0x0003003e,0x000001f4,0x000001f3,0x00050041,0x000000b2,
|
||||
0x000001f5,0x000000a5,0x00000071,0x0004003d,0x000000a1,0x000001f6,0x000001f5,0x0007000c,
|
||||
0x000000a1,0x000001f7,0x00000001,0x00000028,0x000001f6,0x000001f2,0x00050041,0x000000b2,
|
||||
0x000001f8,0x000000a5,0x00000071,0x0003003e,0x000001f8,0x000001f7,0x00050041,0x000000b2,
|
||||
0x000001f9,0x000000a5,0x00000015,0x0004003d,0x000000a1,0x000001fa,0x000001f9,0x0007000c,
|
||||
0x000000a1,0x000001fb,0x00000001,0x00000028,0x000001fa,0x000001f2,0x00050041,0x000000b2,
|
||||
0x000001fc,0x000000a5,0x00000015,0x0003003e,0x000001fc,0x000001fb,0x00050041,0x000000b2,
|
||||
0x000001fd,0x000000a5,0x00000018,0x0004003d,0x000000a1,0x000001fe,0x000001fd,0x0007000c,
|
||||
0x000000a1,0x000001ff,0x00000001,0x00000028,0x000001fe,0x000001f2,0x00050041,0x000000b2,
|
||||
0x00000200,0x000000a5,0x00000018,0x0003003e,0x00000200,0x000001ff,0x000200f9,0x000001ef,
|
||||
0x000200f8,0x00000201,0x00050041,0x0000000d,0x00000202,0x0000000b,0x00000033,0x0004003d,
|
||||
0x00000006,0x00000203,0x00000202,0x000500aa,0x0000009e,0x00000204,0x00000203,0x00000015,
|
||||
0x000300f7,0x00000206,0x00000000,0x000400fa,0x00000204,0x00000205,0x00000206,0x000200f8,
|
||||
0x00000205,0x00050041,0x000000b2,0x00000207,0x000000a5,0x0000006d,0x0004003d,0x000000a1,
|
||||
0x00000208,0x00000207,0x0008000c,0x000000a1,0x0000020b,0x00000001,0x0000002b,0x00000208,
|
||||
0x000001f2,0x0000020a,0x00050041,0x000000b2,0x0000020c,0x000000a5,0x0000006d,0x0003003e,
|
||||
0x0000020c,0x0000020b,0x00050041,0x000000b2,0x0000020d,0x000000a5,0x00000071,0x0004003d,
|
||||
0x000000a1,0x0000020e,0x0000020d,0x0008000c,0x000000a1,0x0000020f,0x00000001,0x0000002b,
|
||||
0x0000020e,0x000001f2,0x0000020a,0x00050041,0x000000b2,0x00000210,0x000000a5,0x00000071,
|
||||
0x0003003e,0x00000210,0x0000020f,0x00050041,0x000000b2,0x00000211,0x000000a5,0x00000015,
|
||||
0x0004003d,0x000000a1,0x00000212,0x00000211,0x0008000c,0x000000a1,0x00000213,0x00000001,
|
||||
0x0000002b,0x00000212,0x000001f2,0x0000020a,0x00050041,0x000000b2,0x00000214,0x000000a5,
|
||||
0x00000015,0x0003003e,0x00000214,0x00000213,0x00050041,0x000000b2,0x00000215,0x000000a5,
|
||||
0x00000018,0x0004003d,0x000000a1,0x00000216,0x00000215,0x0008000c,0x000000a1,0x00000217,
|
||||
0x00000001,0x0000002b,0x00000216,0x000001f2,0x0000020a,0x00050041,0x000000b2,0x00000218,
|
||||
0x000000a5,0x00000018,0x0003003e,0x00000218,0x00000217,0x000200f9,0x00000206,0x000200f8,
|
||||
0x00000206,0x000200f9,0x000001ef,0x000200f8,0x000001ef,0x0003003e,0x00000219,0x0000006d,
|
||||
0x000200f9,0x0000021a,0x000200f8,0x0000021a,0x000400f6,0x0000021c,0x0000021d,0x00000000,
|
||||
0x000200f9,0x0000021e,0x000200f8,0x0000021e,0x0004003d,0x00000006,0x0000021f,0x00000219,
|
||||
0x000500b1,0x0000009e,0x00000220,0x0000021f,0x00000094,0x000400fa,0x00000220,0x0000021b,
|
||||
0x0000021c,0x000200f8,0x0000021b,0x0004003d,0x00000006,0x00000222,0x00000028,0x0004003d,
|
||||
0x00000006,0x00000223,0x00000219,0x00050084,0x00000006,0x00000224,0x00000223,0x00000033,
|
||||
0x00050080,0x00000006,0x00000225,0x00000222,0x00000224,0x0004003d,0x00000006,0x00000226,
|
||||
0x00000035,0x00050080,0x00000006,0x00000227,0x00000225,0x00000226,0x0003003e,0x00000221,
|
||||
0x00000227,0x0004003d,0x00000006,0x00000228,0x00000221,0x0004003d,0x00000006,0x00000229,
|
||||
0x00000014,0x000500b1,0x0000009e,0x0000022a,0x00000228,0x00000229,0x000300f7,0x0000022c,
|
||||
0x00000000,0x000400fa,0x0000022a,0x0000022b,0x0000022c,0x000200f8,0x0000022b,0x0003003e,
|
||||
0x0000022d,0x0000006d,0x000200f9,0x0000022e,0x000200f8,0x0000022e,0x000400f6,0x00000230,
|
||||
0x00000231,0x00000000,0x000200f9,0x00000232,0x000200f8,0x00000232,0x0004003d,0x00000006,
|
||||
0x00000233,0x0000022d,0x000500b1,0x0000009e,0x00000234,0x00000233,0x00000094,0x000400fa,
|
||||
0x00000234,0x0000022f,0x00000230,0x000200f8,0x0000022f,0x0004003d,0x00000006,0x00000236,
|
||||
0x0000001c,0x0004003d,0x00000006,0x00000237,0x0000002e,0x00050084,0x00000006,0x00000238,
|
||||
0x00000237,0x00000094,0x00050080,0x00000006,0x00000239,0x00000236,0x00000238,0x0004003d,
|
||||
0x00000006,0x0000023a,0x0000022d,0x00050080,0x00000006,0x0000023b,0x00000239,0x0000023a,
|
||||
0x0003003e,0x00000235,0x0000023b,0x0004003d,0x00000006,0x0000023c,0x00000235,0x0004003d,
|
||||
0x00000006,0x0000023d,0x00000008,0x000500b1,0x0000009e,0x0000023e,0x0000023c,0x0000023d,
|
||||
0x000300f7,0x00000240,0x00000000,0x000400fa,0x0000023e,0x0000023f,0x00000240,0x000200f8,
|
||||
0x0000023f,0x0004003d,0x00000006,0x00000245,0x00000079,0x0004003d,0x00000006,0x00000246,
|
||||
0x00000235,0x0004003d,0x00000006,0x00000247,0x00000014,0x00050084,0x00000006,0x00000248,
|
||||
0x00000246,0x00000247,0x00050080,0x00000006,0x00000249,0x00000245,0x00000248,0x0004003d,
|
||||
0x00000006,0x0000024a,0x00000221,0x00050080,0x00000006,0x0000024b,0x00000249,0x0000024a,
|
||||
0x0004003d,0x00000006,0x0000024c,0x0000022d,0x0004003d,0x00000006,0x0000024d,0x00000219,
|
||||
0x00060041,0x000001ae,0x0000024e,0x000000a5,0x0000024c,0x0000024d,0x0004003d,0x000000a0,
|
||||
0x0000024f,0x0000024e,0x00060041,0x000000ae,0x00000250,0x00000244,0x0000006d,0x0000024b,
|
||||
0x0003003e,0x00000250,0x0000024f,0x000200f9,0x00000240,0x000200f8,0x00000240,0x000200f9,
|
||||
0x00000231,0x000200f8,0x00000231,0x0004003d,0x00000006,0x00000251,0x0000022d,0x00050080,
|
||||
0x00000006,0x00000252,0x00000251,0x00000071,0x0003003e,0x0000022d,0x00000252,0x000200f9,
|
||||
0x0000022e,0x000200f8,0x00000230,0x000200f9,0x0000022c,0x000200f8,0x0000022c,0x000200f9,
|
||||
0x0000021d,0x000200f8,0x0000021d,0x0004003d,0x00000006,0x00000253,0x00000219,0x00050080,
|
||||
0x00000006,0x00000254,0x00000253,0x00000071,0x0003003e,0x00000219,0x00000254,0x000200f9,
|
||||
0x0000021a,0x000200f8,0x0000021c,0x000100fd,0x00010038
|
||||
};
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,252 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
extern const unsigned int conv_spv[1894] = {
|
||||
0x07230203,0x00010000,0x00080001,0x00000123,0x00000000,0x00020011,0x00000001,0x0006000b,
|
||||
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
|
||||
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000c,0x00060010,0x00000004,
|
||||
0x00000011,0x00000100,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005,
|
||||
0x00000004,0x6e69616d,0x00000000,0x00030005,0x00000008,0x00007867,0x00080005,0x0000000c,
|
||||
0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00030005,0x00000012,
|
||||
0x00007967,0x00050005,0x00000017,0x68737570,0x636f6c42,0x0000006b,0x00050006,0x00000017,
|
||||
0x00000000,0x685f6e69,0x00000000,0x00050006,0x00000017,0x00000001,0x775f6e69,0x00000000,
|
||||
0x00050006,0x00000017,0x00000002,0x5f74756f,0x00000068,0x00050006,0x00000017,0x00000003,
|
||||
0x5f74756f,0x00000077,0x00060006,0x00000017,0x00000004,0x69727473,0x685f6564,0x00000000,
|
||||
0x00060006,0x00000017,0x00000005,0x69727473,0x775f6564,0x00000000,0x00050006,0x00000017,
|
||||
0x00000006,0x5f646170,0x00000068,0x00050006,0x00000017,0x00000007,0x5f646170,0x00000077,
|
||||
0x00060006,0x00000017,0x00000008,0x746c6966,0x685f7265,0x00000000,0x00060006,0x00000017,
|
||||
0x00000009,0x746c6966,0x775f7265,0x00000000,0x00060006,0x00000017,0x0000000a,0x616c6964,
|
||||
0x6e6f6974,0x0000685f,0x00060006,0x00000017,0x0000000b,0x616c6964,0x6e6f6974,0x0000775f,
|
||||
0x00060006,0x00000017,0x0000000c,0x6e616863,0x736c656e,0x00000000,0x00050006,0x00000017,
|
||||
0x0000000d,0x63746162,0x00000068,0x00060006,0x00000017,0x0000000e,0x5f736168,0x73616962,
|
||||
0x00000000,0x00040006,0x00000017,0x0000000f,0x0000004d,0x00040006,0x00000017,0x00000010,
|
||||
0x0000004b,0x00040006,0x00000017,0x00000011,0x0000004e,0x00090006,0x00000017,0x00000012,
|
||||
0x69736162,0x68735f63,0x72656461,0x7461625f,0x695f6863,0x00007864,0x00090006,0x00000017,
|
||||
0x00000013,0x69736162,0x68735f63,0x72656461,0x6f72675f,0x695f7075,0x00007864,0x00090006,
|
||||
0x00000017,0x00000014,0x69736162,0x68735f63,0x72656461,0x6f72675f,0x735f7075,0x00657a69,
|
||||
0x00030005,0x00000019,0x00000070,0x00030005,0x00000023,0x00007a67,0x00030005,0x00000039,
|
||||
0x006d7573,0x00050005,0x0000003b,0x7074756f,0x795f7475,0x00000000,0x00050005,0x00000041,
|
||||
0x7074756f,0x785f7475,0x00000000,0x00040005,0x00000046,0x5f67726f,0x00000079,0x00040005,
|
||||
0x00000050,0x5f67726f,0x00000078,0x00050005,0x0000005a,0x67696577,0x6f5f7468,0x00006666,
|
||||
0x00050005,0x00000060,0x75706e69,0x666f5f74,0x00000066,0x00030005,0x00000075,0x00000063,
|
||||
0x00030005,0x0000007f,0x00000079,0x00030005,0x0000008a,0x00000078,0x00040005,0x000000c3,
|
||||
0x75706e49,0x00003074,0x00060006,0x000000c3,0x00000000,0x67616d69,0x61645f65,0x00006174,
|
||||
0x00030005,0x000000c5,0x00000000,0x00040005,0x000000d0,0x75706e49,0x00003374,0x00060006,
|
||||
0x000000d0,0x00000000,0x67696577,0x645f7468,0x00617461,0x00030005,0x000000d2,0x00000000,
|
||||
0x00040005,0x000000fc,0x7366666f,0x00007465,0x00040005,0x00000112,0x75706e49,0x00003174,
|
||||
0x00060006,0x00000112,0x00000000,0x73616962,0x7461645f,0x00000061,0x00030005,0x00000114,
|
||||
0x00000000,0x00040005,0x0000011b,0x7074754f,0x00007475,0x00090006,0x0000011b,0x00000000,
|
||||
0x766e6f63,0x65766c6f,0x6d695f64,0x5f656761,0x61746164,0x00000000,0x00030005,0x0000011d,
|
||||
0x00000000,0x00040047,0x0000000c,0x0000000b,0x0000001c,0x00050048,0x00000017,0x00000000,
|
||||
0x00000023,0x00000000,0x00050048,0x00000017,0x00000001,0x00000023,0x00000004,0x00050048,
|
||||
0x00000017,0x00000002,0x00000023,0x00000008,0x00050048,0x00000017,0x00000003,0x00000023,
|
||||
0x0000000c,0x00050048,0x00000017,0x00000004,0x00000023,0x00000010,0x00050048,0x00000017,
|
||||
0x00000005,0x00000023,0x00000014,0x00050048,0x00000017,0x00000006,0x00000023,0x00000018,
|
||||
0x00050048,0x00000017,0x00000007,0x00000023,0x0000001c,0x00050048,0x00000017,0x00000008,
|
||||
0x00000023,0x00000020,0x00050048,0x00000017,0x00000009,0x00000023,0x00000024,0x00050048,
|
||||
0x00000017,0x0000000a,0x00000023,0x00000028,0x00050048,0x00000017,0x0000000b,0x00000023,
|
||||
0x0000002c,0x00050048,0x00000017,0x0000000c,0x00000023,0x00000030,0x00050048,0x00000017,
|
||||
0x0000000d,0x00000023,0x00000034,0x00050048,0x00000017,0x0000000e,0x00000023,0x00000038,
|
||||
0x00050048,0x00000017,0x0000000f,0x00000023,0x0000003c,0x00050048,0x00000017,0x00000010,
|
||||
0x00000023,0x00000040,0x00050048,0x00000017,0x00000011,0x00000023,0x00000044,0x00050048,
|
||||
0x00000017,0x00000012,0x00000023,0x00000048,0x00050048,0x00000017,0x00000013,0x00000023,
|
||||
0x0000004c,0x00050048,0x00000017,0x00000014,0x00000023,0x00000050,0x00030047,0x00000017,
|
||||
0x00000002,0x00040047,0x000000c2,0x00000006,0x00000004,0x00040048,0x000000c3,0x00000000,
|
||||
0x00000018,0x00050048,0x000000c3,0x00000000,0x00000023,0x00000000,0x00030047,0x000000c3,
|
||||
0x00000003,0x00040047,0x000000c5,0x00000022,0x00000000,0x00040047,0x000000c5,0x00000021,
|
||||
0x00000000,0x00040047,0x000000cf,0x00000006,0x00000004,0x00040048,0x000000d0,0x00000000,
|
||||
0x00000018,0x00050048,0x000000d0,0x00000000,0x00000023,0x00000000,0x00030047,0x000000d0,
|
||||
0x00000003,0x00040047,0x000000d2,0x00000022,0x00000000,0x00040047,0x000000d2,0x00000021,
|
||||
0x00000002,0x00040047,0x00000111,0x00000006,0x00000004,0x00040048,0x00000112,0x00000000,
|
||||
0x00000018,0x00050048,0x00000112,0x00000000,0x00000023,0x00000000,0x00030047,0x00000112,
|
||||
0x00000003,0x00040047,0x00000114,0x00000022,0x00000000,0x00040047,0x00000114,0x00000021,
|
||||
0x00000001,0x00040047,0x0000011a,0x00000006,0x00000004,0x00040048,0x0000011b,0x00000000,
|
||||
0x00000019,0x00050048,0x0000011b,0x00000000,0x00000023,0x00000000,0x00030047,0x0000011b,
|
||||
0x00000003,0x00040047,0x0000011d,0x00000022,0x00000000,0x00040047,0x0000011d,0x00000021,
|
||||
0x00000003,0x00040047,0x00000122,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,
|
||||
0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000001,0x00040020,0x00000007,
|
||||
0x00000007,0x00000006,0x00040015,0x00000009,0x00000020,0x00000000,0x00040017,0x0000000a,
|
||||
0x00000009,0x00000003,0x00040020,0x0000000b,0x00000001,0x0000000a,0x0004003b,0x0000000b,
|
||||
0x0000000c,0x00000001,0x0004002b,0x00000009,0x0000000d,0x00000000,0x00040020,0x0000000e,
|
||||
0x00000001,0x00000009,0x0004002b,0x00000009,0x00000013,0x00000001,0x0017001e,0x00000017,
|
||||
0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,
|
||||
0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,
|
||||
0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x00000018,0x00000009,
|
||||
0x00000017,0x0004003b,0x00000018,0x00000019,0x00000009,0x0004002b,0x00000006,0x0000001a,
|
||||
0x00000013,0x00040020,0x0000001b,0x00000009,0x00000006,0x0004002b,0x00000006,0x0000001e,
|
||||
0x00000014,0x0004002b,0x00000006,0x00000024,0x00000012,0x00020014,0x00000027,0x0004002b,
|
||||
0x00000006,0x00000029,0x0000000f,0x0004002b,0x00000006,0x00000030,0x00000011,0x00030016,
|
||||
0x00000037,0x00000020,0x00040020,0x00000038,0x00000007,0x00000037,0x0004002b,0x00000037,
|
||||
0x0000003a,0x00000000,0x0004002b,0x00000006,0x0000003d,0x00000003,0x0004002b,0x00000006,
|
||||
0x00000048,0x00000004,0x0004002b,0x00000006,0x0000004c,0x00000006,0x0004002b,0x00000006,
|
||||
0x00000052,0x00000005,0x0004002b,0x00000006,0x00000056,0x00000007,0x0004002b,0x00000006,
|
||||
0x0000005c,0x00000010,0x0004002b,0x00000006,0x00000062,0x00000000,0x0004002b,0x00000006,
|
||||
0x00000066,0x00000001,0x0004002b,0x00000006,0x0000006a,0x0000000c,0x0004002b,0x00000006,
|
||||
0x00000086,0x00000008,0x0004002b,0x00000006,0x00000091,0x00000009,0x0004002b,0x00000006,
|
||||
0x00000097,0x0000000a,0x0004002b,0x00000006,0x000000ad,0x0000000b,0x0003001d,0x000000c2,
|
||||
0x00000037,0x0003001e,0x000000c3,0x000000c2,0x00040020,0x000000c4,0x00000002,0x000000c3,
|
||||
0x0004003b,0x000000c4,0x000000c5,0x00000002,0x00040020,0x000000cc,0x00000002,0x00000037,
|
||||
0x0003001d,0x000000cf,0x00000037,0x0003001e,0x000000d0,0x000000cf,0x00040020,0x000000d1,
|
||||
0x00000002,0x000000d0,0x0004003b,0x000000d1,0x000000d2,0x00000002,0x0004002b,0x00000006,
|
||||
0x0000010b,0x0000000e,0x0003001d,0x00000111,0x00000037,0x0003001e,0x00000112,0x00000111,
|
||||
0x00040020,0x00000113,0x00000002,0x00000112,0x0004003b,0x00000113,0x00000114,0x00000002,
|
||||
0x0003001d,0x0000011a,0x00000037,0x0003001e,0x0000011b,0x0000011a,0x00040020,0x0000011c,
|
||||
0x00000002,0x0000011b,0x0004003b,0x0000011c,0x0000011d,0x00000002,0x0004002b,0x00000009,
|
||||
0x00000121,0x00000100,0x0006002c,0x0000000a,0x00000122,0x00000121,0x00000013,0x00000013,
|
||||
0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,
|
||||
0x00000007,0x00000008,0x00000007,0x0004003b,0x00000007,0x00000012,0x00000007,0x0004003b,
|
||||
0x00000007,0x00000023,0x00000007,0x0004003b,0x00000038,0x00000039,0x00000007,0x0004003b,
|
||||
0x00000007,0x0000003b,0x00000007,0x0004003b,0x00000007,0x00000041,0x00000007,0x0004003b,
|
||||
0x00000007,0x00000046,0x00000007,0x0004003b,0x00000007,0x00000050,0x00000007,0x0004003b,
|
||||
0x00000007,0x0000005a,0x00000007,0x0004003b,0x00000007,0x00000060,0x00000007,0x0004003b,
|
||||
0x00000007,0x00000075,0x00000007,0x0004003b,0x00000007,0x0000007f,0x00000007,0x0004003b,
|
||||
0x00000007,0x0000008a,0x00000007,0x0004003b,0x00000007,0x000000fc,0x00000007,0x00050041,
|
||||
0x0000000e,0x0000000f,0x0000000c,0x0000000d,0x0004003d,0x00000009,0x00000010,0x0000000f,
|
||||
0x0004007c,0x00000006,0x00000011,0x00000010,0x0003003e,0x00000008,0x00000011,0x00050041,
|
||||
0x0000000e,0x00000014,0x0000000c,0x00000013,0x0004003d,0x00000009,0x00000015,0x00000014,
|
||||
0x0004007c,0x00000006,0x00000016,0x00000015,0x00050041,0x0000001b,0x0000001c,0x00000019,
|
||||
0x0000001a,0x0004003d,0x00000006,0x0000001d,0x0000001c,0x00050041,0x0000001b,0x0000001f,
|
||||
0x00000019,0x0000001e,0x0004003d,0x00000006,0x00000020,0x0000001f,0x00050084,0x00000006,
|
||||
0x00000021,0x0000001d,0x00000020,0x00050080,0x00000006,0x00000022,0x00000016,0x00000021,
|
||||
0x0003003e,0x00000012,0x00000022,0x00050041,0x0000001b,0x00000025,0x00000019,0x00000024,
|
||||
0x0004003d,0x00000006,0x00000026,0x00000025,0x0003003e,0x00000023,0x00000026,0x0004003d,
|
||||
0x00000006,0x00000028,0x00000008,0x00050041,0x0000001b,0x0000002a,0x00000019,0x00000029,
|
||||
0x0004003d,0x00000006,0x0000002b,0x0000002a,0x000500b1,0x00000027,0x0000002c,0x00000028,
|
||||
0x0000002b,0x000300f7,0x0000002e,0x00000000,0x000400fa,0x0000002c,0x0000002d,0x0000002e,
|
||||
0x000200f8,0x0000002d,0x0004003d,0x00000006,0x0000002f,0x00000012,0x00050041,0x0000001b,
|
||||
0x00000031,0x00000019,0x00000030,0x0004003d,0x00000006,0x00000032,0x00000031,0x000500b1,
|
||||
0x00000027,0x00000033,0x0000002f,0x00000032,0x000200f9,0x0000002e,0x000200f8,0x0000002e,
|
||||
0x000700f5,0x00000027,0x00000034,0x0000002c,0x00000005,0x00000033,0x0000002d,0x000300f7,
|
||||
0x00000036,0x00000000,0x000400fa,0x00000034,0x00000035,0x00000036,0x000200f8,0x00000035,
|
||||
0x0003003e,0x00000039,0x0000003a,0x0004003d,0x00000006,0x0000003c,0x00000008,0x00050041,
|
||||
0x0000001b,0x0000003e,0x00000019,0x0000003d,0x0004003d,0x00000006,0x0000003f,0x0000003e,
|
||||
0x00050087,0x00000006,0x00000040,0x0000003c,0x0000003f,0x0003003e,0x0000003b,0x00000040,
|
||||
0x0004003d,0x00000006,0x00000042,0x00000008,0x00050041,0x0000001b,0x00000043,0x00000019,
|
||||
0x0000003d,0x0004003d,0x00000006,0x00000044,0x00000043,0x0005008b,0x00000006,0x00000045,
|
||||
0x00000042,0x00000044,0x0003003e,0x00000041,0x00000045,0x0004003d,0x00000006,0x00000047,
|
||||
0x0000003b,0x00050041,0x0000001b,0x00000049,0x00000019,0x00000048,0x0004003d,0x00000006,
|
||||
0x0000004a,0x00000049,0x00050084,0x00000006,0x0000004b,0x00000047,0x0000004a,0x00050041,
|
||||
0x0000001b,0x0000004d,0x00000019,0x0000004c,0x0004003d,0x00000006,0x0000004e,0x0000004d,
|
||||
0x00050082,0x00000006,0x0000004f,0x0000004b,0x0000004e,0x0003003e,0x00000046,0x0000004f,
|
||||
0x0004003d,0x00000006,0x00000051,0x00000041,0x00050041,0x0000001b,0x00000053,0x00000019,
|
||||
0x00000052,0x0004003d,0x00000006,0x00000054,0x00000053,0x00050084,0x00000006,0x00000055,
|
||||
0x00000051,0x00000054,0x00050041,0x0000001b,0x00000057,0x00000019,0x00000056,0x0004003d,
|
||||
0x00000006,0x00000058,0x00000057,0x00050082,0x00000006,0x00000059,0x00000055,0x00000058,
|
||||
0x0003003e,0x00000050,0x00000059,0x0004003d,0x00000006,0x0000005b,0x00000012,0x00050041,
|
||||
0x0000001b,0x0000005d,0x00000019,0x0000005c,0x0004003d,0x00000006,0x0000005e,0x0000005d,
|
||||
0x00050084,0x00000006,0x0000005f,0x0000005b,0x0000005e,0x0003003e,0x0000005a,0x0000005f,
|
||||
0x0004003d,0x00000006,0x00000061,0x00000023,0x00050041,0x0000001b,0x00000063,0x00000019,
|
||||
0x00000062,0x0004003d,0x00000006,0x00000064,0x00000063,0x00050084,0x00000006,0x00000065,
|
||||
0x00000061,0x00000064,0x00050041,0x0000001b,0x00000067,0x00000019,0x00000066,0x0004003d,
|
||||
0x00000006,0x00000068,0x00000067,0x00050084,0x00000006,0x00000069,0x00000065,0x00000068,
|
||||
0x00050041,0x0000001b,0x0000006b,0x00000019,0x0000006a,0x0004003d,0x00000006,0x0000006c,
|
||||
0x0000006b,0x00050084,0x00000006,0x0000006d,0x00000069,0x0000006c,0x0004003d,0x00000006,
|
||||
0x0000006e,0x00000046,0x00050041,0x0000001b,0x0000006f,0x00000019,0x00000066,0x0004003d,
|
||||
0x00000006,0x00000070,0x0000006f,0x00050084,0x00000006,0x00000071,0x0000006e,0x00000070,
|
||||
0x0004003d,0x00000006,0x00000072,0x00000050,0x00050080,0x00000006,0x00000073,0x00000071,
|
||||
0x00000072,0x00050080,0x00000006,0x00000074,0x0000006d,0x00000073,0x0003003e,0x00000060,
|
||||
0x00000074,0x0003003e,0x00000075,0x00000062,0x000200f9,0x00000076,0x000200f8,0x00000076,
|
||||
0x000400f6,0x00000078,0x00000079,0x00000000,0x000200f9,0x0000007a,0x000200f8,0x0000007a,
|
||||
0x0004003d,0x00000006,0x0000007b,0x00000075,0x00050041,0x0000001b,0x0000007c,0x00000019,
|
||||
0x0000006a,0x0004003d,0x00000006,0x0000007d,0x0000007c,0x000500b1,0x00000027,0x0000007e,
|
||||
0x0000007b,0x0000007d,0x000400fa,0x0000007e,0x00000077,0x00000078,0x000200f8,0x00000077,
|
||||
0x0003003e,0x0000007f,0x00000062,0x000200f9,0x00000080,0x000200f8,0x00000080,0x000400f6,
|
||||
0x00000082,0x00000083,0x00000000,0x000200f9,0x00000084,0x000200f8,0x00000084,0x0004003d,
|
||||
0x00000006,0x00000085,0x0000007f,0x00050041,0x0000001b,0x00000087,0x00000019,0x00000086,
|
||||
0x0004003d,0x00000006,0x00000088,0x00000087,0x000500b1,0x00000027,0x00000089,0x00000085,
|
||||
0x00000088,0x000400fa,0x00000089,0x00000081,0x00000082,0x000200f8,0x00000081,0x0003003e,
|
||||
0x0000008a,0x00000062,0x000200f9,0x0000008b,0x000200f8,0x0000008b,0x000400f6,0x0000008d,
|
||||
0x0000008e,0x00000000,0x000200f9,0x0000008f,0x000200f8,0x0000008f,0x0004003d,0x00000006,
|
||||
0x00000090,0x0000008a,0x00050041,0x0000001b,0x00000092,0x00000019,0x00000091,0x0004003d,
|
||||
0x00000006,0x00000093,0x00000092,0x000500b1,0x00000027,0x00000094,0x00000090,0x00000093,
|
||||
0x000400fa,0x00000094,0x0000008c,0x0000008d,0x000200f8,0x0000008c,0x0004003d,0x00000006,
|
||||
0x00000095,0x00000046,0x0004003d,0x00000006,0x00000096,0x0000007f,0x00050041,0x0000001b,
|
||||
0x00000098,0x00000019,0x00000097,0x0004003d,0x00000006,0x00000099,0x00000098,0x00050084,
|
||||
0x00000006,0x0000009a,0x00000096,0x00000099,0x00050080,0x00000006,0x0000009b,0x00000095,
|
||||
0x0000009a,0x000500af,0x00000027,0x0000009c,0x0000009b,0x00000062,0x000300f7,0x0000009e,
|
||||
0x00000000,0x000400fa,0x0000009c,0x0000009d,0x0000009e,0x000200f8,0x0000009d,0x0004003d,
|
||||
0x00000006,0x0000009f,0x00000046,0x0004003d,0x00000006,0x000000a0,0x0000007f,0x00050041,
|
||||
0x0000001b,0x000000a1,0x00000019,0x00000097,0x0004003d,0x00000006,0x000000a2,0x000000a1,
|
||||
0x00050084,0x00000006,0x000000a3,0x000000a0,0x000000a2,0x00050080,0x00000006,0x000000a4,
|
||||
0x0000009f,0x000000a3,0x00050041,0x0000001b,0x000000a5,0x00000019,0x00000062,0x0004003d,
|
||||
0x00000006,0x000000a6,0x000000a5,0x000500b1,0x00000027,0x000000a7,0x000000a4,0x000000a6,
|
||||
0x000200f9,0x0000009e,0x000200f8,0x0000009e,0x000700f5,0x00000027,0x000000a8,0x0000009c,
|
||||
0x0000008c,0x000000a7,0x0000009d,0x000300f7,0x000000aa,0x00000000,0x000400fa,0x000000a8,
|
||||
0x000000a9,0x000000aa,0x000200f8,0x000000a9,0x0004003d,0x00000006,0x000000ab,0x00000050,
|
||||
0x0004003d,0x00000006,0x000000ac,0x0000008a,0x00050041,0x0000001b,0x000000ae,0x00000019,
|
||||
0x000000ad,0x0004003d,0x00000006,0x000000af,0x000000ae,0x00050084,0x00000006,0x000000b0,
|
||||
0x000000ac,0x000000af,0x00050080,0x00000006,0x000000b1,0x000000ab,0x000000b0,0x000500af,
|
||||
0x00000027,0x000000b2,0x000000b1,0x00000062,0x000200f9,0x000000aa,0x000200f8,0x000000aa,
|
||||
0x000700f5,0x00000027,0x000000b3,0x000000a8,0x0000009e,0x000000b2,0x000000a9,0x000300f7,
|
||||
0x000000b5,0x00000000,0x000400fa,0x000000b3,0x000000b4,0x000000b5,0x000200f8,0x000000b4,
|
||||
0x0004003d,0x00000006,0x000000b6,0x00000050,0x0004003d,0x00000006,0x000000b7,0x0000008a,
|
||||
0x00050041,0x0000001b,0x000000b8,0x00000019,0x000000ad,0x0004003d,0x00000006,0x000000b9,
|
||||
0x000000b8,0x00050084,0x00000006,0x000000ba,0x000000b7,0x000000b9,0x00050080,0x00000006,
|
||||
0x000000bb,0x000000b6,0x000000ba,0x00050041,0x0000001b,0x000000bc,0x00000019,0x00000066,
|
||||
0x0004003d,0x00000006,0x000000bd,0x000000bc,0x000500b1,0x00000027,0x000000be,0x000000bb,
|
||||
0x000000bd,0x000200f9,0x000000b5,0x000200f8,0x000000b5,0x000700f5,0x00000027,0x000000bf,
|
||||
0x000000b3,0x000000aa,0x000000be,0x000000b4,0x000300f7,0x000000c1,0x00000000,0x000400fa,
|
||||
0x000000bf,0x000000c0,0x000000c1,0x000200f8,0x000000c0,0x0004003d,0x00000006,0x000000c6,
|
||||
0x00000060,0x0004003d,0x00000006,0x000000c7,0x0000008a,0x00050041,0x0000001b,0x000000c8,
|
||||
0x00000019,0x000000ad,0x0004003d,0x00000006,0x000000c9,0x000000c8,0x00050084,0x00000006,
|
||||
0x000000ca,0x000000c7,0x000000c9,0x00050080,0x00000006,0x000000cb,0x000000c6,0x000000ca,
|
||||
0x00060041,0x000000cc,0x000000cd,0x000000c5,0x00000062,0x000000cb,0x0004003d,0x00000037,
|
||||
0x000000ce,0x000000cd,0x0004003d,0x00000006,0x000000d3,0x0000005a,0x0004003d,0x00000006,
|
||||
0x000000d4,0x0000008a,0x00050080,0x00000006,0x000000d5,0x000000d3,0x000000d4,0x00060041,
|
||||
0x000000cc,0x000000d6,0x000000d2,0x00000062,0x000000d5,0x0004003d,0x00000037,0x000000d7,
|
||||
0x000000d6,0x00050085,0x00000037,0x000000d8,0x000000ce,0x000000d7,0x0004003d,0x00000037,
|
||||
0x000000d9,0x00000039,0x00050081,0x00000037,0x000000da,0x000000d9,0x000000d8,0x0003003e,
|
||||
0x00000039,0x000000da,0x000200f9,0x000000c1,0x000200f8,0x000000c1,0x000200f9,0x0000008e,
|
||||
0x000200f8,0x0000008e,0x0004003d,0x00000006,0x000000db,0x0000008a,0x00050080,0x00000006,
|
||||
0x000000dc,0x000000db,0x00000066,0x0003003e,0x0000008a,0x000000dc,0x000200f9,0x0000008b,
|
||||
0x000200f8,0x0000008d,0x00050041,0x0000001b,0x000000dd,0x00000019,0x00000066,0x0004003d,
|
||||
0x00000006,0x000000de,0x000000dd,0x00050041,0x0000001b,0x000000df,0x00000019,0x00000097,
|
||||
0x0004003d,0x00000006,0x000000e0,0x000000df,0x00050084,0x00000006,0x000000e1,0x000000de,
|
||||
0x000000e0,0x0004003d,0x00000006,0x000000e2,0x00000060,0x00050080,0x00000006,0x000000e3,
|
||||
0x000000e2,0x000000e1,0x0003003e,0x00000060,0x000000e3,0x00050041,0x0000001b,0x000000e4,
|
||||
0x00000019,0x00000091,0x0004003d,0x00000006,0x000000e5,0x000000e4,0x0004003d,0x00000006,
|
||||
0x000000e6,0x0000005a,0x00050080,0x00000006,0x000000e7,0x000000e6,0x000000e5,0x0003003e,
|
||||
0x0000005a,0x000000e7,0x000200f9,0x00000083,0x000200f8,0x00000083,0x0004003d,0x00000006,
|
||||
0x000000e8,0x0000007f,0x00050080,0x00000006,0x000000e9,0x000000e8,0x00000066,0x0003003e,
|
||||
0x0000007f,0x000000e9,0x000200f9,0x00000080,0x000200f8,0x00000082,0x00050041,0x0000001b,
|
||||
0x000000ea,0x00000019,0x00000062,0x0004003d,0x00000006,0x000000eb,0x000000ea,0x00050041,
|
||||
0x0000001b,0x000000ec,0x00000019,0x00000066,0x0004003d,0x00000006,0x000000ed,0x000000ec,
|
||||
0x00050084,0x00000006,0x000000ee,0x000000eb,0x000000ed,0x00050041,0x0000001b,0x000000ef,
|
||||
0x00000019,0x00000066,0x0004003d,0x00000006,0x000000f0,0x000000ef,0x00050041,0x0000001b,
|
||||
0x000000f1,0x00000019,0x00000086,0x0004003d,0x00000006,0x000000f2,0x000000f1,0x00050084,
|
||||
0x00000006,0x000000f3,0x000000f0,0x000000f2,0x00050041,0x0000001b,0x000000f4,0x00000019,
|
||||
0x00000097,0x0004003d,0x00000006,0x000000f5,0x000000f4,0x00050084,0x00000006,0x000000f6,
|
||||
0x000000f3,0x000000f5,0x00050082,0x00000006,0x000000f7,0x000000ee,0x000000f6,0x0004003d,
|
||||
0x00000006,0x000000f8,0x00000060,0x00050080,0x00000006,0x000000f9,0x000000f8,0x000000f7,
|
||||
0x0003003e,0x00000060,0x000000f9,0x000200f9,0x00000079,0x000200f8,0x00000079,0x0004003d,
|
||||
0x00000006,0x000000fa,0x00000075,0x00050080,0x00000006,0x000000fb,0x000000fa,0x00000066,
|
||||
0x0003003e,0x00000075,0x000000fb,0x000200f9,0x00000076,0x000200f8,0x00000078,0x0004003d,
|
||||
0x00000006,0x000000fd,0x00000023,0x00050041,0x0000001b,0x000000fe,0x00000019,0x00000029,
|
||||
0x0004003d,0x00000006,0x000000ff,0x000000fe,0x00050084,0x00000006,0x00000100,0x000000fd,
|
||||
0x000000ff,0x00050041,0x0000001b,0x00000101,0x00000019,0x00000030,0x0004003d,0x00000006,
|
||||
0x00000102,0x00000101,0x00050084,0x00000006,0x00000103,0x00000100,0x00000102,0x0004003d,
|
||||
0x00000006,0x00000104,0x00000008,0x00050080,0x00000006,0x00000105,0x00000103,0x00000104,
|
||||
0x0004003d,0x00000006,0x00000106,0x00000012,0x00050041,0x0000001b,0x00000107,0x00000019,
|
||||
0x00000029,0x0004003d,0x00000006,0x00000108,0x00000107,0x00050084,0x00000006,0x00000109,
|
||||
0x00000106,0x00000108,0x00050080,0x00000006,0x0000010a,0x00000105,0x00000109,0x0003003e,
|
||||
0x000000fc,0x0000010a,0x00050041,0x0000001b,0x0000010c,0x00000019,0x0000010b,0x0004003d,
|
||||
0x00000006,0x0000010d,0x0000010c,0x000500aa,0x00000027,0x0000010e,0x0000010d,0x00000066,
|
||||
0x000300f7,0x00000110,0x00000000,0x000400fa,0x0000010e,0x0000010f,0x00000110,0x000200f8,
|
||||
0x0000010f,0x0004003d,0x00000006,0x00000115,0x00000012,0x00060041,0x000000cc,0x00000116,
|
||||
0x00000114,0x00000062,0x00000115,0x0004003d,0x00000037,0x00000117,0x00000116,0x0004003d,
|
||||
0x00000037,0x00000118,0x00000039,0x00050081,0x00000037,0x00000119,0x00000118,0x00000117,
|
||||
0x0003003e,0x00000039,0x00000119,0x000200f9,0x00000110,0x000200f8,0x00000110,0x0004003d,
|
||||
0x00000006,0x0000011e,0x000000fc,0x0004003d,0x00000037,0x0000011f,0x00000039,0x00060041,
|
||||
0x000000cc,0x00000120,0x0000011d,0x00000062,0x0000011e,0x0003003e,0x00000120,0x0000011f,
|
||||
0x000200f9,0x00000036,0x000200f8,0x00000036,0x000100fd,0x00010038
|
||||
};
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,77 +0,0 @@
|
||||
#version 450
|
||||
#define LOCAL_SZ_X 256
|
||||
layout(push_constant) uniform pushBlock {
|
||||
int in_h;
|
||||
int in_w;
|
||||
int out_h;
|
||||
int out_w;
|
||||
int stride_h;
|
||||
int stride_w;
|
||||
int pad_h;
|
||||
int pad_w;
|
||||
int filter_h;
|
||||
int filter_w;
|
||||
int dilation_h;
|
||||
int dilation_w;
|
||||
int channels;
|
||||
int batch;
|
||||
int has_bias;
|
||||
int M;
|
||||
int K;
|
||||
int N;
|
||||
int basic_shader_batch_idx;
|
||||
int basic_shader_partition_idx;
|
||||
int basic_shader_partition_size;
|
||||
} p;
|
||||
|
||||
layout(binding = 0) readonly buffer Input0{
|
||||
float in_buffer[];
|
||||
};
|
||||
layout(binding = 1) readonly buffer Input1 {
|
||||
float bias_data[];
|
||||
};
|
||||
layout(binding = 2) readonly buffer Input3{
|
||||
float weight_data[];
|
||||
};
|
||||
layout(binding = 3) writeonly buffer Output{
|
||||
float out_buffer[];
|
||||
};
|
||||
layout(local_size_x = LOCAL_SZ_X, local_size_y = 1, local_size_z = 1) in;
|
||||
|
||||
/*
|
||||
Each work item compute one output cell
|
||||
*/
|
||||
void main()
|
||||
{
|
||||
int gx = int(gl_GlobalInvocationID.x);
|
||||
int gy = int(gl_GlobalInvocationID.y);
|
||||
int gz = int(gl_GlobalInvocationID.z);
|
||||
if(gx < p.out_w && gy < p.out_h && gz < p.channels)
|
||||
{
|
||||
float sum = 0.0f;
|
||||
|
||||
int org_y = gy * p.stride_h - p.pad_h;
|
||||
int org_x = gx * p.stride_w - p.pad_w;
|
||||
|
||||
int weight_off = gz * p.filter_h * p.filter_w;
|
||||
int input_off = (p.basic_shader_batch_idx * p.channels + gz) * p.in_h * p.in_w + org_y * p.in_w + org_x;
|
||||
for(int y = 0; y < p.filter_h; y++)
|
||||
{
|
||||
for(int x = 0; x < p.filter_w; x++)
|
||||
{
|
||||
if(org_y + y * p.dilation_h >= 0 && org_y + y * p.dilation_h < p.in_h && org_x + x * p.dilation_w >= 0 && org_x + x * p.dilation_w < p.in_w)
|
||||
{
|
||||
sum += in_buffer[input_off + x * p.dilation_w] * weight_data[weight_off + x];
|
||||
}
|
||||
}
|
||||
weight_off += p.filter_w;
|
||||
input_off += p.in_w * p.dilation_h;
|
||||
}
|
||||
|
||||
int offset = (p.basic_shader_batch_idx * p.channels + gz) * p.out_h * p.out_w + gy * p.out_w + gx;
|
||||
if (p.has_bias == 1)
|
||||
out_buffer[offset] = sum + bias_data[gz];
|
||||
else
|
||||
out_buffer[offset] = sum;
|
||||
}
|
||||
}
|
||||
@@ -1,235 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
extern const unsigned int dw_conv_spv[1760] = {
|
||||
0x07230203,0x00010000,0x00080001,0x0000010b,0x00000000,0x00020011,0x00000001,0x0006000b,
|
||||
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
|
||||
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000c,0x00060010,0x00000004,
|
||||
0x00000011,0x00000100,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005,
|
||||
0x00000004,0x6e69616d,0x00000000,0x00030005,0x00000008,0x00007867,0x00080005,0x0000000c,
|
||||
0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00030005,0x00000012,
|
||||
0x00007967,0x00030005,0x00000017,0x00007a67,0x00050005,0x0000001e,0x68737570,0x636f6c42,
|
||||
0x0000006b,0x00050006,0x0000001e,0x00000000,0x685f6e69,0x00000000,0x00050006,0x0000001e,
|
||||
0x00000001,0x775f6e69,0x00000000,0x00050006,0x0000001e,0x00000002,0x5f74756f,0x00000068,
|
||||
0x00050006,0x0000001e,0x00000003,0x5f74756f,0x00000077,0x00060006,0x0000001e,0x00000004,
|
||||
0x69727473,0x685f6564,0x00000000,0x00060006,0x0000001e,0x00000005,0x69727473,0x775f6564,
|
||||
0x00000000,0x00050006,0x0000001e,0x00000006,0x5f646170,0x00000068,0x00050006,0x0000001e,
|
||||
0x00000007,0x5f646170,0x00000077,0x00060006,0x0000001e,0x00000008,0x746c6966,0x685f7265,
|
||||
0x00000000,0x00060006,0x0000001e,0x00000009,0x746c6966,0x775f7265,0x00000000,0x00060006,
|
||||
0x0000001e,0x0000000a,0x616c6964,0x6e6f6974,0x0000685f,0x00060006,0x0000001e,0x0000000b,
|
||||
0x616c6964,0x6e6f6974,0x0000775f,0x00060006,0x0000001e,0x0000000c,0x6e616863,0x736c656e,
|
||||
0x00000000,0x00050006,0x0000001e,0x0000000d,0x63746162,0x00000068,0x00060006,0x0000001e,
|
||||
0x0000000e,0x5f736168,0x73616962,0x00000000,0x00040006,0x0000001e,0x0000000f,0x0000004d,
|
||||
0x00040006,0x0000001e,0x00000010,0x0000004b,0x00040006,0x0000001e,0x00000011,0x0000004e,
|
||||
0x00090006,0x0000001e,0x00000012,0x69736162,0x68735f63,0x72656461,0x7461625f,0x695f6863,
|
||||
0x00007864,0x00090006,0x0000001e,0x00000013,0x69736162,0x68735f63,0x72656461,0x6f72675f,
|
||||
0x695f7075,0x00007864,0x00090006,0x0000001e,0x00000014,0x69736162,0x68735f63,0x72656461,
|
||||
0x6f72675f,0x735f7075,0x00657a69,0x00030005,0x00000020,0x00000070,0x00030005,0x0000003a,
|
||||
0x006d7573,0x00040005,0x0000003c,0x5f67726f,0x00000079,0x00040005,0x00000046,0x5f67726f,
|
||||
0x00000078,0x00050005,0x00000050,0x67696577,0x6f5f7468,0x00006666,0x00050005,0x0000005a,
|
||||
0x75706e69,0x666f5f74,0x00000066,0x00030005,0x00000072,0x00000079,0x00030005,0x0000007c,
|
||||
0x00000078,0x00040005,0x000000b4,0x75706e49,0x00003074,0x00060006,0x000000b4,0x00000000,
|
||||
0x625f6e69,0x65666675,0x00000072,0x00030005,0x000000b6,0x00000000,0x00040005,0x000000c1,
|
||||
0x75706e49,0x00003374,0x00060006,0x000000c1,0x00000000,0x67696577,0x645f7468,0x00617461,
|
||||
0x00030005,0x000000c3,0x00000000,0x00040005,0x000000db,0x7366666f,0x00007465,0x00040005,
|
||||
0x000000f7,0x7074754f,0x00007475,0x00060006,0x000000f7,0x00000000,0x5f74756f,0x66667562,
|
||||
0x00007265,0x00030005,0x000000f9,0x00000000,0x00040005,0x000000fd,0x75706e49,0x00003174,
|
||||
0x00060006,0x000000fd,0x00000000,0x73616962,0x7461645f,0x00000061,0x00030005,0x000000ff,
|
||||
0x00000000,0x00040047,0x0000000c,0x0000000b,0x0000001c,0x00050048,0x0000001e,0x00000000,
|
||||
0x00000023,0x00000000,0x00050048,0x0000001e,0x00000001,0x00000023,0x00000004,0x00050048,
|
||||
0x0000001e,0x00000002,0x00000023,0x00000008,0x00050048,0x0000001e,0x00000003,0x00000023,
|
||||
0x0000000c,0x00050048,0x0000001e,0x00000004,0x00000023,0x00000010,0x00050048,0x0000001e,
|
||||
0x00000005,0x00000023,0x00000014,0x00050048,0x0000001e,0x00000006,0x00000023,0x00000018,
|
||||
0x00050048,0x0000001e,0x00000007,0x00000023,0x0000001c,0x00050048,0x0000001e,0x00000008,
|
||||
0x00000023,0x00000020,0x00050048,0x0000001e,0x00000009,0x00000023,0x00000024,0x00050048,
|
||||
0x0000001e,0x0000000a,0x00000023,0x00000028,0x00050048,0x0000001e,0x0000000b,0x00000023,
|
||||
0x0000002c,0x00050048,0x0000001e,0x0000000c,0x00000023,0x00000030,0x00050048,0x0000001e,
|
||||
0x0000000d,0x00000023,0x00000034,0x00050048,0x0000001e,0x0000000e,0x00000023,0x00000038,
|
||||
0x00050048,0x0000001e,0x0000000f,0x00000023,0x0000003c,0x00050048,0x0000001e,0x00000010,
|
||||
0x00000023,0x00000040,0x00050048,0x0000001e,0x00000011,0x00000023,0x00000044,0x00050048,
|
||||
0x0000001e,0x00000012,0x00000023,0x00000048,0x00050048,0x0000001e,0x00000013,0x00000023,
|
||||
0x0000004c,0x00050048,0x0000001e,0x00000014,0x00000023,0x00000050,0x00030047,0x0000001e,
|
||||
0x00000002,0x00040047,0x000000b3,0x00000006,0x00000004,0x00040048,0x000000b4,0x00000000,
|
||||
0x00000018,0x00050048,0x000000b4,0x00000000,0x00000023,0x00000000,0x00030047,0x000000b4,
|
||||
0x00000003,0x00040047,0x000000b6,0x00000022,0x00000000,0x00040047,0x000000b6,0x00000021,
|
||||
0x00000000,0x00040047,0x000000c0,0x00000006,0x00000004,0x00040048,0x000000c1,0x00000000,
|
||||
0x00000018,0x00050048,0x000000c1,0x00000000,0x00000023,0x00000000,0x00030047,0x000000c1,
|
||||
0x00000003,0x00040047,0x000000c3,0x00000022,0x00000000,0x00040047,0x000000c3,0x00000021,
|
||||
0x00000002,0x00040047,0x000000f6,0x00000006,0x00000004,0x00040048,0x000000f7,0x00000000,
|
||||
0x00000019,0x00050048,0x000000f7,0x00000000,0x00000023,0x00000000,0x00030047,0x000000f7,
|
||||
0x00000003,0x00040047,0x000000f9,0x00000022,0x00000000,0x00040047,0x000000f9,0x00000021,
|
||||
0x00000003,0x00040047,0x000000fc,0x00000006,0x00000004,0x00040048,0x000000fd,0x00000000,
|
||||
0x00000018,0x00050048,0x000000fd,0x00000000,0x00000023,0x00000000,0x00030047,0x000000fd,
|
||||
0x00000003,0x00040047,0x000000ff,0x00000022,0x00000000,0x00040047,0x000000ff,0x00000021,
|
||||
0x00000001,0x00040047,0x0000010a,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,
|
||||
0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000001,0x00040020,0x00000007,
|
||||
0x00000007,0x00000006,0x00040015,0x00000009,0x00000020,0x00000000,0x00040017,0x0000000a,
|
||||
0x00000009,0x00000003,0x00040020,0x0000000b,0x00000001,0x0000000a,0x0004003b,0x0000000b,
|
||||
0x0000000c,0x00000001,0x0004002b,0x00000009,0x0000000d,0x00000000,0x00040020,0x0000000e,
|
||||
0x00000001,0x00000009,0x0004002b,0x00000009,0x00000013,0x00000001,0x0004002b,0x00000009,
|
||||
0x00000018,0x00000002,0x00020014,0x0000001c,0x0017001e,0x0000001e,0x00000006,0x00000006,
|
||||
0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,
|
||||
0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,
|
||||
0x00000006,0x00000006,0x00000006,0x00040020,0x0000001f,0x00000009,0x0000001e,0x0004003b,
|
||||
0x0000001f,0x00000020,0x00000009,0x0004002b,0x00000006,0x00000021,0x00000003,0x00040020,
|
||||
0x00000022,0x00000009,0x00000006,0x0004002b,0x00000006,0x00000029,0x00000002,0x0004002b,
|
||||
0x00000006,0x00000031,0x0000000c,0x00030016,0x00000038,0x00000020,0x00040020,0x00000039,
|
||||
0x00000007,0x00000038,0x0004002b,0x00000038,0x0000003b,0x00000000,0x0004002b,0x00000006,
|
||||
0x0000003e,0x00000004,0x0004002b,0x00000006,0x00000042,0x00000006,0x0004002b,0x00000006,
|
||||
0x00000048,0x00000005,0x0004002b,0x00000006,0x0000004c,0x00000007,0x0004002b,0x00000006,
|
||||
0x00000052,0x00000008,0x0004002b,0x00000006,0x00000056,0x00000009,0x0004002b,0x00000006,
|
||||
0x0000005b,0x00000012,0x0004002b,0x00000006,0x00000063,0x00000000,0x0004002b,0x00000006,
|
||||
0x00000067,0x00000001,0x0004002b,0x00000006,0x00000088,0x0000000a,0x0004002b,0x00000006,
|
||||
0x0000009e,0x0000000b,0x0003001d,0x000000b3,0x00000038,0x0003001e,0x000000b4,0x000000b3,
|
||||
0x00040020,0x000000b5,0x00000002,0x000000b4,0x0004003b,0x000000b5,0x000000b6,0x00000002,
|
||||
0x00040020,0x000000bd,0x00000002,0x00000038,0x0003001d,0x000000c0,0x00000038,0x0003001e,
|
||||
0x000000c1,0x000000c0,0x00040020,0x000000c2,0x00000002,0x000000c1,0x0004003b,0x000000c2,
|
||||
0x000000c3,0x00000002,0x0004002b,0x00000006,0x000000f0,0x0000000e,0x0003001d,0x000000f6,
|
||||
0x00000038,0x0003001e,0x000000f7,0x000000f6,0x00040020,0x000000f8,0x00000002,0x000000f7,
|
||||
0x0004003b,0x000000f8,0x000000f9,0x00000002,0x0003001d,0x000000fc,0x00000038,0x0003001e,
|
||||
0x000000fd,0x000000fc,0x00040020,0x000000fe,0x00000002,0x000000fd,0x0004003b,0x000000fe,
|
||||
0x000000ff,0x00000002,0x0004002b,0x00000009,0x00000109,0x00000100,0x0006002c,0x0000000a,
|
||||
0x0000010a,0x00000109,0x00000013,0x00000013,0x00050036,0x00000002,0x00000004,0x00000000,
|
||||
0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x00000008,0x00000007,0x0004003b,
|
||||
0x00000007,0x00000012,0x00000007,0x0004003b,0x00000007,0x00000017,0x00000007,0x0004003b,
|
||||
0x00000039,0x0000003a,0x00000007,0x0004003b,0x00000007,0x0000003c,0x00000007,0x0004003b,
|
||||
0x00000007,0x00000046,0x00000007,0x0004003b,0x00000007,0x00000050,0x00000007,0x0004003b,
|
||||
0x00000007,0x0000005a,0x00000007,0x0004003b,0x00000007,0x00000072,0x00000007,0x0004003b,
|
||||
0x00000007,0x0000007c,0x00000007,0x0004003b,0x00000007,0x000000db,0x00000007,0x00050041,
|
||||
0x0000000e,0x0000000f,0x0000000c,0x0000000d,0x0004003d,0x00000009,0x00000010,0x0000000f,
|
||||
0x0004007c,0x00000006,0x00000011,0x00000010,0x0003003e,0x00000008,0x00000011,0x00050041,
|
||||
0x0000000e,0x00000014,0x0000000c,0x00000013,0x0004003d,0x00000009,0x00000015,0x00000014,
|
||||
0x0004007c,0x00000006,0x00000016,0x00000015,0x0003003e,0x00000012,0x00000016,0x00050041,
|
||||
0x0000000e,0x00000019,0x0000000c,0x00000018,0x0004003d,0x00000009,0x0000001a,0x00000019,
|
||||
0x0004007c,0x00000006,0x0000001b,0x0000001a,0x0003003e,0x00000017,0x0000001b,0x0004003d,
|
||||
0x00000006,0x0000001d,0x00000008,0x00050041,0x00000022,0x00000023,0x00000020,0x00000021,
|
||||
0x0004003d,0x00000006,0x00000024,0x00000023,0x000500b1,0x0000001c,0x00000025,0x0000001d,
|
||||
0x00000024,0x000300f7,0x00000027,0x00000000,0x000400fa,0x00000025,0x00000026,0x00000027,
|
||||
0x000200f8,0x00000026,0x0004003d,0x00000006,0x00000028,0x00000012,0x00050041,0x00000022,
|
||||
0x0000002a,0x00000020,0x00000029,0x0004003d,0x00000006,0x0000002b,0x0000002a,0x000500b1,
|
||||
0x0000001c,0x0000002c,0x00000028,0x0000002b,0x000200f9,0x00000027,0x000200f8,0x00000027,
|
||||
0x000700f5,0x0000001c,0x0000002d,0x00000025,0x00000005,0x0000002c,0x00000026,0x000300f7,
|
||||
0x0000002f,0x00000000,0x000400fa,0x0000002d,0x0000002e,0x0000002f,0x000200f8,0x0000002e,
|
||||
0x0004003d,0x00000006,0x00000030,0x00000017,0x00050041,0x00000022,0x00000032,0x00000020,
|
||||
0x00000031,0x0004003d,0x00000006,0x00000033,0x00000032,0x000500b1,0x0000001c,0x00000034,
|
||||
0x00000030,0x00000033,0x000200f9,0x0000002f,0x000200f8,0x0000002f,0x000700f5,0x0000001c,
|
||||
0x00000035,0x0000002d,0x00000027,0x00000034,0x0000002e,0x000300f7,0x00000037,0x00000000,
|
||||
0x000400fa,0x00000035,0x00000036,0x00000037,0x000200f8,0x00000036,0x0003003e,0x0000003a,
|
||||
0x0000003b,0x0004003d,0x00000006,0x0000003d,0x00000012,0x00050041,0x00000022,0x0000003f,
|
||||
0x00000020,0x0000003e,0x0004003d,0x00000006,0x00000040,0x0000003f,0x00050084,0x00000006,
|
||||
0x00000041,0x0000003d,0x00000040,0x00050041,0x00000022,0x00000043,0x00000020,0x00000042,
|
||||
0x0004003d,0x00000006,0x00000044,0x00000043,0x00050082,0x00000006,0x00000045,0x00000041,
|
||||
0x00000044,0x0003003e,0x0000003c,0x00000045,0x0004003d,0x00000006,0x00000047,0x00000008,
|
||||
0x00050041,0x00000022,0x00000049,0x00000020,0x00000048,0x0004003d,0x00000006,0x0000004a,
|
||||
0x00000049,0x00050084,0x00000006,0x0000004b,0x00000047,0x0000004a,0x00050041,0x00000022,
|
||||
0x0000004d,0x00000020,0x0000004c,0x0004003d,0x00000006,0x0000004e,0x0000004d,0x00050082,
|
||||
0x00000006,0x0000004f,0x0000004b,0x0000004e,0x0003003e,0x00000046,0x0000004f,0x0004003d,
|
||||
0x00000006,0x00000051,0x00000017,0x00050041,0x00000022,0x00000053,0x00000020,0x00000052,
|
||||
0x0004003d,0x00000006,0x00000054,0x00000053,0x00050084,0x00000006,0x00000055,0x00000051,
|
||||
0x00000054,0x00050041,0x00000022,0x00000057,0x00000020,0x00000056,0x0004003d,0x00000006,
|
||||
0x00000058,0x00000057,0x00050084,0x00000006,0x00000059,0x00000055,0x00000058,0x0003003e,
|
||||
0x00000050,0x00000059,0x00050041,0x00000022,0x0000005c,0x00000020,0x0000005b,0x0004003d,
|
||||
0x00000006,0x0000005d,0x0000005c,0x00050041,0x00000022,0x0000005e,0x00000020,0x00000031,
|
||||
0x0004003d,0x00000006,0x0000005f,0x0000005e,0x00050084,0x00000006,0x00000060,0x0000005d,
|
||||
0x0000005f,0x0004003d,0x00000006,0x00000061,0x00000017,0x00050080,0x00000006,0x00000062,
|
||||
0x00000060,0x00000061,0x00050041,0x00000022,0x00000064,0x00000020,0x00000063,0x0004003d,
|
||||
0x00000006,0x00000065,0x00000064,0x00050084,0x00000006,0x00000066,0x00000062,0x00000065,
|
||||
0x00050041,0x00000022,0x00000068,0x00000020,0x00000067,0x0004003d,0x00000006,0x00000069,
|
||||
0x00000068,0x00050084,0x00000006,0x0000006a,0x00000066,0x00000069,0x0004003d,0x00000006,
|
||||
0x0000006b,0x0000003c,0x00050041,0x00000022,0x0000006c,0x00000020,0x00000067,0x0004003d,
|
||||
0x00000006,0x0000006d,0x0000006c,0x00050084,0x00000006,0x0000006e,0x0000006b,0x0000006d,
|
||||
0x00050080,0x00000006,0x0000006f,0x0000006a,0x0000006e,0x0004003d,0x00000006,0x00000070,
|
||||
0x00000046,0x00050080,0x00000006,0x00000071,0x0000006f,0x00000070,0x0003003e,0x0000005a,
|
||||
0x00000071,0x0003003e,0x00000072,0x00000063,0x000200f9,0x00000073,0x000200f8,0x00000073,
|
||||
0x000400f6,0x00000075,0x00000076,0x00000000,0x000200f9,0x00000077,0x000200f8,0x00000077,
|
||||
0x0004003d,0x00000006,0x00000078,0x00000072,0x00050041,0x00000022,0x00000079,0x00000020,
|
||||
0x00000052,0x0004003d,0x00000006,0x0000007a,0x00000079,0x000500b1,0x0000001c,0x0000007b,
|
||||
0x00000078,0x0000007a,0x000400fa,0x0000007b,0x00000074,0x00000075,0x000200f8,0x00000074,
|
||||
0x0003003e,0x0000007c,0x00000063,0x000200f9,0x0000007d,0x000200f8,0x0000007d,0x000400f6,
|
||||
0x0000007f,0x00000080,0x00000000,0x000200f9,0x00000081,0x000200f8,0x00000081,0x0004003d,
|
||||
0x00000006,0x00000082,0x0000007c,0x00050041,0x00000022,0x00000083,0x00000020,0x00000056,
|
||||
0x0004003d,0x00000006,0x00000084,0x00000083,0x000500b1,0x0000001c,0x00000085,0x00000082,
|
||||
0x00000084,0x000400fa,0x00000085,0x0000007e,0x0000007f,0x000200f8,0x0000007e,0x0004003d,
|
||||
0x00000006,0x00000086,0x0000003c,0x0004003d,0x00000006,0x00000087,0x00000072,0x00050041,
|
||||
0x00000022,0x00000089,0x00000020,0x00000088,0x0004003d,0x00000006,0x0000008a,0x00000089,
|
||||
0x00050084,0x00000006,0x0000008b,0x00000087,0x0000008a,0x00050080,0x00000006,0x0000008c,
|
||||
0x00000086,0x0000008b,0x000500af,0x0000001c,0x0000008d,0x0000008c,0x00000063,0x000300f7,
|
||||
0x0000008f,0x00000000,0x000400fa,0x0000008d,0x0000008e,0x0000008f,0x000200f8,0x0000008e,
|
||||
0x0004003d,0x00000006,0x00000090,0x0000003c,0x0004003d,0x00000006,0x00000091,0x00000072,
|
||||
0x00050041,0x00000022,0x00000092,0x00000020,0x00000088,0x0004003d,0x00000006,0x00000093,
|
||||
0x00000092,0x00050084,0x00000006,0x00000094,0x00000091,0x00000093,0x00050080,0x00000006,
|
||||
0x00000095,0x00000090,0x00000094,0x00050041,0x00000022,0x00000096,0x00000020,0x00000063,
|
||||
0x0004003d,0x00000006,0x00000097,0x00000096,0x000500b1,0x0000001c,0x00000098,0x00000095,
|
||||
0x00000097,0x000200f9,0x0000008f,0x000200f8,0x0000008f,0x000700f5,0x0000001c,0x00000099,
|
||||
0x0000008d,0x0000007e,0x00000098,0x0000008e,0x000300f7,0x0000009b,0x00000000,0x000400fa,
|
||||
0x00000099,0x0000009a,0x0000009b,0x000200f8,0x0000009a,0x0004003d,0x00000006,0x0000009c,
|
||||
0x00000046,0x0004003d,0x00000006,0x0000009d,0x0000007c,0x00050041,0x00000022,0x0000009f,
|
||||
0x00000020,0x0000009e,0x0004003d,0x00000006,0x000000a0,0x0000009f,0x00050084,0x00000006,
|
||||
0x000000a1,0x0000009d,0x000000a0,0x00050080,0x00000006,0x000000a2,0x0000009c,0x000000a1,
|
||||
0x000500af,0x0000001c,0x000000a3,0x000000a2,0x00000063,0x000200f9,0x0000009b,0x000200f8,
|
||||
0x0000009b,0x000700f5,0x0000001c,0x000000a4,0x00000099,0x0000008f,0x000000a3,0x0000009a,
|
||||
0x000300f7,0x000000a6,0x00000000,0x000400fa,0x000000a4,0x000000a5,0x000000a6,0x000200f8,
|
||||
0x000000a5,0x0004003d,0x00000006,0x000000a7,0x00000046,0x0004003d,0x00000006,0x000000a8,
|
||||
0x0000007c,0x00050041,0x00000022,0x000000a9,0x00000020,0x0000009e,0x0004003d,0x00000006,
|
||||
0x000000aa,0x000000a9,0x00050084,0x00000006,0x000000ab,0x000000a8,0x000000aa,0x00050080,
|
||||
0x00000006,0x000000ac,0x000000a7,0x000000ab,0x00050041,0x00000022,0x000000ad,0x00000020,
|
||||
0x00000067,0x0004003d,0x00000006,0x000000ae,0x000000ad,0x000500b1,0x0000001c,0x000000af,
|
||||
0x000000ac,0x000000ae,0x000200f9,0x000000a6,0x000200f8,0x000000a6,0x000700f5,0x0000001c,
|
||||
0x000000b0,0x000000a4,0x0000009b,0x000000af,0x000000a5,0x000300f7,0x000000b2,0x00000000,
|
||||
0x000400fa,0x000000b0,0x000000b1,0x000000b2,0x000200f8,0x000000b1,0x0004003d,0x00000006,
|
||||
0x000000b7,0x0000005a,0x0004003d,0x00000006,0x000000b8,0x0000007c,0x00050041,0x00000022,
|
||||
0x000000b9,0x00000020,0x0000009e,0x0004003d,0x00000006,0x000000ba,0x000000b9,0x00050084,
|
||||
0x00000006,0x000000bb,0x000000b8,0x000000ba,0x00050080,0x00000006,0x000000bc,0x000000b7,
|
||||
0x000000bb,0x00060041,0x000000bd,0x000000be,0x000000b6,0x00000063,0x000000bc,0x0004003d,
|
||||
0x00000038,0x000000bf,0x000000be,0x0004003d,0x00000006,0x000000c4,0x00000050,0x0004003d,
|
||||
0x00000006,0x000000c5,0x0000007c,0x00050080,0x00000006,0x000000c6,0x000000c4,0x000000c5,
|
||||
0x00060041,0x000000bd,0x000000c7,0x000000c3,0x00000063,0x000000c6,0x0004003d,0x00000038,
|
||||
0x000000c8,0x000000c7,0x00050085,0x00000038,0x000000c9,0x000000bf,0x000000c8,0x0004003d,
|
||||
0x00000038,0x000000ca,0x0000003a,0x00050081,0x00000038,0x000000cb,0x000000ca,0x000000c9,
|
||||
0x0003003e,0x0000003a,0x000000cb,0x000200f9,0x000000b2,0x000200f8,0x000000b2,0x000200f9,
|
||||
0x00000080,0x000200f8,0x00000080,0x0004003d,0x00000006,0x000000cc,0x0000007c,0x00050080,
|
||||
0x00000006,0x000000cd,0x000000cc,0x00000067,0x0003003e,0x0000007c,0x000000cd,0x000200f9,
|
||||
0x0000007d,0x000200f8,0x0000007f,0x00050041,0x00000022,0x000000ce,0x00000020,0x00000056,
|
||||
0x0004003d,0x00000006,0x000000cf,0x000000ce,0x0004003d,0x00000006,0x000000d0,0x00000050,
|
||||
0x00050080,0x00000006,0x000000d1,0x000000d0,0x000000cf,0x0003003e,0x00000050,0x000000d1,
|
||||
0x00050041,0x00000022,0x000000d2,0x00000020,0x00000067,0x0004003d,0x00000006,0x000000d3,
|
||||
0x000000d2,0x00050041,0x00000022,0x000000d4,0x00000020,0x00000088,0x0004003d,0x00000006,
|
||||
0x000000d5,0x000000d4,0x00050084,0x00000006,0x000000d6,0x000000d3,0x000000d5,0x0004003d,
|
||||
0x00000006,0x000000d7,0x0000005a,0x00050080,0x00000006,0x000000d8,0x000000d7,0x000000d6,
|
||||
0x0003003e,0x0000005a,0x000000d8,0x000200f9,0x00000076,0x000200f8,0x00000076,0x0004003d,
|
||||
0x00000006,0x000000d9,0x00000072,0x00050080,0x00000006,0x000000da,0x000000d9,0x00000067,
|
||||
0x0003003e,0x00000072,0x000000da,0x000200f9,0x00000073,0x000200f8,0x00000075,0x00050041,
|
||||
0x00000022,0x000000dc,0x00000020,0x0000005b,0x0004003d,0x00000006,0x000000dd,0x000000dc,
|
||||
0x00050041,0x00000022,0x000000de,0x00000020,0x00000031,0x0004003d,0x00000006,0x000000df,
|
||||
0x000000de,0x00050084,0x00000006,0x000000e0,0x000000dd,0x000000df,0x0004003d,0x00000006,
|
||||
0x000000e1,0x00000017,0x00050080,0x00000006,0x000000e2,0x000000e0,0x000000e1,0x00050041,
|
||||
0x00000022,0x000000e3,0x00000020,0x00000029,0x0004003d,0x00000006,0x000000e4,0x000000e3,
|
||||
0x00050084,0x00000006,0x000000e5,0x000000e2,0x000000e4,0x00050041,0x00000022,0x000000e6,
|
||||
0x00000020,0x00000021,0x0004003d,0x00000006,0x000000e7,0x000000e6,0x00050084,0x00000006,
|
||||
0x000000e8,0x000000e5,0x000000e7,0x0004003d,0x00000006,0x000000e9,0x00000012,0x00050041,
|
||||
0x00000022,0x000000ea,0x00000020,0x00000021,0x0004003d,0x00000006,0x000000eb,0x000000ea,
|
||||
0x00050084,0x00000006,0x000000ec,0x000000e9,0x000000eb,0x00050080,0x00000006,0x000000ed,
|
||||
0x000000e8,0x000000ec,0x0004003d,0x00000006,0x000000ee,0x00000008,0x00050080,0x00000006,
|
||||
0x000000ef,0x000000ed,0x000000ee,0x0003003e,0x000000db,0x000000ef,0x00050041,0x00000022,
|
||||
0x000000f1,0x00000020,0x000000f0,0x0004003d,0x00000006,0x000000f2,0x000000f1,0x000500aa,
|
||||
0x0000001c,0x000000f3,0x000000f2,0x00000067,0x000300f7,0x000000f5,0x00000000,0x000400fa,
|
||||
0x000000f3,0x000000f4,0x00000105,0x000200f8,0x000000f4,0x0004003d,0x00000006,0x000000fa,
|
||||
0x000000db,0x0004003d,0x00000038,0x000000fb,0x0000003a,0x0004003d,0x00000006,0x00000100,
|
||||
0x00000017,0x00060041,0x000000bd,0x00000101,0x000000ff,0x00000063,0x00000100,0x0004003d,
|
||||
0x00000038,0x00000102,0x00000101,0x00050081,0x00000038,0x00000103,0x000000fb,0x00000102,
|
||||
0x00060041,0x000000bd,0x00000104,0x000000f9,0x00000063,0x000000fa,0x0003003e,0x00000104,
|
||||
0x00000103,0x000200f9,0x000000f5,0x000200f8,0x00000105,0x0004003d,0x00000006,0x00000106,
|
||||
0x000000db,0x0004003d,0x00000038,0x00000107,0x0000003a,0x00060041,0x000000bd,0x00000108,
|
||||
0x000000f9,0x00000063,0x00000106,0x0003003e,0x00000108,0x00000107,0x000200f9,0x000000f5,
|
||||
0x000200f8,0x000000f5,0x000200f9,0x00000037,0x000200f8,0x00000037,0x000100fd,0x00010038
|
||||
};
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -0,0 +1,168 @@
|
||||
#version 450
|
||||
|
||||
#define KSTRIP_LEN 32
|
||||
#define BLOCK_SIZE 64
|
||||
#define WARP 32
|
||||
|
||||
#define INNER_THREAD 16 // inner thread
|
||||
#define ALL_THREAD 256
|
||||
|
||||
#define A_INSTRIP 8
|
||||
#define A_STRIP 8 // (BLOCK_SIZE/A_INSTRIP)
|
||||
|
||||
#define B_INSTRIP 4 // (ALL_THREAD/BLOCK_SIZE)
|
||||
#define B_STRIP 8 // (KSTRIP_LEN/B_INSTRIP)
|
||||
|
||||
#define MNSTRIP (BLOCK_SIZE/INNER_THREAD)
|
||||
#define KSTRIP (KSTRIP_LEN/INNER_THREAD)
|
||||
|
||||
#define PER_THREAD (BLOCK_SIZE/INNER_THREAD)
|
||||
|
||||
// Experiment Row major VS column major.
|
||||
|
||||
layout(binding = 0) readonly buffer Input0{
|
||||
float image_data[];
|
||||
};
|
||||
layout(binding = 1) readonly buffer Input1 {
|
||||
float weight_data[];
|
||||
};
|
||||
layout(binding = 2) writeonly buffer Output{
|
||||
float outMat_data[];
|
||||
};
|
||||
|
||||
layout(binding = 3) uniform pushBlock {
|
||||
int M;
|
||||
int K;
|
||||
int N;
|
||||
int KStrip;
|
||||
int KStripRemain;
|
||||
} p;
|
||||
|
||||
shared float ashare[KSTRIP_LEN][BLOCK_SIZE]; // 2 KB
|
||||
shared float bshare[BLOCK_SIZE][KSTRIP_LEN]; // 2 KB
|
||||
|
||||
layout(local_size_x = ALL_THREAD, local_size_y = 1, local_size_z = 1) in;
|
||||
void main()
|
||||
{
|
||||
int mIndex = int(gl_WorkGroupID.x) * BLOCK_SIZE;
|
||||
int nIndex = int(gl_WorkGroupID.y) * BLOCK_SIZE;
|
||||
|
||||
int local_x = int(gl_LocalInvocationID.x) % 16; // 0~7
|
||||
int local_y = int(gl_LocalInvocationID.x) / 16; // 0~31
|
||||
|
||||
int a_local_x = int(gl_LocalInvocationID.x) % KSTRIP_LEN; // 256 / 32 = 8
|
||||
int a_local_y = int(gl_LocalInvocationID.x) / KSTRIP_LEN;
|
||||
|
||||
int b_local_x = int(gl_LocalInvocationID.x) % BLOCK_SIZE; // 256 / 64 = 4
|
||||
int b_local_y = int(gl_LocalInvocationID.x) / BLOCK_SIZE;
|
||||
|
||||
int aoffset = p.K * mIndex + a_local_y * p.K + a_local_x;
|
||||
int boffset = nIndex + b_local_x + b_local_y * p.N;
|
||||
|
||||
float sum[PER_THREAD * PER_THREAD];
|
||||
for (int n = 0; n < PER_THREAD * PER_THREAD; n++)
|
||||
{
|
||||
sum[n] = 0.f;
|
||||
}
|
||||
|
||||
float regA[4];
|
||||
float regB[4];
|
||||
|
||||
for (int i = 0; i < p.KStrip; i++)
|
||||
{
|
||||
// load A to shared memory A, transpose A
|
||||
for (int s = 0; s < A_STRIP; s++)
|
||||
{
|
||||
ashare[a_local_x][s * A_INSTRIP + a_local_y] = image_data[aoffset + s * A_INSTRIP * p.K + i * KSTRIP_LEN];
|
||||
}
|
||||
|
||||
// load B to shared memory B, transpose B
|
||||
for (int s = 0; s < B_STRIP; s++)
|
||||
{
|
||||
bshare[b_local_x][s * B_INSTRIP + b_local_y] = weight_data[boffset + s * B_INSTRIP * p.N + i * KSTRIP_LEN * p.N];
|
||||
}
|
||||
|
||||
barrier();
|
||||
|
||||
for (int j = 0; j < KSTRIP_LEN; j++)
|
||||
{
|
||||
// Load shared memory to register.
|
||||
for (int m = 0; m < 4; m++)
|
||||
{
|
||||
regA[m] = ashare[j][local_x*4 + m];
|
||||
}
|
||||
|
||||
for (int m = 0; m < 4; m++)
|
||||
{
|
||||
regB[m] = bshare[local_y + 16 * m][j];
|
||||
}
|
||||
|
||||
for (int m = 0; m < 4; m++)
|
||||
{
|
||||
for (int n = 0; n < 4; n++)
|
||||
{
|
||||
sum[m*4 + n] += regA[m] * regB[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
barrier();
|
||||
}
|
||||
|
||||
if (p.KStripRemain > 0)
|
||||
{
|
||||
int aoffset2 = aoffset + p.KStrip * KSTRIP_LEN;
|
||||
int boffset2 = boffset + p.KStrip * KSTRIP_LEN * p.N;
|
||||
|
||||
// load A to shared memory A, transpose A
|
||||
for (int s = 0; s < A_STRIP; s++)
|
||||
{
|
||||
ashare[a_local_x][s * A_INSTRIP + a_local_y] = image_data[aoffset2 + s * A_INSTRIP * p.K];
|
||||
}
|
||||
|
||||
// load B to shared memory B, transpose B
|
||||
for (int s = 0; s < B_STRIP; s++)
|
||||
{
|
||||
bshare[b_local_x][s * B_INSTRIP + b_local_y] = weight_data[boffset2 + s * B_INSTRIP * p.N];
|
||||
}
|
||||
|
||||
barrier();
|
||||
|
||||
for (int j = 0; j < p.KStripRemain; j++)
|
||||
{
|
||||
// Load shared memory to register.
|
||||
for (int m = 0; m < 4; m++)
|
||||
{
|
||||
regA[m] = ashare[j][local_x*4 + m];
|
||||
}
|
||||
|
||||
for (int m = 0; m < 4; m++)
|
||||
{
|
||||
regB[m] = bshare[local_y + 16 * m][j];
|
||||
}
|
||||
|
||||
for (int m = 0; m < 4; m++)
|
||||
{
|
||||
for (int n = 0; n < 4; n++)
|
||||
{
|
||||
sum[m*4 + n] += regA[m] * regB[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int n = 0; n < PER_THREAD; n++)
|
||||
{
|
||||
int nIndex2 = nIndex + n * INNER_THREAD + local_y;
|
||||
if (nIndex2 < p.N)
|
||||
{
|
||||
for (int m = 0; m < PER_THREAD; m++)
|
||||
{
|
||||
int mIndex2 = mIndex + local_x * PER_THREAD + m;
|
||||
if (mIndex2 < p.M)
|
||||
{
|
||||
outMat_data[mIndex2 * p.N + nIndex2] = sum[m* PER_THREAD + n];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,375 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
extern const unsigned int gemm_spv[2902] = {
|
||||
0x07230203,0x00010000,0x0008000b,0x000001ff,0x00000000,0x00020011,0x00000001,0x0006000b,
|
||||
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
|
||||
0x0007000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000c,0x0000001b,0x00060010,
|
||||
0x00000004,0x00000011,0x00000100,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,
|
||||
0x00040005,0x00000004,0x6e69616d,0x00000000,0x00040005,0x00000008,0x646e496d,0x00007865,
|
||||
0x00060005,0x0000000c,0x575f6c67,0x476b726f,0x70756f72,0x00004449,0x00040005,0x00000014,
|
||||
0x646e496e,0x00007865,0x00040005,0x0000001a,0x61636f6c,0x00785f6c,0x00080005,0x0000001b,
|
||||
0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163,0x44496e6f,0x00000000,0x00040005,0x00000021,
|
||||
0x61636f6c,0x00795f6c,0x00050005,0x00000026,0x6f6c5f61,0x5f6c6163,0x00000078,0x00050005,
|
||||
0x0000002c,0x6f6c5f61,0x5f6c6163,0x00000079,0x00050005,0x00000031,0x6f6c5f62,0x5f6c6163,
|
||||
0x00000078,0x00050005,0x00000036,0x6f6c5f62,0x5f6c6163,0x00000079,0x00040005,0x0000003b,
|
||||
0x66666f61,0x00746573,0x00050005,0x0000003c,0x68737570,0x636f6c42,0x0000006b,0x00040006,
|
||||
0x0000003c,0x00000000,0x0000004d,0x00040006,0x0000003c,0x00000001,0x0000004b,0x00040006,
|
||||
0x0000003c,0x00000002,0x0000004e,0x00050006,0x0000003c,0x00000003,0x7274534b,0x00007069,
|
||||
0x00070006,0x0000003c,0x00000004,0x7274534b,0x65527069,0x6e69616d,0x00000000,0x00030005,
|
||||
0x0000003e,0x00000070,0x00040005,0x0000004c,0x66666f62,0x00746573,0x00030005,0x00000056,
|
||||
0x0000006e,0x00030005,0x00000064,0x006d7573,0x00030005,0x0000006b,0x00000069,0x00030005,
|
||||
0x00000076,0x00000073,0x00040005,0x00000084,0x61687361,0x00006572,0x00040005,0x0000008b,
|
||||
0x75706e49,0x00003074,0x00060006,0x0000008b,0x00000000,0x67616d69,0x61645f65,0x00006174,
|
||||
0x00030005,0x0000008d,0x00000000,0x00030005,0x0000009f,0x00000073,0x00040005,0x000000aa,
|
||||
0x61687362,0x00006572,0x00040005,0x000000b2,0x75706e49,0x00003174,0x00060006,0x000000b2,
|
||||
0x00000000,0x67696577,0x645f7468,0x00617461,0x00030005,0x000000b4,0x00000000,0x00030005,
|
||||
0x000000c9,0x0000006a,0x00030005,0x000000d1,0x0000006d,0x00040005,0x000000dc,0x41676572,
|
||||
0x00000000,0x00030005,0x000000e8,0x0000006d,0x00040005,0x000000f0,0x42676572,0x00000000,
|
||||
0x00030005,0x000000fc,0x0000006d,0x00030005,0x00000104,0x0000006e,0x00050005,0x00000128,
|
||||
0x66666f61,0x32746573,0x00000000,0x00050005,0x0000012e,0x66666f62,0x32746573,0x00000000,
|
||||
0x00030005,0x00000137,0x00000073,0x00030005,0x00000150,0x00000073,0x00030005,0x00000169,
|
||||
0x0000006a,0x00030005,0x00000173,0x0000006d,0x00030005,0x00000186,0x0000006d,0x00030005,
|
||||
0x00000199,0x0000006d,0x00030005,0x000001a1,0x0000006e,0x00030005,0x000001be,0x0000006e,
|
||||
0x00040005,0x000001c6,0x646e496e,0x00327865,0x00030005,0x000001d3,0x0000006d,0x00040005,
|
||||
0x000001db,0x646e496d,0x00327865,0x00040005,0x000001e9,0x7074754f,0x00007475,0x00060006,
|
||||
0x000001e9,0x00000000,0x4d74756f,0x645f7461,0x00617461,0x00030005,0x000001eb,0x00000000,
|
||||
0x00040047,0x0000000c,0x0000000b,0x0000001a,0x00040047,0x0000001b,0x0000000b,0x0000001b,
|
||||
0x00050048,0x0000003c,0x00000000,0x00000023,0x00000000,0x00050048,0x0000003c,0x00000001,
|
||||
0x00000023,0x00000004,0x00050048,0x0000003c,0x00000002,0x00000023,0x00000008,0x00050048,
|
||||
0x0000003c,0x00000003,0x00000023,0x0000000c,0x00050048,0x0000003c,0x00000004,0x00000023,
|
||||
0x00000010,0x00030047,0x0000003c,0x00000002,0x00040047,0x0000003e,0x00000022,0x00000000,
|
||||
0x00040047,0x0000003e,0x00000021,0x00000003,0x00040047,0x0000008a,0x00000006,0x00000004,
|
||||
0x00040048,0x0000008b,0x00000000,0x00000018,0x00050048,0x0000008b,0x00000000,0x00000023,
|
||||
0x00000000,0x00030047,0x0000008b,0x00000003,0x00040047,0x0000008d,0x00000022,0x00000000,
|
||||
0x00040047,0x0000008d,0x00000021,0x00000000,0x00040047,0x000000b1,0x00000006,0x00000004,
|
||||
0x00040048,0x000000b2,0x00000000,0x00000018,0x00050048,0x000000b2,0x00000000,0x00000023,
|
||||
0x00000000,0x00030047,0x000000b2,0x00000003,0x00040047,0x000000b4,0x00000022,0x00000000,
|
||||
0x00040047,0x000000b4,0x00000021,0x00000001,0x00040047,0x000001e8,0x00000006,0x00000004,
|
||||
0x00040048,0x000001e9,0x00000000,0x00000019,0x00050048,0x000001e9,0x00000000,0x00000023,
|
||||
0x00000000,0x00030047,0x000001e9,0x00000003,0x00040047,0x000001eb,0x00000022,0x00000000,
|
||||
0x00040047,0x000001eb,0x00000021,0x00000002,0x00040047,0x000001fe,0x0000000b,0x00000019,
|
||||
0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,
|
||||
0x00000001,0x00040020,0x00000007,0x00000007,0x00000006,0x00040015,0x00000009,0x00000020,
|
||||
0x00000000,0x00040017,0x0000000a,0x00000009,0x00000003,0x00040020,0x0000000b,0x00000001,
|
||||
0x0000000a,0x0004003b,0x0000000b,0x0000000c,0x00000001,0x0004002b,0x00000009,0x0000000d,
|
||||
0x00000000,0x00040020,0x0000000e,0x00000001,0x00000009,0x0004002b,0x00000006,0x00000012,
|
||||
0x00000040,0x0004002b,0x00000009,0x00000015,0x00000001,0x0004003b,0x0000000b,0x0000001b,
|
||||
0x00000001,0x0004002b,0x00000006,0x0000001f,0x00000010,0x0004002b,0x00000006,0x0000002a,
|
||||
0x00000020,0x0007001e,0x0000003c,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,
|
||||
0x00040020,0x0000003d,0x00000002,0x0000003c,0x0004003b,0x0000003d,0x0000003e,0x00000002,
|
||||
0x0004002b,0x00000006,0x0000003f,0x00000001,0x00040020,0x00000040,0x00000002,0x00000006,
|
||||
0x0004002b,0x00000006,0x00000051,0x00000002,0x0004002b,0x00000006,0x00000057,0x00000000,
|
||||
0x00020014,0x0000005e,0x00030016,0x00000060,0x00000020,0x0004002b,0x00000009,0x00000061,
|
||||
0x00000010,0x0004001c,0x00000062,0x00000060,0x00000061,0x00040020,0x00000063,0x00000007,
|
||||
0x00000062,0x0004002b,0x00000060,0x00000066,0x00000000,0x00040020,0x00000067,0x00000007,
|
||||
0x00000060,0x0004002b,0x00000006,0x00000072,0x00000003,0x0004002b,0x00000006,0x0000007d,
|
||||
0x00000008,0x0004002b,0x00000009,0x0000007f,0x00000040,0x0004001c,0x00000080,0x00000060,
|
||||
0x0000007f,0x0004002b,0x00000009,0x00000081,0x00000020,0x0004001c,0x00000082,0x00000080,
|
||||
0x00000081,0x00040020,0x00000083,0x00000004,0x00000082,0x0004003b,0x00000083,0x00000084,
|
||||
0x00000004,0x0003001d,0x0000008a,0x00000060,0x0003001e,0x0000008b,0x0000008a,0x00040020,
|
||||
0x0000008c,0x00000002,0x0000008b,0x0004003b,0x0000008c,0x0000008d,0x00000002,0x00040020,
|
||||
0x00000098,0x00000002,0x00000060,0x00040020,0x0000009b,0x00000004,0x00000060,0x0004001c,
|
||||
0x000000a7,0x00000060,0x00000081,0x0004001c,0x000000a8,0x000000a7,0x0000007f,0x00040020,
|
||||
0x000000a9,0x00000004,0x000000a8,0x0004003b,0x000000a9,0x000000aa,0x00000004,0x0004002b,
|
||||
0x00000006,0x000000ad,0x00000004,0x0003001d,0x000000b1,0x00000060,0x0003001e,0x000000b2,
|
||||
0x000000b1,0x00040020,0x000000b3,0x00000002,0x000000b2,0x0004003b,0x000000b3,0x000000b4,
|
||||
0x00000002,0x0004002b,0x00000009,0x000000c7,0x00000002,0x0004002b,0x00000009,0x000000c8,
|
||||
0x00000108,0x0004002b,0x00000009,0x000000d9,0x00000004,0x0004001c,0x000000da,0x00000060,
|
||||
0x000000d9,0x00040020,0x000000db,0x00000007,0x000000da,0x0003001d,0x000001e8,0x00000060,
|
||||
0x0003001e,0x000001e9,0x000001e8,0x00040020,0x000001ea,0x00000002,0x000001e9,0x0004003b,
|
||||
0x000001ea,0x000001eb,0x00000002,0x0004002b,0x00000009,0x000001fd,0x00000100,0x0006002c,
|
||||
0x0000000a,0x000001fe,0x000001fd,0x00000015,0x00000015,0x00050036,0x00000002,0x00000004,
|
||||
0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x00000008,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000014,0x00000007,0x0004003b,0x00000007,0x0000001a,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000021,0x00000007,0x0004003b,0x00000007,0x00000026,0x00000007,
|
||||
0x0004003b,0x00000007,0x0000002c,0x00000007,0x0004003b,0x00000007,0x00000031,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000036,0x00000007,0x0004003b,0x00000007,0x0000003b,0x00000007,
|
||||
0x0004003b,0x00000007,0x0000004c,0x00000007,0x0004003b,0x00000007,0x00000056,0x00000007,
|
||||
0x0004003b,0x00000063,0x00000064,0x00000007,0x0004003b,0x00000007,0x0000006b,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000076,0x00000007,0x0004003b,0x00000007,0x0000009f,0x00000007,
|
||||
0x0004003b,0x00000007,0x000000c9,0x00000007,0x0004003b,0x00000007,0x000000d1,0x00000007,
|
||||
0x0004003b,0x000000db,0x000000dc,0x00000007,0x0004003b,0x00000007,0x000000e8,0x00000007,
|
||||
0x0004003b,0x000000db,0x000000f0,0x00000007,0x0004003b,0x00000007,0x000000fc,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000104,0x00000007,0x0004003b,0x00000007,0x00000128,0x00000007,
|
||||
0x0004003b,0x00000007,0x0000012e,0x00000007,0x0004003b,0x00000007,0x00000137,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000150,0x00000007,0x0004003b,0x00000007,0x00000169,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000173,0x00000007,0x0004003b,0x00000007,0x00000186,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000199,0x00000007,0x0004003b,0x00000007,0x000001a1,0x00000007,
|
||||
0x0004003b,0x00000007,0x000001be,0x00000007,0x0004003b,0x00000007,0x000001c6,0x00000007,
|
||||
0x0004003b,0x00000007,0x000001d3,0x00000007,0x0004003b,0x00000007,0x000001db,0x00000007,
|
||||
0x00050041,0x0000000e,0x0000000f,0x0000000c,0x0000000d,0x0004003d,0x00000009,0x00000010,
|
||||
0x0000000f,0x0004007c,0x00000006,0x00000011,0x00000010,0x00050084,0x00000006,0x00000013,
|
||||
0x00000011,0x00000012,0x0003003e,0x00000008,0x00000013,0x00050041,0x0000000e,0x00000016,
|
||||
0x0000000c,0x00000015,0x0004003d,0x00000009,0x00000017,0x00000016,0x0004007c,0x00000006,
|
||||
0x00000018,0x00000017,0x00050084,0x00000006,0x00000019,0x00000018,0x00000012,0x0003003e,
|
||||
0x00000014,0x00000019,0x00050041,0x0000000e,0x0000001c,0x0000001b,0x0000000d,0x0004003d,
|
||||
0x00000009,0x0000001d,0x0000001c,0x0004007c,0x00000006,0x0000001e,0x0000001d,0x0005008b,
|
||||
0x00000006,0x00000020,0x0000001e,0x0000001f,0x0003003e,0x0000001a,0x00000020,0x00050041,
|
||||
0x0000000e,0x00000022,0x0000001b,0x0000000d,0x0004003d,0x00000009,0x00000023,0x00000022,
|
||||
0x0004007c,0x00000006,0x00000024,0x00000023,0x00050087,0x00000006,0x00000025,0x00000024,
|
||||
0x0000001f,0x0003003e,0x00000021,0x00000025,0x00050041,0x0000000e,0x00000027,0x0000001b,
|
||||
0x0000000d,0x0004003d,0x00000009,0x00000028,0x00000027,0x0004007c,0x00000006,0x00000029,
|
||||
0x00000028,0x0005008b,0x00000006,0x0000002b,0x00000029,0x0000002a,0x0003003e,0x00000026,
|
||||
0x0000002b,0x00050041,0x0000000e,0x0000002d,0x0000001b,0x0000000d,0x0004003d,0x00000009,
|
||||
0x0000002e,0x0000002d,0x0004007c,0x00000006,0x0000002f,0x0000002e,0x00050087,0x00000006,
|
||||
0x00000030,0x0000002f,0x0000002a,0x0003003e,0x0000002c,0x00000030,0x00050041,0x0000000e,
|
||||
0x00000032,0x0000001b,0x0000000d,0x0004003d,0x00000009,0x00000033,0x00000032,0x0004007c,
|
||||
0x00000006,0x00000034,0x00000033,0x0005008b,0x00000006,0x00000035,0x00000034,0x00000012,
|
||||
0x0003003e,0x00000031,0x00000035,0x00050041,0x0000000e,0x00000037,0x0000001b,0x0000000d,
|
||||
0x0004003d,0x00000009,0x00000038,0x00000037,0x0004007c,0x00000006,0x00000039,0x00000038,
|
||||
0x00050087,0x00000006,0x0000003a,0x00000039,0x00000012,0x0003003e,0x00000036,0x0000003a,
|
||||
0x00050041,0x00000040,0x00000041,0x0000003e,0x0000003f,0x0004003d,0x00000006,0x00000042,
|
||||
0x00000041,0x0004003d,0x00000006,0x00000043,0x00000008,0x00050084,0x00000006,0x00000044,
|
||||
0x00000042,0x00000043,0x0004003d,0x00000006,0x00000045,0x0000002c,0x00050041,0x00000040,
|
||||
0x00000046,0x0000003e,0x0000003f,0x0004003d,0x00000006,0x00000047,0x00000046,0x00050084,
|
||||
0x00000006,0x00000048,0x00000045,0x00000047,0x00050080,0x00000006,0x00000049,0x00000044,
|
||||
0x00000048,0x0004003d,0x00000006,0x0000004a,0x00000026,0x00050080,0x00000006,0x0000004b,
|
||||
0x00000049,0x0000004a,0x0003003e,0x0000003b,0x0000004b,0x0004003d,0x00000006,0x0000004d,
|
||||
0x00000014,0x0004003d,0x00000006,0x0000004e,0x00000031,0x00050080,0x00000006,0x0000004f,
|
||||
0x0000004d,0x0000004e,0x0004003d,0x00000006,0x00000050,0x00000036,0x00050041,0x00000040,
|
||||
0x00000052,0x0000003e,0x00000051,0x0004003d,0x00000006,0x00000053,0x00000052,0x00050084,
|
||||
0x00000006,0x00000054,0x00000050,0x00000053,0x00050080,0x00000006,0x00000055,0x0000004f,
|
||||
0x00000054,0x0003003e,0x0000004c,0x00000055,0x0003003e,0x00000056,0x00000057,0x000200f9,
|
||||
0x00000058,0x000200f8,0x00000058,0x000400f6,0x0000005a,0x0000005b,0x00000000,0x000200f9,
|
||||
0x0000005c,0x000200f8,0x0000005c,0x0004003d,0x00000006,0x0000005d,0x00000056,0x000500b1,
|
||||
0x0000005e,0x0000005f,0x0000005d,0x0000001f,0x000400fa,0x0000005f,0x00000059,0x0000005a,
|
||||
0x000200f8,0x00000059,0x0004003d,0x00000006,0x00000065,0x00000056,0x00050041,0x00000067,
|
||||
0x00000068,0x00000064,0x00000065,0x0003003e,0x00000068,0x00000066,0x000200f9,0x0000005b,
|
||||
0x000200f8,0x0000005b,0x0004003d,0x00000006,0x00000069,0x00000056,0x00050080,0x00000006,
|
||||
0x0000006a,0x00000069,0x0000003f,0x0003003e,0x00000056,0x0000006a,0x000200f9,0x00000058,
|
||||
0x000200f8,0x0000005a,0x0003003e,0x0000006b,0x00000057,0x000200f9,0x0000006c,0x000200f8,
|
||||
0x0000006c,0x000400f6,0x0000006e,0x0000006f,0x00000000,0x000200f9,0x00000070,0x000200f8,
|
||||
0x00000070,0x0004003d,0x00000006,0x00000071,0x0000006b,0x00050041,0x00000040,0x00000073,
|
||||
0x0000003e,0x00000072,0x0004003d,0x00000006,0x00000074,0x00000073,0x000500b1,0x0000005e,
|
||||
0x00000075,0x00000071,0x00000074,0x000400fa,0x00000075,0x0000006d,0x0000006e,0x000200f8,
|
||||
0x0000006d,0x0003003e,0x00000076,0x00000057,0x000200f9,0x00000077,0x000200f8,0x00000077,
|
||||
0x000400f6,0x00000079,0x0000007a,0x00000000,0x000200f9,0x0000007b,0x000200f8,0x0000007b,
|
||||
0x0004003d,0x00000006,0x0000007c,0x00000076,0x000500b1,0x0000005e,0x0000007e,0x0000007c,
|
||||
0x0000007d,0x000400fa,0x0000007e,0x00000078,0x00000079,0x000200f8,0x00000078,0x0004003d,
|
||||
0x00000006,0x00000085,0x00000026,0x0004003d,0x00000006,0x00000086,0x00000076,0x00050084,
|
||||
0x00000006,0x00000087,0x00000086,0x0000007d,0x0004003d,0x00000006,0x00000088,0x0000002c,
|
||||
0x00050080,0x00000006,0x00000089,0x00000087,0x00000088,0x0004003d,0x00000006,0x0000008e,
|
||||
0x0000003b,0x0004003d,0x00000006,0x0000008f,0x00000076,0x00050084,0x00000006,0x00000090,
|
||||
0x0000008f,0x0000007d,0x00050041,0x00000040,0x00000091,0x0000003e,0x0000003f,0x0004003d,
|
||||
0x00000006,0x00000092,0x00000091,0x00050084,0x00000006,0x00000093,0x00000090,0x00000092,
|
||||
0x00050080,0x00000006,0x00000094,0x0000008e,0x00000093,0x0004003d,0x00000006,0x00000095,
|
||||
0x0000006b,0x00050084,0x00000006,0x00000096,0x00000095,0x0000002a,0x00050080,0x00000006,
|
||||
0x00000097,0x00000094,0x00000096,0x00060041,0x00000098,0x00000099,0x0000008d,0x00000057,
|
||||
0x00000097,0x0004003d,0x00000060,0x0000009a,0x00000099,0x00060041,0x0000009b,0x0000009c,
|
||||
0x00000084,0x00000085,0x00000089,0x0003003e,0x0000009c,0x0000009a,0x000200f9,0x0000007a,
|
||||
0x000200f8,0x0000007a,0x0004003d,0x00000006,0x0000009d,0x00000076,0x00050080,0x00000006,
|
||||
0x0000009e,0x0000009d,0x0000003f,0x0003003e,0x00000076,0x0000009e,0x000200f9,0x00000077,
|
||||
0x000200f8,0x00000079,0x0003003e,0x0000009f,0x00000057,0x000200f9,0x000000a0,0x000200f8,
|
||||
0x000000a0,0x000400f6,0x000000a2,0x000000a3,0x00000000,0x000200f9,0x000000a4,0x000200f8,
|
||||
0x000000a4,0x0004003d,0x00000006,0x000000a5,0x0000009f,0x000500b1,0x0000005e,0x000000a6,
|
||||
0x000000a5,0x0000007d,0x000400fa,0x000000a6,0x000000a1,0x000000a2,0x000200f8,0x000000a1,
|
||||
0x0004003d,0x00000006,0x000000ab,0x00000031,0x0004003d,0x00000006,0x000000ac,0x0000009f,
|
||||
0x00050084,0x00000006,0x000000ae,0x000000ac,0x000000ad,0x0004003d,0x00000006,0x000000af,
|
||||
0x00000036,0x00050080,0x00000006,0x000000b0,0x000000ae,0x000000af,0x0004003d,0x00000006,
|
||||
0x000000b5,0x0000004c,0x0004003d,0x00000006,0x000000b6,0x0000009f,0x00050084,0x00000006,
|
||||
0x000000b7,0x000000b6,0x000000ad,0x00050041,0x00000040,0x000000b8,0x0000003e,0x00000051,
|
||||
0x0004003d,0x00000006,0x000000b9,0x000000b8,0x00050084,0x00000006,0x000000ba,0x000000b7,
|
||||
0x000000b9,0x00050080,0x00000006,0x000000bb,0x000000b5,0x000000ba,0x0004003d,0x00000006,
|
||||
0x000000bc,0x0000006b,0x00050084,0x00000006,0x000000bd,0x000000bc,0x0000002a,0x00050041,
|
||||
0x00000040,0x000000be,0x0000003e,0x00000051,0x0004003d,0x00000006,0x000000bf,0x000000be,
|
||||
0x00050084,0x00000006,0x000000c0,0x000000bd,0x000000bf,0x00050080,0x00000006,0x000000c1,
|
||||
0x000000bb,0x000000c0,0x00060041,0x00000098,0x000000c2,0x000000b4,0x00000057,0x000000c1,
|
||||
0x0004003d,0x00000060,0x000000c3,0x000000c2,0x00060041,0x0000009b,0x000000c4,0x000000aa,
|
||||
0x000000ab,0x000000b0,0x0003003e,0x000000c4,0x000000c3,0x000200f9,0x000000a3,0x000200f8,
|
||||
0x000000a3,0x0004003d,0x00000006,0x000000c5,0x0000009f,0x00050080,0x00000006,0x000000c6,
|
||||
0x000000c5,0x0000003f,0x0003003e,0x0000009f,0x000000c6,0x000200f9,0x000000a0,0x000200f8,
|
||||
0x000000a2,0x000400e0,0x000000c7,0x000000c7,0x000000c8,0x0003003e,0x000000c9,0x00000057,
|
||||
0x000200f9,0x000000ca,0x000200f8,0x000000ca,0x000400f6,0x000000cc,0x000000cd,0x00000000,
|
||||
0x000200f9,0x000000ce,0x000200f8,0x000000ce,0x0004003d,0x00000006,0x000000cf,0x000000c9,
|
||||
0x000500b1,0x0000005e,0x000000d0,0x000000cf,0x0000002a,0x000400fa,0x000000d0,0x000000cb,
|
||||
0x000000cc,0x000200f8,0x000000cb,0x0003003e,0x000000d1,0x00000057,0x000200f9,0x000000d2,
|
||||
0x000200f8,0x000000d2,0x000400f6,0x000000d4,0x000000d5,0x00000000,0x000200f9,0x000000d6,
|
||||
0x000200f8,0x000000d6,0x0004003d,0x00000006,0x000000d7,0x000000d1,0x000500b1,0x0000005e,
|
||||
0x000000d8,0x000000d7,0x000000ad,0x000400fa,0x000000d8,0x000000d3,0x000000d4,0x000200f8,
|
||||
0x000000d3,0x0004003d,0x00000006,0x000000dd,0x000000d1,0x0004003d,0x00000006,0x000000de,
|
||||
0x000000c9,0x0004003d,0x00000006,0x000000df,0x0000001a,0x00050084,0x00000006,0x000000e0,
|
||||
0x000000df,0x000000ad,0x0004003d,0x00000006,0x000000e1,0x000000d1,0x00050080,0x00000006,
|
||||
0x000000e2,0x000000e0,0x000000e1,0x00060041,0x0000009b,0x000000e3,0x00000084,0x000000de,
|
||||
0x000000e2,0x0004003d,0x00000060,0x000000e4,0x000000e3,0x00050041,0x00000067,0x000000e5,
|
||||
0x000000dc,0x000000dd,0x0003003e,0x000000e5,0x000000e4,0x000200f9,0x000000d5,0x000200f8,
|
||||
0x000000d5,0x0004003d,0x00000006,0x000000e6,0x000000d1,0x00050080,0x00000006,0x000000e7,
|
||||
0x000000e6,0x0000003f,0x0003003e,0x000000d1,0x000000e7,0x000200f9,0x000000d2,0x000200f8,
|
||||
0x000000d4,0x0003003e,0x000000e8,0x00000057,0x000200f9,0x000000e9,0x000200f8,0x000000e9,
|
||||
0x000400f6,0x000000eb,0x000000ec,0x00000000,0x000200f9,0x000000ed,0x000200f8,0x000000ed,
|
||||
0x0004003d,0x00000006,0x000000ee,0x000000e8,0x000500b1,0x0000005e,0x000000ef,0x000000ee,
|
||||
0x000000ad,0x000400fa,0x000000ef,0x000000ea,0x000000eb,0x000200f8,0x000000ea,0x0004003d,
|
||||
0x00000006,0x000000f1,0x000000e8,0x0004003d,0x00000006,0x000000f2,0x00000021,0x0004003d,
|
||||
0x00000006,0x000000f3,0x000000e8,0x00050084,0x00000006,0x000000f4,0x0000001f,0x000000f3,
|
||||
0x00050080,0x00000006,0x000000f5,0x000000f2,0x000000f4,0x0004003d,0x00000006,0x000000f6,
|
||||
0x000000c9,0x00060041,0x0000009b,0x000000f7,0x000000aa,0x000000f5,0x000000f6,0x0004003d,
|
||||
0x00000060,0x000000f8,0x000000f7,0x00050041,0x00000067,0x000000f9,0x000000f0,0x000000f1,
|
||||
0x0003003e,0x000000f9,0x000000f8,0x000200f9,0x000000ec,0x000200f8,0x000000ec,0x0004003d,
|
||||
0x00000006,0x000000fa,0x000000e8,0x00050080,0x00000006,0x000000fb,0x000000fa,0x0000003f,
|
||||
0x0003003e,0x000000e8,0x000000fb,0x000200f9,0x000000e9,0x000200f8,0x000000eb,0x0003003e,
|
||||
0x000000fc,0x00000057,0x000200f9,0x000000fd,0x000200f8,0x000000fd,0x000400f6,0x000000ff,
|
||||
0x00000100,0x00000000,0x000200f9,0x00000101,0x000200f8,0x00000101,0x0004003d,0x00000006,
|
||||
0x00000102,0x000000fc,0x000500b1,0x0000005e,0x00000103,0x00000102,0x000000ad,0x000400fa,
|
||||
0x00000103,0x000000fe,0x000000ff,0x000200f8,0x000000fe,0x0003003e,0x00000104,0x00000057,
|
||||
0x000200f9,0x00000105,0x000200f8,0x00000105,0x000400f6,0x00000107,0x00000108,0x00000000,
|
||||
0x000200f9,0x00000109,0x000200f8,0x00000109,0x0004003d,0x00000006,0x0000010a,0x00000104,
|
||||
0x000500b1,0x0000005e,0x0000010b,0x0000010a,0x000000ad,0x000400fa,0x0000010b,0x00000106,
|
||||
0x00000107,0x000200f8,0x00000106,0x0004003d,0x00000006,0x0000010c,0x000000fc,0x00050084,
|
||||
0x00000006,0x0000010d,0x0000010c,0x000000ad,0x0004003d,0x00000006,0x0000010e,0x00000104,
|
||||
0x00050080,0x00000006,0x0000010f,0x0000010d,0x0000010e,0x0004003d,0x00000006,0x00000110,
|
||||
0x000000fc,0x00050041,0x00000067,0x00000111,0x000000dc,0x00000110,0x0004003d,0x00000060,
|
||||
0x00000112,0x00000111,0x0004003d,0x00000006,0x00000113,0x00000104,0x00050041,0x00000067,
|
||||
0x00000114,0x000000f0,0x00000113,0x0004003d,0x00000060,0x00000115,0x00000114,0x00050085,
|
||||
0x00000060,0x00000116,0x00000112,0x00000115,0x00050041,0x00000067,0x00000117,0x00000064,
|
||||
0x0000010f,0x0004003d,0x00000060,0x00000118,0x00000117,0x00050081,0x00000060,0x00000119,
|
||||
0x00000118,0x00000116,0x00050041,0x00000067,0x0000011a,0x00000064,0x0000010f,0x0003003e,
|
||||
0x0000011a,0x00000119,0x000200f9,0x00000108,0x000200f8,0x00000108,0x0004003d,0x00000006,
|
||||
0x0000011b,0x00000104,0x00050080,0x00000006,0x0000011c,0x0000011b,0x0000003f,0x0003003e,
|
||||
0x00000104,0x0000011c,0x000200f9,0x00000105,0x000200f8,0x00000107,0x000200f9,0x00000100,
|
||||
0x000200f8,0x00000100,0x0004003d,0x00000006,0x0000011d,0x000000fc,0x00050080,0x00000006,
|
||||
0x0000011e,0x0000011d,0x0000003f,0x0003003e,0x000000fc,0x0000011e,0x000200f9,0x000000fd,
|
||||
0x000200f8,0x000000ff,0x000200f9,0x000000cd,0x000200f8,0x000000cd,0x0004003d,0x00000006,
|
||||
0x0000011f,0x000000c9,0x00050080,0x00000006,0x00000120,0x0000011f,0x0000003f,0x0003003e,
|
||||
0x000000c9,0x00000120,0x000200f9,0x000000ca,0x000200f8,0x000000cc,0x000400e0,0x000000c7,
|
||||
0x000000c7,0x000000c8,0x000200f9,0x0000006f,0x000200f8,0x0000006f,0x0004003d,0x00000006,
|
||||
0x00000121,0x0000006b,0x00050080,0x00000006,0x00000122,0x00000121,0x0000003f,0x0003003e,
|
||||
0x0000006b,0x00000122,0x000200f9,0x0000006c,0x000200f8,0x0000006e,0x00050041,0x00000040,
|
||||
0x00000123,0x0000003e,0x000000ad,0x0004003d,0x00000006,0x00000124,0x00000123,0x000500ad,
|
||||
0x0000005e,0x00000125,0x00000124,0x00000057,0x000300f7,0x00000127,0x00000000,0x000400fa,
|
||||
0x00000125,0x00000126,0x00000127,0x000200f8,0x00000126,0x0004003d,0x00000006,0x00000129,
|
||||
0x0000003b,0x00050041,0x00000040,0x0000012a,0x0000003e,0x00000072,0x0004003d,0x00000006,
|
||||
0x0000012b,0x0000012a,0x00050084,0x00000006,0x0000012c,0x0000012b,0x0000002a,0x00050080,
|
||||
0x00000006,0x0000012d,0x00000129,0x0000012c,0x0003003e,0x00000128,0x0000012d,0x0004003d,
|
||||
0x00000006,0x0000012f,0x0000004c,0x00050041,0x00000040,0x00000130,0x0000003e,0x00000072,
|
||||
0x0004003d,0x00000006,0x00000131,0x00000130,0x00050084,0x00000006,0x00000132,0x00000131,
|
||||
0x0000002a,0x00050041,0x00000040,0x00000133,0x0000003e,0x00000051,0x0004003d,0x00000006,
|
||||
0x00000134,0x00000133,0x00050084,0x00000006,0x00000135,0x00000132,0x00000134,0x00050080,
|
||||
0x00000006,0x00000136,0x0000012f,0x00000135,0x0003003e,0x0000012e,0x00000136,0x0003003e,
|
||||
0x00000137,0x00000057,0x000200f9,0x00000138,0x000200f8,0x00000138,0x000400f6,0x0000013a,
|
||||
0x0000013b,0x00000000,0x000200f9,0x0000013c,0x000200f8,0x0000013c,0x0004003d,0x00000006,
|
||||
0x0000013d,0x00000137,0x000500b1,0x0000005e,0x0000013e,0x0000013d,0x0000007d,0x000400fa,
|
||||
0x0000013e,0x00000139,0x0000013a,0x000200f8,0x00000139,0x0004003d,0x00000006,0x0000013f,
|
||||
0x00000026,0x0004003d,0x00000006,0x00000140,0x00000137,0x00050084,0x00000006,0x00000141,
|
||||
0x00000140,0x0000007d,0x0004003d,0x00000006,0x00000142,0x0000002c,0x00050080,0x00000006,
|
||||
0x00000143,0x00000141,0x00000142,0x0004003d,0x00000006,0x00000144,0x00000128,0x0004003d,
|
||||
0x00000006,0x00000145,0x00000137,0x00050084,0x00000006,0x00000146,0x00000145,0x0000007d,
|
||||
0x00050041,0x00000040,0x00000147,0x0000003e,0x0000003f,0x0004003d,0x00000006,0x00000148,
|
||||
0x00000147,0x00050084,0x00000006,0x00000149,0x00000146,0x00000148,0x00050080,0x00000006,
|
||||
0x0000014a,0x00000144,0x00000149,0x00060041,0x00000098,0x0000014b,0x0000008d,0x00000057,
|
||||
0x0000014a,0x0004003d,0x00000060,0x0000014c,0x0000014b,0x00060041,0x0000009b,0x0000014d,
|
||||
0x00000084,0x0000013f,0x00000143,0x0003003e,0x0000014d,0x0000014c,0x000200f9,0x0000013b,
|
||||
0x000200f8,0x0000013b,0x0004003d,0x00000006,0x0000014e,0x00000137,0x00050080,0x00000006,
|
||||
0x0000014f,0x0000014e,0x0000003f,0x0003003e,0x00000137,0x0000014f,0x000200f9,0x00000138,
|
||||
0x000200f8,0x0000013a,0x0003003e,0x00000150,0x00000057,0x000200f9,0x00000151,0x000200f8,
|
||||
0x00000151,0x000400f6,0x00000153,0x00000154,0x00000000,0x000200f9,0x00000155,0x000200f8,
|
||||
0x00000155,0x0004003d,0x00000006,0x00000156,0x00000150,0x000500b1,0x0000005e,0x00000157,
|
||||
0x00000156,0x0000007d,0x000400fa,0x00000157,0x00000152,0x00000153,0x000200f8,0x00000152,
|
||||
0x0004003d,0x00000006,0x00000158,0x00000031,0x0004003d,0x00000006,0x00000159,0x00000150,
|
||||
0x00050084,0x00000006,0x0000015a,0x00000159,0x000000ad,0x0004003d,0x00000006,0x0000015b,
|
||||
0x00000036,0x00050080,0x00000006,0x0000015c,0x0000015a,0x0000015b,0x0004003d,0x00000006,
|
||||
0x0000015d,0x0000012e,0x0004003d,0x00000006,0x0000015e,0x00000150,0x00050084,0x00000006,
|
||||
0x0000015f,0x0000015e,0x000000ad,0x00050041,0x00000040,0x00000160,0x0000003e,0x00000051,
|
||||
0x0004003d,0x00000006,0x00000161,0x00000160,0x00050084,0x00000006,0x00000162,0x0000015f,
|
||||
0x00000161,0x00050080,0x00000006,0x00000163,0x0000015d,0x00000162,0x00060041,0x00000098,
|
||||
0x00000164,0x000000b4,0x00000057,0x00000163,0x0004003d,0x00000060,0x00000165,0x00000164,
|
||||
0x00060041,0x0000009b,0x00000166,0x000000aa,0x00000158,0x0000015c,0x0003003e,0x00000166,
|
||||
0x00000165,0x000200f9,0x00000154,0x000200f8,0x00000154,0x0004003d,0x00000006,0x00000167,
|
||||
0x00000150,0x00050080,0x00000006,0x00000168,0x00000167,0x0000003f,0x0003003e,0x00000150,
|
||||
0x00000168,0x000200f9,0x00000151,0x000200f8,0x00000153,0x000400e0,0x000000c7,0x000000c7,
|
||||
0x000000c8,0x0003003e,0x00000169,0x00000057,0x000200f9,0x0000016a,0x000200f8,0x0000016a,
|
||||
0x000400f6,0x0000016c,0x0000016d,0x00000000,0x000200f9,0x0000016e,0x000200f8,0x0000016e,
|
||||
0x0004003d,0x00000006,0x0000016f,0x00000169,0x00050041,0x00000040,0x00000170,0x0000003e,
|
||||
0x000000ad,0x0004003d,0x00000006,0x00000171,0x00000170,0x000500b1,0x0000005e,0x00000172,
|
||||
0x0000016f,0x00000171,0x000400fa,0x00000172,0x0000016b,0x0000016c,0x000200f8,0x0000016b,
|
||||
0x0003003e,0x00000173,0x00000057,0x000200f9,0x00000174,0x000200f8,0x00000174,0x000400f6,
|
||||
0x00000176,0x00000177,0x00000000,0x000200f9,0x00000178,0x000200f8,0x00000178,0x0004003d,
|
||||
0x00000006,0x00000179,0x00000173,0x000500b1,0x0000005e,0x0000017a,0x00000179,0x000000ad,
|
||||
0x000400fa,0x0000017a,0x00000175,0x00000176,0x000200f8,0x00000175,0x0004003d,0x00000006,
|
||||
0x0000017b,0x00000173,0x0004003d,0x00000006,0x0000017c,0x00000169,0x0004003d,0x00000006,
|
||||
0x0000017d,0x0000001a,0x00050084,0x00000006,0x0000017e,0x0000017d,0x000000ad,0x0004003d,
|
||||
0x00000006,0x0000017f,0x00000173,0x00050080,0x00000006,0x00000180,0x0000017e,0x0000017f,
|
||||
0x00060041,0x0000009b,0x00000181,0x00000084,0x0000017c,0x00000180,0x0004003d,0x00000060,
|
||||
0x00000182,0x00000181,0x00050041,0x00000067,0x00000183,0x000000dc,0x0000017b,0x0003003e,
|
||||
0x00000183,0x00000182,0x000200f9,0x00000177,0x000200f8,0x00000177,0x0004003d,0x00000006,
|
||||
0x00000184,0x00000173,0x00050080,0x00000006,0x00000185,0x00000184,0x0000003f,0x0003003e,
|
||||
0x00000173,0x00000185,0x000200f9,0x00000174,0x000200f8,0x00000176,0x0003003e,0x00000186,
|
||||
0x00000057,0x000200f9,0x00000187,0x000200f8,0x00000187,0x000400f6,0x00000189,0x0000018a,
|
||||
0x00000000,0x000200f9,0x0000018b,0x000200f8,0x0000018b,0x0004003d,0x00000006,0x0000018c,
|
||||
0x00000186,0x000500b1,0x0000005e,0x0000018d,0x0000018c,0x000000ad,0x000400fa,0x0000018d,
|
||||
0x00000188,0x00000189,0x000200f8,0x00000188,0x0004003d,0x00000006,0x0000018e,0x00000186,
|
||||
0x0004003d,0x00000006,0x0000018f,0x00000021,0x0004003d,0x00000006,0x00000190,0x00000186,
|
||||
0x00050084,0x00000006,0x00000191,0x0000001f,0x00000190,0x00050080,0x00000006,0x00000192,
|
||||
0x0000018f,0x00000191,0x0004003d,0x00000006,0x00000193,0x00000169,0x00060041,0x0000009b,
|
||||
0x00000194,0x000000aa,0x00000192,0x00000193,0x0004003d,0x00000060,0x00000195,0x00000194,
|
||||
0x00050041,0x00000067,0x00000196,0x000000f0,0x0000018e,0x0003003e,0x00000196,0x00000195,
|
||||
0x000200f9,0x0000018a,0x000200f8,0x0000018a,0x0004003d,0x00000006,0x00000197,0x00000186,
|
||||
0x00050080,0x00000006,0x00000198,0x00000197,0x0000003f,0x0003003e,0x00000186,0x00000198,
|
||||
0x000200f9,0x00000187,0x000200f8,0x00000189,0x0003003e,0x00000199,0x00000057,0x000200f9,
|
||||
0x0000019a,0x000200f8,0x0000019a,0x000400f6,0x0000019c,0x0000019d,0x00000000,0x000200f9,
|
||||
0x0000019e,0x000200f8,0x0000019e,0x0004003d,0x00000006,0x0000019f,0x00000199,0x000500b1,
|
||||
0x0000005e,0x000001a0,0x0000019f,0x000000ad,0x000400fa,0x000001a0,0x0000019b,0x0000019c,
|
||||
0x000200f8,0x0000019b,0x0003003e,0x000001a1,0x00000057,0x000200f9,0x000001a2,0x000200f8,
|
||||
0x000001a2,0x000400f6,0x000001a4,0x000001a5,0x00000000,0x000200f9,0x000001a6,0x000200f8,
|
||||
0x000001a6,0x0004003d,0x00000006,0x000001a7,0x000001a1,0x000500b1,0x0000005e,0x000001a8,
|
||||
0x000001a7,0x000000ad,0x000400fa,0x000001a8,0x000001a3,0x000001a4,0x000200f8,0x000001a3,
|
||||
0x0004003d,0x00000006,0x000001a9,0x00000199,0x00050084,0x00000006,0x000001aa,0x000001a9,
|
||||
0x000000ad,0x0004003d,0x00000006,0x000001ab,0x000001a1,0x00050080,0x00000006,0x000001ac,
|
||||
0x000001aa,0x000001ab,0x0004003d,0x00000006,0x000001ad,0x00000199,0x00050041,0x00000067,
|
||||
0x000001ae,0x000000dc,0x000001ad,0x0004003d,0x00000060,0x000001af,0x000001ae,0x0004003d,
|
||||
0x00000006,0x000001b0,0x000001a1,0x00050041,0x00000067,0x000001b1,0x000000f0,0x000001b0,
|
||||
0x0004003d,0x00000060,0x000001b2,0x000001b1,0x00050085,0x00000060,0x000001b3,0x000001af,
|
||||
0x000001b2,0x00050041,0x00000067,0x000001b4,0x00000064,0x000001ac,0x0004003d,0x00000060,
|
||||
0x000001b5,0x000001b4,0x00050081,0x00000060,0x000001b6,0x000001b5,0x000001b3,0x00050041,
|
||||
0x00000067,0x000001b7,0x00000064,0x000001ac,0x0003003e,0x000001b7,0x000001b6,0x000200f9,
|
||||
0x000001a5,0x000200f8,0x000001a5,0x0004003d,0x00000006,0x000001b8,0x000001a1,0x00050080,
|
||||
0x00000006,0x000001b9,0x000001b8,0x0000003f,0x0003003e,0x000001a1,0x000001b9,0x000200f9,
|
||||
0x000001a2,0x000200f8,0x000001a4,0x000200f9,0x0000019d,0x000200f8,0x0000019d,0x0004003d,
|
||||
0x00000006,0x000001ba,0x00000199,0x00050080,0x00000006,0x000001bb,0x000001ba,0x0000003f,
|
||||
0x0003003e,0x00000199,0x000001bb,0x000200f9,0x0000019a,0x000200f8,0x0000019c,0x000200f9,
|
||||
0x0000016d,0x000200f8,0x0000016d,0x0004003d,0x00000006,0x000001bc,0x00000169,0x00050080,
|
||||
0x00000006,0x000001bd,0x000001bc,0x0000003f,0x0003003e,0x00000169,0x000001bd,0x000200f9,
|
||||
0x0000016a,0x000200f8,0x0000016c,0x000200f9,0x00000127,0x000200f8,0x00000127,0x0003003e,
|
||||
0x000001be,0x00000057,0x000200f9,0x000001bf,0x000200f8,0x000001bf,0x000400f6,0x000001c1,
|
||||
0x000001c2,0x00000000,0x000200f9,0x000001c3,0x000200f8,0x000001c3,0x0004003d,0x00000006,
|
||||
0x000001c4,0x000001be,0x000500b1,0x0000005e,0x000001c5,0x000001c4,0x000000ad,0x000400fa,
|
||||
0x000001c5,0x000001c0,0x000001c1,0x000200f8,0x000001c0,0x0004003d,0x00000006,0x000001c7,
|
||||
0x00000014,0x0004003d,0x00000006,0x000001c8,0x000001be,0x00050084,0x00000006,0x000001c9,
|
||||
0x000001c8,0x0000001f,0x00050080,0x00000006,0x000001ca,0x000001c7,0x000001c9,0x0004003d,
|
||||
0x00000006,0x000001cb,0x00000021,0x00050080,0x00000006,0x000001cc,0x000001ca,0x000001cb,
|
||||
0x0003003e,0x000001c6,0x000001cc,0x0004003d,0x00000006,0x000001cd,0x000001c6,0x00050041,
|
||||
0x00000040,0x000001ce,0x0000003e,0x00000051,0x0004003d,0x00000006,0x000001cf,0x000001ce,
|
||||
0x000500b1,0x0000005e,0x000001d0,0x000001cd,0x000001cf,0x000300f7,0x000001d2,0x00000000,
|
||||
0x000400fa,0x000001d0,0x000001d1,0x000001d2,0x000200f8,0x000001d1,0x0003003e,0x000001d3,
|
||||
0x00000057,0x000200f9,0x000001d4,0x000200f8,0x000001d4,0x000400f6,0x000001d6,0x000001d7,
|
||||
0x00000000,0x000200f9,0x000001d8,0x000200f8,0x000001d8,0x0004003d,0x00000006,0x000001d9,
|
||||
0x000001d3,0x000500b1,0x0000005e,0x000001da,0x000001d9,0x000000ad,0x000400fa,0x000001da,
|
||||
0x000001d5,0x000001d6,0x000200f8,0x000001d5,0x0004003d,0x00000006,0x000001dc,0x00000008,
|
||||
0x0004003d,0x00000006,0x000001dd,0x0000001a,0x00050084,0x00000006,0x000001de,0x000001dd,
|
||||
0x000000ad,0x00050080,0x00000006,0x000001df,0x000001dc,0x000001de,0x0004003d,0x00000006,
|
||||
0x000001e0,0x000001d3,0x00050080,0x00000006,0x000001e1,0x000001df,0x000001e0,0x0003003e,
|
||||
0x000001db,0x000001e1,0x0004003d,0x00000006,0x000001e2,0x000001db,0x00050041,0x00000040,
|
||||
0x000001e3,0x0000003e,0x00000057,0x0004003d,0x00000006,0x000001e4,0x000001e3,0x000500b1,
|
||||
0x0000005e,0x000001e5,0x000001e2,0x000001e4,0x000300f7,0x000001e7,0x00000000,0x000400fa,
|
||||
0x000001e5,0x000001e6,0x000001e7,0x000200f8,0x000001e6,0x0004003d,0x00000006,0x000001ec,
|
||||
0x000001db,0x00050041,0x00000040,0x000001ed,0x0000003e,0x00000051,0x0004003d,0x00000006,
|
||||
0x000001ee,0x000001ed,0x00050084,0x00000006,0x000001ef,0x000001ec,0x000001ee,0x0004003d,
|
||||
0x00000006,0x000001f0,0x000001c6,0x00050080,0x00000006,0x000001f1,0x000001ef,0x000001f0,
|
||||
0x0004003d,0x00000006,0x000001f2,0x000001d3,0x00050084,0x00000006,0x000001f3,0x000001f2,
|
||||
0x000000ad,0x0004003d,0x00000006,0x000001f4,0x000001be,0x00050080,0x00000006,0x000001f5,
|
||||
0x000001f3,0x000001f4,0x00050041,0x00000067,0x000001f6,0x00000064,0x000001f5,0x0004003d,
|
||||
0x00000060,0x000001f7,0x000001f6,0x00060041,0x00000098,0x000001f8,0x000001eb,0x00000057,
|
||||
0x000001f1,0x0003003e,0x000001f8,0x000001f7,0x000200f9,0x000001e7,0x000200f8,0x000001e7,
|
||||
0x000200f9,0x000001d7,0x000200f8,0x000001d7,0x0004003d,0x00000006,0x000001f9,0x000001d3,
|
||||
0x00050080,0x00000006,0x000001fa,0x000001f9,0x0000003f,0x0003003e,0x000001d3,0x000001fa,
|
||||
0x000200f9,0x000001d4,0x000200f8,0x000001d6,0x000200f9,0x000001d2,0x000200f8,0x000001d2,
|
||||
0x000200f9,0x000001c2,0x000200f8,0x000001c2,0x0004003d,0x00000006,0x000001fb,0x000001be,
|
||||
0x00050080,0x00000006,0x000001fc,0x000001fb,0x0000003f,0x0003003e,0x000001be,0x000001fc,
|
||||
0x000200f9,0x000001bf,0x000200f8,0x000001c1,0x000100fd,0x00010038
|
||||
};
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,63 +0,0 @@
|
||||
#version 450
|
||||
#define LOCAL_SZ_X 256
|
||||
layout(push_constant) uniform pushBlock {
|
||||
int thread_num;
|
||||
int channels;
|
||||
int height;
|
||||
int width;
|
||||
int filter_len;
|
||||
int radius;
|
||||
float alpha;
|
||||
float bias;
|
||||
float negative_beta;
|
||||
} p;
|
||||
|
||||
layout(binding = 0) readonly buffer Input0{
|
||||
float in_buffer[];
|
||||
};
|
||||
layout(binding = 1) writeonly buffer Output{
|
||||
float dst_buffer[];
|
||||
};
|
||||
layout(local_size_x = LOCAL_SZ_X, local_size_y = 1, local_size_z = 1) in;
|
||||
void main()
|
||||
{
|
||||
int gid = int(gl_GlobalInvocationID.x);
|
||||
int gsz = int(gl_NumWorkGroups.x * gl_WorkGroupSize.x);
|
||||
for (int index = gid; index < p.thread_num; index += gsz)
|
||||
{
|
||||
int x = index % p.width;
|
||||
int y = (index / p.width) % p.height;
|
||||
int b = index / (p.width * p.height);
|
||||
int offset = b * p.channels * p.height * p.width + y * p.width + x;
|
||||
int channel_off = p.height * p.width;
|
||||
float scale_val;
|
||||
int head = 0;
|
||||
float accum_scale = 0.0f;
|
||||
int min_val = p.radius < p.channels ? p.radius : p.channels;
|
||||
while (head < min_val) {
|
||||
accum_scale += in_buffer[offset + head * channel_off] * in_buffer[offset + head * channel_off];
|
||||
++head;
|
||||
}
|
||||
while (head < p.channels) {
|
||||
accum_scale += in_buffer[offset + head * channel_off] * in_buffer[offset + head * channel_off];
|
||||
if (head - p.filter_len >= 0) {
|
||||
accum_scale -= in_buffer[offset + (head - p.filter_len) * channel_off]
|
||||
* in_buffer[offset + (head - p.filter_len) * channel_off];
|
||||
}
|
||||
scale_val = p.bias + accum_scale * p.alpha;
|
||||
dst_buffer[offset + (head - p.radius) * channel_off] = in_buffer[offset + (head - p.radius) * channel_off] * pow(scale_val, p.negative_beta);
|
||||
++head;
|
||||
}
|
||||
int pos = head - min_val;
|
||||
while (pos >= 0 && pos < p.channels) {
|
||||
if (head - p.filter_len >= 0) {
|
||||
accum_scale -= in_buffer[offset + (head - p.filter_len) * channel_off]
|
||||
* in_buffer[offset + (head - p.filter_len) * channel_off];
|
||||
}
|
||||
scale_val = p.bias + accum_scale * p.alpha;
|
||||
dst_buffer[offset + pos * channel_off] = in_buffer[offset + pos * channel_off] * pow(scale_val, p.negative_beta);
|
||||
++head;
|
||||
++pos;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,246 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
extern const unsigned int lrn_spv[1845] = {
|
||||
0x07230203,0x00010000,0x00080001,0x00000144,0x00000000,0x00020011,0x00000001,0x0006000b,
|
||||
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
|
||||
0x0007000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000c,0x00000013,0x00060010,
|
||||
0x00000004,0x00000011,0x00000100,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,
|
||||
0x00040005,0x00000004,0x6e69616d,0x00000000,0x00030005,0x00000008,0x00646967,0x00080005,
|
||||
0x0000000c,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00030005,
|
||||
0x00000012,0x007a7367,0x00070005,0x00000013,0x4e5f6c67,0x6f576d75,0x72476b72,0x7370756f,
|
||||
0x00000000,0x00040005,0x00000019,0x65646e69,0x00000078,0x00050005,0x00000022,0x68737570,
|
||||
0x636f6c42,0x0000006b,0x00060006,0x00000022,0x00000000,0x65726874,0x6e5f6461,0x00006d75,
|
||||
0x00060006,0x00000022,0x00000001,0x6e616863,0x736c656e,0x00000000,0x00050006,0x00000022,
|
||||
0x00000002,0x67696568,0x00007468,0x00050006,0x00000022,0x00000003,0x74646977,0x00000068,
|
||||
0x00060006,0x00000022,0x00000004,0x746c6966,0x6c5f7265,0x00006e65,0x00050006,0x00000022,
|
||||
0x00000005,0x69646172,0x00007375,0x00050006,0x00000022,0x00000006,0x68706c61,0x00000061,
|
||||
0x00050006,0x00000022,0x00000007,0x73616962,0x00000000,0x00070006,0x00000022,0x00000008,
|
||||
0x6167656e,0x65766974,0x7465625f,0x00000061,0x00030005,0x00000024,0x00000070,0x00030005,
|
||||
0x0000002b,0x00000078,0x00030005,0x00000031,0x00000079,0x00030005,0x0000003a,0x00000062,
|
||||
0x00040005,0x00000042,0x7366666f,0x00007465,0x00050005,0x00000055,0x6e616863,0x5f6c656e,
|
||||
0x0066666f,0x00040005,0x0000005b,0x64616568,0x00000000,0x00050005,0x0000005d,0x75636361,
|
||||
0x63735f6d,0x00656c61,0x00040005,0x0000005f,0x5f6e696d,0x006c6176,0x00040005,0x00000078,
|
||||
0x75706e49,0x00003074,0x00060006,0x00000078,0x00000000,0x625f6e69,0x65666675,0x00000072,
|
||||
0x00030005,0x0000007a,0x00000000,0x00050005,0x000000c8,0x6c616373,0x61765f65,0x0000006c,
|
||||
0x00040005,0x000000d4,0x7074754f,0x00007475,0x00060006,0x000000d4,0x00000000,0x5f747364,
|
||||
0x66667562,0x00007265,0x00030005,0x000000d6,0x00000000,0x00030005,0x000000f2,0x00736f70,
|
||||
0x00040047,0x0000000c,0x0000000b,0x0000001c,0x00040047,0x00000013,0x0000000b,0x00000018,
|
||||
0x00050048,0x00000022,0x00000000,0x00000023,0x00000000,0x00050048,0x00000022,0x00000001,
|
||||
0x00000023,0x00000004,0x00050048,0x00000022,0x00000002,0x00000023,0x00000008,0x00050048,
|
||||
0x00000022,0x00000003,0x00000023,0x0000000c,0x00050048,0x00000022,0x00000004,0x00000023,
|
||||
0x00000010,0x00050048,0x00000022,0x00000005,0x00000023,0x00000014,0x00050048,0x00000022,
|
||||
0x00000006,0x00000023,0x00000018,0x00050048,0x00000022,0x00000007,0x00000023,0x0000001c,
|
||||
0x00050048,0x00000022,0x00000008,0x00000023,0x00000020,0x00030047,0x00000022,0x00000002,
|
||||
0x00040047,0x00000077,0x00000006,0x00000004,0x00040048,0x00000078,0x00000000,0x00000018,
|
||||
0x00050048,0x00000078,0x00000000,0x00000023,0x00000000,0x00030047,0x00000078,0x00000003,
|
||||
0x00040047,0x0000007a,0x00000022,0x00000000,0x00040047,0x0000007a,0x00000021,0x00000000,
|
||||
0x00040047,0x000000d3,0x00000006,0x00000004,0x00040048,0x000000d4,0x00000000,0x00000019,
|
||||
0x00050048,0x000000d4,0x00000000,0x00000023,0x00000000,0x00030047,0x000000d4,0x00000003,
|
||||
0x00040047,0x000000d6,0x00000022,0x00000000,0x00040047,0x000000d6,0x00000021,0x00000001,
|
||||
0x00040047,0x00000143,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,
|
||||
0x00000002,0x00040015,0x00000006,0x00000020,0x00000001,0x00040020,0x00000007,0x00000007,
|
||||
0x00000006,0x00040015,0x00000009,0x00000020,0x00000000,0x00040017,0x0000000a,0x00000009,
|
||||
0x00000003,0x00040020,0x0000000b,0x00000001,0x0000000a,0x0004003b,0x0000000b,0x0000000c,
|
||||
0x00000001,0x0004002b,0x00000009,0x0000000d,0x00000000,0x00040020,0x0000000e,0x00000001,
|
||||
0x00000009,0x0004003b,0x0000000b,0x00000013,0x00000001,0x0004002b,0x00000009,0x00000016,
|
||||
0x00000100,0x00030016,0x00000021,0x00000020,0x000b001e,0x00000022,0x00000006,0x00000006,
|
||||
0x00000006,0x00000006,0x00000006,0x00000006,0x00000021,0x00000021,0x00000021,0x00040020,
|
||||
0x00000023,0x00000009,0x00000022,0x0004003b,0x00000023,0x00000024,0x00000009,0x0004002b,
|
||||
0x00000006,0x00000025,0x00000000,0x00040020,0x00000026,0x00000009,0x00000006,0x00020014,
|
||||
0x00000029,0x0004002b,0x00000006,0x0000002d,0x00000003,0x0004002b,0x00000006,0x00000036,
|
||||
0x00000002,0x0004002b,0x00000006,0x00000044,0x00000001,0x00040020,0x0000005c,0x00000007,
|
||||
0x00000021,0x0004002b,0x00000021,0x0000005e,0x00000000,0x0004002b,0x00000006,0x00000061,
|
||||
0x00000005,0x0003001d,0x00000077,0x00000021,0x0003001e,0x00000078,0x00000077,0x00040020,
|
||||
0x00000079,0x00000002,0x00000078,0x0004003b,0x00000079,0x0000007a,0x00000002,0x00040020,
|
||||
0x00000080,0x00000002,0x00000021,0x0004002b,0x00000006,0x000000aa,0x00000004,0x0004002b,
|
||||
0x00000006,0x000000c9,0x00000007,0x00040020,0x000000ca,0x00000009,0x00000021,0x0004002b,
|
||||
0x00000006,0x000000ce,0x00000006,0x0003001d,0x000000d3,0x00000021,0x0003001e,0x000000d4,
|
||||
0x000000d3,0x00040020,0x000000d5,0x00000002,0x000000d4,0x0004003b,0x000000d5,0x000000d6,
|
||||
0x00000002,0x0004002b,0x00000006,0x000000ea,0x00000008,0x0004002b,0x00000009,0x00000142,
|
||||
0x00000001,0x0006002c,0x0000000a,0x00000143,0x00000016,0x00000142,0x00000142,0x00050036,
|
||||
0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,
|
||||
0x00000008,0x00000007,0x0004003b,0x00000007,0x00000012,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000019,0x00000007,0x0004003b,0x00000007,0x0000002b,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000031,0x00000007,0x0004003b,0x00000007,0x0000003a,0x00000007,0x0004003b,0x00000007,
|
||||
0x00000042,0x00000007,0x0004003b,0x00000007,0x00000055,0x00000007,0x0004003b,0x00000007,
|
||||
0x0000005b,0x00000007,0x0004003b,0x0000005c,0x0000005d,0x00000007,0x0004003b,0x00000007,
|
||||
0x0000005f,0x00000007,0x0004003b,0x00000007,0x00000060,0x00000007,0x0004003b,0x0000005c,
|
||||
0x000000c8,0x00000007,0x0004003b,0x00000007,0x000000f2,0x00000007,0x00050041,0x0000000e,
|
||||
0x0000000f,0x0000000c,0x0000000d,0x0004003d,0x00000009,0x00000010,0x0000000f,0x0004007c,
|
||||
0x00000006,0x00000011,0x00000010,0x0003003e,0x00000008,0x00000011,0x00050041,0x0000000e,
|
||||
0x00000014,0x00000013,0x0000000d,0x0004003d,0x00000009,0x00000015,0x00000014,0x00050084,
|
||||
0x00000009,0x00000017,0x00000015,0x00000016,0x0004007c,0x00000006,0x00000018,0x00000017,
|
||||
0x0003003e,0x00000012,0x00000018,0x0004003d,0x00000006,0x0000001a,0x00000008,0x0003003e,
|
||||
0x00000019,0x0000001a,0x000200f9,0x0000001b,0x000200f8,0x0000001b,0x000400f6,0x0000001d,
|
||||
0x0000001e,0x00000000,0x000200f9,0x0000001f,0x000200f8,0x0000001f,0x0004003d,0x00000006,
|
||||
0x00000020,0x00000019,0x00050041,0x00000026,0x00000027,0x00000024,0x00000025,0x0004003d,
|
||||
0x00000006,0x00000028,0x00000027,0x000500b1,0x00000029,0x0000002a,0x00000020,0x00000028,
|
||||
0x000400fa,0x0000002a,0x0000001c,0x0000001d,0x000200f8,0x0000001c,0x0004003d,0x00000006,
|
||||
0x0000002c,0x00000019,0x00050041,0x00000026,0x0000002e,0x00000024,0x0000002d,0x0004003d,
|
||||
0x00000006,0x0000002f,0x0000002e,0x0005008b,0x00000006,0x00000030,0x0000002c,0x0000002f,
|
||||
0x0003003e,0x0000002b,0x00000030,0x0004003d,0x00000006,0x00000032,0x00000019,0x00050041,
|
||||
0x00000026,0x00000033,0x00000024,0x0000002d,0x0004003d,0x00000006,0x00000034,0x00000033,
|
||||
0x00050087,0x00000006,0x00000035,0x00000032,0x00000034,0x00050041,0x00000026,0x00000037,
|
||||
0x00000024,0x00000036,0x0004003d,0x00000006,0x00000038,0x00000037,0x0005008b,0x00000006,
|
||||
0x00000039,0x00000035,0x00000038,0x0003003e,0x00000031,0x00000039,0x0004003d,0x00000006,
|
||||
0x0000003b,0x00000019,0x00050041,0x00000026,0x0000003c,0x00000024,0x0000002d,0x0004003d,
|
||||
0x00000006,0x0000003d,0x0000003c,0x00050041,0x00000026,0x0000003e,0x00000024,0x00000036,
|
||||
0x0004003d,0x00000006,0x0000003f,0x0000003e,0x00050084,0x00000006,0x00000040,0x0000003d,
|
||||
0x0000003f,0x00050087,0x00000006,0x00000041,0x0000003b,0x00000040,0x0003003e,0x0000003a,
|
||||
0x00000041,0x0004003d,0x00000006,0x00000043,0x0000003a,0x00050041,0x00000026,0x00000045,
|
||||
0x00000024,0x00000044,0x0004003d,0x00000006,0x00000046,0x00000045,0x00050084,0x00000006,
|
||||
0x00000047,0x00000043,0x00000046,0x00050041,0x00000026,0x00000048,0x00000024,0x00000036,
|
||||
0x0004003d,0x00000006,0x00000049,0x00000048,0x00050084,0x00000006,0x0000004a,0x00000047,
|
||||
0x00000049,0x00050041,0x00000026,0x0000004b,0x00000024,0x0000002d,0x0004003d,0x00000006,
|
||||
0x0000004c,0x0000004b,0x00050084,0x00000006,0x0000004d,0x0000004a,0x0000004c,0x0004003d,
|
||||
0x00000006,0x0000004e,0x00000031,0x00050041,0x00000026,0x0000004f,0x00000024,0x0000002d,
|
||||
0x0004003d,0x00000006,0x00000050,0x0000004f,0x00050084,0x00000006,0x00000051,0x0000004e,
|
||||
0x00000050,0x00050080,0x00000006,0x00000052,0x0000004d,0x00000051,0x0004003d,0x00000006,
|
||||
0x00000053,0x0000002b,0x00050080,0x00000006,0x00000054,0x00000052,0x00000053,0x0003003e,
|
||||
0x00000042,0x00000054,0x00050041,0x00000026,0x00000056,0x00000024,0x00000036,0x0004003d,
|
||||
0x00000006,0x00000057,0x00000056,0x00050041,0x00000026,0x00000058,0x00000024,0x0000002d,
|
||||
0x0004003d,0x00000006,0x00000059,0x00000058,0x00050084,0x00000006,0x0000005a,0x00000057,
|
||||
0x00000059,0x0003003e,0x00000055,0x0000005a,0x0003003e,0x0000005b,0x00000025,0x0003003e,
|
||||
0x0000005d,0x0000005e,0x00050041,0x00000026,0x00000062,0x00000024,0x00000061,0x0004003d,
|
||||
0x00000006,0x00000063,0x00000062,0x00050041,0x00000026,0x00000064,0x00000024,0x00000044,
|
||||
0x0004003d,0x00000006,0x00000065,0x00000064,0x000500b1,0x00000029,0x00000066,0x00000063,
|
||||
0x00000065,0x000300f7,0x00000068,0x00000000,0x000400fa,0x00000066,0x00000067,0x0000006b,
|
||||
0x000200f8,0x00000067,0x00050041,0x00000026,0x00000069,0x00000024,0x00000061,0x0004003d,
|
||||
0x00000006,0x0000006a,0x00000069,0x0003003e,0x00000060,0x0000006a,0x000200f9,0x00000068,
|
||||
0x000200f8,0x0000006b,0x00050041,0x00000026,0x0000006c,0x00000024,0x00000044,0x0004003d,
|
||||
0x00000006,0x0000006d,0x0000006c,0x0003003e,0x00000060,0x0000006d,0x000200f9,0x00000068,
|
||||
0x000200f8,0x00000068,0x0004003d,0x00000006,0x0000006e,0x00000060,0x0003003e,0x0000005f,
|
||||
0x0000006e,0x000200f9,0x0000006f,0x000200f8,0x0000006f,0x000400f6,0x00000071,0x00000072,
|
||||
0x00000000,0x000200f9,0x00000073,0x000200f8,0x00000073,0x0004003d,0x00000006,0x00000074,
|
||||
0x0000005b,0x0004003d,0x00000006,0x00000075,0x0000005f,0x000500b1,0x00000029,0x00000076,
|
||||
0x00000074,0x00000075,0x000400fa,0x00000076,0x00000070,0x00000071,0x000200f8,0x00000070,
|
||||
0x0004003d,0x00000006,0x0000007b,0x00000042,0x0004003d,0x00000006,0x0000007c,0x0000005b,
|
||||
0x0004003d,0x00000006,0x0000007d,0x00000055,0x00050084,0x00000006,0x0000007e,0x0000007c,
|
||||
0x0000007d,0x00050080,0x00000006,0x0000007f,0x0000007b,0x0000007e,0x00060041,0x00000080,
|
||||
0x00000081,0x0000007a,0x00000025,0x0000007f,0x0004003d,0x00000021,0x00000082,0x00000081,
|
||||
0x0004003d,0x00000006,0x00000083,0x00000042,0x0004003d,0x00000006,0x00000084,0x0000005b,
|
||||
0x0004003d,0x00000006,0x00000085,0x00000055,0x00050084,0x00000006,0x00000086,0x00000084,
|
||||
0x00000085,0x00050080,0x00000006,0x00000087,0x00000083,0x00000086,0x00060041,0x00000080,
|
||||
0x00000088,0x0000007a,0x00000025,0x00000087,0x0004003d,0x00000021,0x00000089,0x00000088,
|
||||
0x00050085,0x00000021,0x0000008a,0x00000082,0x00000089,0x0004003d,0x00000021,0x0000008b,
|
||||
0x0000005d,0x00050081,0x00000021,0x0000008c,0x0000008b,0x0000008a,0x0003003e,0x0000005d,
|
||||
0x0000008c,0x0004003d,0x00000006,0x0000008d,0x0000005b,0x00050080,0x00000006,0x0000008e,
|
||||
0x0000008d,0x00000044,0x0003003e,0x0000005b,0x0000008e,0x000200f9,0x00000072,0x000200f8,
|
||||
0x00000072,0x000200f9,0x0000006f,0x000200f8,0x00000071,0x000200f9,0x0000008f,0x000200f8,
|
||||
0x0000008f,0x000400f6,0x00000091,0x00000092,0x00000000,0x000200f9,0x00000093,0x000200f8,
|
||||
0x00000093,0x0004003d,0x00000006,0x00000094,0x0000005b,0x00050041,0x00000026,0x00000095,
|
||||
0x00000024,0x00000044,0x0004003d,0x00000006,0x00000096,0x00000095,0x000500b1,0x00000029,
|
||||
0x00000097,0x00000094,0x00000096,0x000400fa,0x00000097,0x00000090,0x00000091,0x000200f8,
|
||||
0x00000090,0x0004003d,0x00000006,0x00000098,0x00000042,0x0004003d,0x00000006,0x00000099,
|
||||
0x0000005b,0x0004003d,0x00000006,0x0000009a,0x00000055,0x00050084,0x00000006,0x0000009b,
|
||||
0x00000099,0x0000009a,0x00050080,0x00000006,0x0000009c,0x00000098,0x0000009b,0x00060041,
|
||||
0x00000080,0x0000009d,0x0000007a,0x00000025,0x0000009c,0x0004003d,0x00000021,0x0000009e,
|
||||
0x0000009d,0x0004003d,0x00000006,0x0000009f,0x00000042,0x0004003d,0x00000006,0x000000a0,
|
||||
0x0000005b,0x0004003d,0x00000006,0x000000a1,0x00000055,0x00050084,0x00000006,0x000000a2,
|
||||
0x000000a0,0x000000a1,0x00050080,0x00000006,0x000000a3,0x0000009f,0x000000a2,0x00060041,
|
||||
0x00000080,0x000000a4,0x0000007a,0x00000025,0x000000a3,0x0004003d,0x00000021,0x000000a5,
|
||||
0x000000a4,0x00050085,0x00000021,0x000000a6,0x0000009e,0x000000a5,0x0004003d,0x00000021,
|
||||
0x000000a7,0x0000005d,0x00050081,0x00000021,0x000000a8,0x000000a7,0x000000a6,0x0003003e,
|
||||
0x0000005d,0x000000a8,0x0004003d,0x00000006,0x000000a9,0x0000005b,0x00050041,0x00000026,
|
||||
0x000000ab,0x00000024,0x000000aa,0x0004003d,0x00000006,0x000000ac,0x000000ab,0x00050082,
|
||||
0x00000006,0x000000ad,0x000000a9,0x000000ac,0x000500af,0x00000029,0x000000ae,0x000000ad,
|
||||
0x00000025,0x000300f7,0x000000b0,0x00000000,0x000400fa,0x000000ae,0x000000af,0x000000b0,
|
||||
0x000200f8,0x000000af,0x0004003d,0x00000006,0x000000b1,0x00000042,0x0004003d,0x00000006,
|
||||
0x000000b2,0x0000005b,0x00050041,0x00000026,0x000000b3,0x00000024,0x000000aa,0x0004003d,
|
||||
0x00000006,0x000000b4,0x000000b3,0x00050082,0x00000006,0x000000b5,0x000000b2,0x000000b4,
|
||||
0x0004003d,0x00000006,0x000000b6,0x00000055,0x00050084,0x00000006,0x000000b7,0x000000b5,
|
||||
0x000000b6,0x00050080,0x00000006,0x000000b8,0x000000b1,0x000000b7,0x00060041,0x00000080,
|
||||
0x000000b9,0x0000007a,0x00000025,0x000000b8,0x0004003d,0x00000021,0x000000ba,0x000000b9,
|
||||
0x0004003d,0x00000006,0x000000bb,0x00000042,0x0004003d,0x00000006,0x000000bc,0x0000005b,
|
||||
0x00050041,0x00000026,0x000000bd,0x00000024,0x000000aa,0x0004003d,0x00000006,0x000000be,
|
||||
0x000000bd,0x00050082,0x00000006,0x000000bf,0x000000bc,0x000000be,0x0004003d,0x00000006,
|
||||
0x000000c0,0x00000055,0x00050084,0x00000006,0x000000c1,0x000000bf,0x000000c0,0x00050080,
|
||||
0x00000006,0x000000c2,0x000000bb,0x000000c1,0x00060041,0x00000080,0x000000c3,0x0000007a,
|
||||
0x00000025,0x000000c2,0x0004003d,0x00000021,0x000000c4,0x000000c3,0x00050085,0x00000021,
|
||||
0x000000c5,0x000000ba,0x000000c4,0x0004003d,0x00000021,0x000000c6,0x0000005d,0x00050083,
|
||||
0x00000021,0x000000c7,0x000000c6,0x000000c5,0x0003003e,0x0000005d,0x000000c7,0x000200f9,
|
||||
0x000000b0,0x000200f8,0x000000b0,0x00050041,0x000000ca,0x000000cb,0x00000024,0x000000c9,
|
||||
0x0004003d,0x00000021,0x000000cc,0x000000cb,0x0004003d,0x00000021,0x000000cd,0x0000005d,
|
||||
0x00050041,0x000000ca,0x000000cf,0x00000024,0x000000ce,0x0004003d,0x00000021,0x000000d0,
|
||||
0x000000cf,0x00050085,0x00000021,0x000000d1,0x000000cd,0x000000d0,0x00050081,0x00000021,
|
||||
0x000000d2,0x000000cc,0x000000d1,0x0003003e,0x000000c8,0x000000d2,0x0004003d,0x00000006,
|
||||
0x000000d7,0x00000042,0x0004003d,0x00000006,0x000000d8,0x0000005b,0x00050041,0x00000026,
|
||||
0x000000d9,0x00000024,0x00000061,0x0004003d,0x00000006,0x000000da,0x000000d9,0x00050082,
|
||||
0x00000006,0x000000db,0x000000d8,0x000000da,0x0004003d,0x00000006,0x000000dc,0x00000055,
|
||||
0x00050084,0x00000006,0x000000dd,0x000000db,0x000000dc,0x00050080,0x00000006,0x000000de,
|
||||
0x000000d7,0x000000dd,0x0004003d,0x00000006,0x000000df,0x00000042,0x0004003d,0x00000006,
|
||||
0x000000e0,0x0000005b,0x00050041,0x00000026,0x000000e1,0x00000024,0x00000061,0x0004003d,
|
||||
0x00000006,0x000000e2,0x000000e1,0x00050082,0x00000006,0x000000e3,0x000000e0,0x000000e2,
|
||||
0x0004003d,0x00000006,0x000000e4,0x00000055,0x00050084,0x00000006,0x000000e5,0x000000e3,
|
||||
0x000000e4,0x00050080,0x00000006,0x000000e6,0x000000df,0x000000e5,0x00060041,0x00000080,
|
||||
0x000000e7,0x0000007a,0x00000025,0x000000e6,0x0004003d,0x00000021,0x000000e8,0x000000e7,
|
||||
0x0004003d,0x00000021,0x000000e9,0x000000c8,0x00050041,0x000000ca,0x000000eb,0x00000024,
|
||||
0x000000ea,0x0004003d,0x00000021,0x000000ec,0x000000eb,0x0007000c,0x00000021,0x000000ed,
|
||||
0x00000001,0x0000001a,0x000000e9,0x000000ec,0x00050085,0x00000021,0x000000ee,0x000000e8,
|
||||
0x000000ed,0x00060041,0x00000080,0x000000ef,0x000000d6,0x00000025,0x000000de,0x0003003e,
|
||||
0x000000ef,0x000000ee,0x0004003d,0x00000006,0x000000f0,0x0000005b,0x00050080,0x00000006,
|
||||
0x000000f1,0x000000f0,0x00000044,0x0003003e,0x0000005b,0x000000f1,0x000200f9,0x00000092,
|
||||
0x000200f8,0x00000092,0x000200f9,0x0000008f,0x000200f8,0x00000091,0x0004003d,0x00000006,
|
||||
0x000000f3,0x0000005b,0x0004003d,0x00000006,0x000000f4,0x0000005f,0x00050082,0x00000006,
|
||||
0x000000f5,0x000000f3,0x000000f4,0x0003003e,0x000000f2,0x000000f5,0x000200f9,0x000000f6,
|
||||
0x000200f8,0x000000f6,0x000400f6,0x000000f8,0x000000f9,0x00000000,0x000200f9,0x000000fa,
|
||||
0x000200f8,0x000000fa,0x0004003d,0x00000006,0x000000fb,0x000000f2,0x000500af,0x00000029,
|
||||
0x000000fc,0x000000fb,0x00000025,0x000300f7,0x000000fe,0x00000000,0x000400fa,0x000000fc,
|
||||
0x000000fd,0x000000fe,0x000200f8,0x000000fd,0x0004003d,0x00000006,0x000000ff,0x000000f2,
|
||||
0x00050041,0x00000026,0x00000100,0x00000024,0x00000044,0x0004003d,0x00000006,0x00000101,
|
||||
0x00000100,0x000500b1,0x00000029,0x00000102,0x000000ff,0x00000101,0x000200f9,0x000000fe,
|
||||
0x000200f8,0x000000fe,0x000700f5,0x00000029,0x00000103,0x000000fc,0x000000fa,0x00000102,
|
||||
0x000000fd,0x000400fa,0x00000103,0x000000f7,0x000000f8,0x000200f8,0x000000f7,0x0004003d,
|
||||
0x00000006,0x00000104,0x0000005b,0x00050041,0x00000026,0x00000105,0x00000024,0x000000aa,
|
||||
0x0004003d,0x00000006,0x00000106,0x00000105,0x00050082,0x00000006,0x00000107,0x00000104,
|
||||
0x00000106,0x000500af,0x00000029,0x00000108,0x00000107,0x00000025,0x000300f7,0x0000010a,
|
||||
0x00000000,0x000400fa,0x00000108,0x00000109,0x0000010a,0x000200f8,0x00000109,0x0004003d,
|
||||
0x00000006,0x0000010b,0x00000042,0x0004003d,0x00000006,0x0000010c,0x0000005b,0x00050041,
|
||||
0x00000026,0x0000010d,0x00000024,0x000000aa,0x0004003d,0x00000006,0x0000010e,0x0000010d,
|
||||
0x00050082,0x00000006,0x0000010f,0x0000010c,0x0000010e,0x0004003d,0x00000006,0x00000110,
|
||||
0x00000055,0x00050084,0x00000006,0x00000111,0x0000010f,0x00000110,0x00050080,0x00000006,
|
||||
0x00000112,0x0000010b,0x00000111,0x00060041,0x00000080,0x00000113,0x0000007a,0x00000025,
|
||||
0x00000112,0x0004003d,0x00000021,0x00000114,0x00000113,0x0004003d,0x00000006,0x00000115,
|
||||
0x00000042,0x0004003d,0x00000006,0x00000116,0x0000005b,0x00050041,0x00000026,0x00000117,
|
||||
0x00000024,0x000000aa,0x0004003d,0x00000006,0x00000118,0x00000117,0x00050082,0x00000006,
|
||||
0x00000119,0x00000116,0x00000118,0x0004003d,0x00000006,0x0000011a,0x00000055,0x00050084,
|
||||
0x00000006,0x0000011b,0x00000119,0x0000011a,0x00050080,0x00000006,0x0000011c,0x00000115,
|
||||
0x0000011b,0x00060041,0x00000080,0x0000011d,0x0000007a,0x00000025,0x0000011c,0x0004003d,
|
||||
0x00000021,0x0000011e,0x0000011d,0x00050085,0x00000021,0x0000011f,0x00000114,0x0000011e,
|
||||
0x0004003d,0x00000021,0x00000120,0x0000005d,0x00050083,0x00000021,0x00000121,0x00000120,
|
||||
0x0000011f,0x0003003e,0x0000005d,0x00000121,0x000200f9,0x0000010a,0x000200f8,0x0000010a,
|
||||
0x00050041,0x000000ca,0x00000122,0x00000024,0x000000c9,0x0004003d,0x00000021,0x00000123,
|
||||
0x00000122,0x0004003d,0x00000021,0x00000124,0x0000005d,0x00050041,0x000000ca,0x00000125,
|
||||
0x00000024,0x000000ce,0x0004003d,0x00000021,0x00000126,0x00000125,0x00050085,0x00000021,
|
||||
0x00000127,0x00000124,0x00000126,0x00050081,0x00000021,0x00000128,0x00000123,0x00000127,
|
||||
0x0003003e,0x000000c8,0x00000128,0x0004003d,0x00000006,0x00000129,0x00000042,0x0004003d,
|
||||
0x00000006,0x0000012a,0x000000f2,0x0004003d,0x00000006,0x0000012b,0x00000055,0x00050084,
|
||||
0x00000006,0x0000012c,0x0000012a,0x0000012b,0x00050080,0x00000006,0x0000012d,0x00000129,
|
||||
0x0000012c,0x0004003d,0x00000006,0x0000012e,0x00000042,0x0004003d,0x00000006,0x0000012f,
|
||||
0x000000f2,0x0004003d,0x00000006,0x00000130,0x00000055,0x00050084,0x00000006,0x00000131,
|
||||
0x0000012f,0x00000130,0x00050080,0x00000006,0x00000132,0x0000012e,0x00000131,0x00060041,
|
||||
0x00000080,0x00000133,0x0000007a,0x00000025,0x00000132,0x0004003d,0x00000021,0x00000134,
|
||||
0x00000133,0x0004003d,0x00000021,0x00000135,0x000000c8,0x00050041,0x000000ca,0x00000136,
|
||||
0x00000024,0x000000ea,0x0004003d,0x00000021,0x00000137,0x00000136,0x0007000c,0x00000021,
|
||||
0x00000138,0x00000001,0x0000001a,0x00000135,0x00000137,0x00050085,0x00000021,0x00000139,
|
||||
0x00000134,0x00000138,0x00060041,0x00000080,0x0000013a,0x000000d6,0x00000025,0x0000012d,
|
||||
0x0003003e,0x0000013a,0x00000139,0x0004003d,0x00000006,0x0000013b,0x0000005b,0x00050080,
|
||||
0x00000006,0x0000013c,0x0000013b,0x00000044,0x0003003e,0x0000005b,0x0000013c,0x0004003d,
|
||||
0x00000006,0x0000013d,0x000000f2,0x00050080,0x00000006,0x0000013e,0x0000013d,0x00000044,
|
||||
0x0003003e,0x000000f2,0x0000013e,0x000200f9,0x000000f9,0x000200f8,0x000000f9,0x000200f9,
|
||||
0x000000f6,0x000200f8,0x000000f8,0x000200f9,0x0000001e,0x000200f8,0x0000001e,0x0004003d,
|
||||
0x00000006,0x0000013f,0x00000012,0x0004003d,0x00000006,0x00000140,0x00000019,0x00050080,
|
||||
0x00000006,0x00000141,0x00000140,0x0000013f,0x0003003e,0x00000019,0x00000141,0x000200f9,
|
||||
0x0000001b,0x000200f8,0x0000001d,0x000100fd,0x00010038
|
||||
};
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,64 +0,0 @@
|
||||
#version 450
|
||||
#define LOCAL_SZ_X 256
|
||||
layout(push_constant) uniform pushBlock {
|
||||
int channels;
|
||||
int in_h;
|
||||
int in_w;
|
||||
int out_h;
|
||||
int out_w;
|
||||
int padding_h;
|
||||
int padding_w;
|
||||
int filter_h;
|
||||
int filter_w;
|
||||
int stride_h;
|
||||
int stride_w;
|
||||
int total;
|
||||
int need_mask;
|
||||
} p;
|
||||
|
||||
layout(binding = 0) readonly buffer Input0{
|
||||
float in_buffer[];
|
||||
};
|
||||
|
||||
layout(binding = 1) writeonly buffer Output{
|
||||
float out_buffer[];
|
||||
};
|
||||
|
||||
layout(binding = 2) writeonly buffer Mask{
|
||||
float mask_buffer[];
|
||||
};
|
||||
|
||||
layout(local_size_x = LOCAL_SZ_X, local_size_y = 1, local_size_z = 1) in;
|
||||
|
||||
void main()
|
||||
{
|
||||
int global_size = int(gl_WorkGroupSize.x * gl_NumWorkGroups.x);
|
||||
int gid = int(gl_GlobalInvocationID.x);
|
||||
for (int index = gid; index < p.total; index += global_size)
|
||||
{
|
||||
const int pw = index % p.out_w;
|
||||
const int ph = (index / p.out_w) % p.out_h;
|
||||
const int c = (index / p.out_w / p.out_h) % p.channels;
|
||||
const int n = index / p.out_w / p.out_h / p.channels;
|
||||
int hstart = ph * p.stride_h - p.padding_h;
|
||||
int wstart = pw * p.stride_w - p.padding_w;
|
||||
const int hend = min(hstart + p.filter_h, p.in_h);
|
||||
const int wend = min(wstart + p.filter_w, p.in_w);
|
||||
hstart = max(hstart, 0);
|
||||
wstart = max(wstart, 0);
|
||||
float maxval = -1./0.;
|
||||
int maxidx = -1;
|
||||
int off = (n * p.channels + c) * p.in_h * p.in_w;
|
||||
for (int h = hstart; h < hend; ++h) {
|
||||
for (int w = wstart; w < wend; ++w) {
|
||||
if (in_buffer[off + h * p.in_w + w] > maxval) {
|
||||
maxidx = h * p.in_w + w;
|
||||
maxval = in_buffer[off + maxidx];
|
||||
}
|
||||
}
|
||||
}
|
||||
out_buffer[index] = maxval;
|
||||
if (p.need_mask == 1)
|
||||
mask_buffer[index] = maxidx;
|
||||
}
|
||||
}
|
||||
@@ -1,197 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
extern const unsigned int max_pool_spv[1449] = {
|
||||
0x07230203,0x00010000,0x00080001,0x000000df,0x00000000,0x00020011,0x00000001,0x0006000b,
|
||||
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
|
||||
0x0007000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x00000015,0x00060010,
|
||||
0x00000004,0x00000011,0x00000100,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,
|
||||
0x00040005,0x00000004,0x6e69616d,0x00000000,0x00050005,0x00000008,0x626f6c67,0x735f6c61,
|
||||
0x00657a69,0x00070005,0x0000000d,0x4e5f6c67,0x6f576d75,0x72476b72,0x7370756f,0x00000000,
|
||||
0x00030005,0x00000014,0x00646967,0x00080005,0x00000015,0x475f6c67,0x61626f6c,0x766e496c,
|
||||
0x7461636f,0x496e6f69,0x00000044,0x00040005,0x00000019,0x65646e69,0x00000078,0x00050005,
|
||||
0x00000021,0x68737570,0x636f6c42,0x0000006b,0x00060006,0x00000021,0x00000000,0x6e616863,
|
||||
0x736c656e,0x00000000,0x00050006,0x00000021,0x00000001,0x685f6e69,0x00000000,0x00050006,
|
||||
0x00000021,0x00000002,0x775f6e69,0x00000000,0x00050006,0x00000021,0x00000003,0x5f74756f,
|
||||
0x00000068,0x00050006,0x00000021,0x00000004,0x5f74756f,0x00000077,0x00060006,0x00000021,
|
||||
0x00000005,0x64646170,0x5f676e69,0x00000068,0x00060006,0x00000021,0x00000006,0x64646170,
|
||||
0x5f676e69,0x00000077,0x00060006,0x00000021,0x00000007,0x746c6966,0x685f7265,0x00000000,
|
||||
0x00060006,0x00000021,0x00000008,0x746c6966,0x775f7265,0x00000000,0x00060006,0x00000021,
|
||||
0x00000009,0x69727473,0x685f6564,0x00000000,0x00060006,0x00000021,0x0000000a,0x69727473,
|
||||
0x775f6564,0x00000000,0x00050006,0x00000021,0x0000000b,0x61746f74,0x0000006c,0x00060006,
|
||||
0x00000021,0x0000000c,0x6465656e,0x73616d5f,0x0000006b,0x00030005,0x00000023,0x00000070,
|
||||
0x00030005,0x0000002a,0x00007770,0x00030005,0x00000030,0x00006870,0x00030005,0x00000039,
|
||||
0x00000063,0x00030005,0x00000045,0x0000006e,0x00040005,0x00000050,0x61747368,0x00007472,
|
||||
0x00040005,0x0000005a,0x61747377,0x00007472,0x00040005,0x00000064,0x646e6568,0x00000000,
|
||||
0x00040005,0x0000006e,0x646e6577,0x00000000,0x00040005,0x0000007e,0x7678616d,0x00006c61,
|
||||
0x00040005,0x00000080,0x6978616d,0x00007864,0x00030005,0x00000082,0x0066666f,0x00030005,
|
||||
0x0000008f,0x00000068,0x00030005,0x00000099,0x00000077,0x00040005,0x000000a4,0x75706e49,
|
||||
0x00003074,0x00060006,0x000000a4,0x00000000,0x625f6e69,0x65666675,0x00000072,0x00030005,
|
||||
0x000000a6,0x00000000,0x00040005,0x000000c6,0x7074754f,0x00007475,0x00060006,0x000000c6,
|
||||
0x00000000,0x5f74756f,0x66667562,0x00007265,0x00030005,0x000000c8,0x00000000,0x00040005,
|
||||
0x000000d3,0x6b73614d,0x00000000,0x00060006,0x000000d3,0x00000000,0x6b73616d,0x6675625f,
|
||||
0x00726566,0x00030005,0x000000d5,0x00000000,0x00040047,0x0000000d,0x0000000b,0x00000018,
|
||||
0x00040047,0x00000015,0x0000000b,0x0000001c,0x00050048,0x00000021,0x00000000,0x00000023,
|
||||
0x00000000,0x00050048,0x00000021,0x00000001,0x00000023,0x00000004,0x00050048,0x00000021,
|
||||
0x00000002,0x00000023,0x00000008,0x00050048,0x00000021,0x00000003,0x00000023,0x0000000c,
|
||||
0x00050048,0x00000021,0x00000004,0x00000023,0x00000010,0x00050048,0x00000021,0x00000005,
|
||||
0x00000023,0x00000014,0x00050048,0x00000021,0x00000006,0x00000023,0x00000018,0x00050048,
|
||||
0x00000021,0x00000007,0x00000023,0x0000001c,0x00050048,0x00000021,0x00000008,0x00000023,
|
||||
0x00000020,0x00050048,0x00000021,0x00000009,0x00000023,0x00000024,0x00050048,0x00000021,
|
||||
0x0000000a,0x00000023,0x00000028,0x00050048,0x00000021,0x0000000b,0x00000023,0x0000002c,
|
||||
0x00050048,0x00000021,0x0000000c,0x00000023,0x00000030,0x00030047,0x00000021,0x00000002,
|
||||
0x00040047,0x000000a3,0x00000006,0x00000004,0x00040048,0x000000a4,0x00000000,0x00000018,
|
||||
0x00050048,0x000000a4,0x00000000,0x00000023,0x00000000,0x00030047,0x000000a4,0x00000003,
|
||||
0x00040047,0x000000a6,0x00000022,0x00000000,0x00040047,0x000000a6,0x00000021,0x00000000,
|
||||
0x00040047,0x000000c5,0x00000006,0x00000004,0x00040048,0x000000c6,0x00000000,0x00000019,
|
||||
0x00050048,0x000000c6,0x00000000,0x00000023,0x00000000,0x00030047,0x000000c6,0x00000003,
|
||||
0x00040047,0x000000c8,0x00000022,0x00000000,0x00040047,0x000000c8,0x00000021,0x00000001,
|
||||
0x00040047,0x000000d2,0x00000006,0x00000004,0x00040048,0x000000d3,0x00000000,0x00000019,
|
||||
0x00050048,0x000000d3,0x00000000,0x00000023,0x00000000,0x00030047,0x000000d3,0x00000003,
|
||||
0x00040047,0x000000d5,0x00000022,0x00000000,0x00040047,0x000000d5,0x00000021,0x00000002,
|
||||
0x00040047,0x000000de,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,
|
||||
0x00000002,0x00040015,0x00000006,0x00000020,0x00000001,0x00040020,0x00000007,0x00000007,
|
||||
0x00000006,0x00040015,0x00000009,0x00000020,0x00000000,0x0004002b,0x00000009,0x0000000a,
|
||||
0x00000100,0x00040017,0x0000000b,0x00000009,0x00000003,0x00040020,0x0000000c,0x00000001,
|
||||
0x0000000b,0x0004003b,0x0000000c,0x0000000d,0x00000001,0x0004002b,0x00000009,0x0000000e,
|
||||
0x00000000,0x00040020,0x0000000f,0x00000001,0x00000009,0x0004003b,0x0000000c,0x00000015,
|
||||
0x00000001,0x000f001e,0x00000021,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,
|
||||
0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,
|
||||
0x00040020,0x00000022,0x00000009,0x00000021,0x0004003b,0x00000022,0x00000023,0x00000009,
|
||||
0x0004002b,0x00000006,0x00000024,0x0000000b,0x00040020,0x00000025,0x00000009,0x00000006,
|
||||
0x00020014,0x00000028,0x0004002b,0x00000006,0x0000002c,0x00000004,0x0004002b,0x00000006,
|
||||
0x00000035,0x00000003,0x0004002b,0x00000006,0x00000041,0x00000000,0x0004002b,0x00000006,
|
||||
0x00000052,0x00000009,0x0004002b,0x00000006,0x00000056,0x00000005,0x0004002b,0x00000006,
|
||||
0x0000005c,0x0000000a,0x0004002b,0x00000006,0x00000060,0x00000006,0x0004002b,0x00000006,
|
||||
0x00000066,0x00000007,0x0004002b,0x00000006,0x0000006a,0x00000001,0x0004002b,0x00000006,
|
||||
0x00000070,0x00000008,0x0004002b,0x00000006,0x00000074,0x00000002,0x00030016,0x0000007c,
|
||||
0x00000020,0x00040020,0x0000007d,0x00000007,0x0000007c,0x0004002b,0x0000007c,0x0000007f,
|
||||
0xff800000,0x0004002b,0x00000006,0x00000081,0xffffffff,0x0003001d,0x000000a3,0x0000007c,
|
||||
0x0003001e,0x000000a4,0x000000a3,0x00040020,0x000000a5,0x00000002,0x000000a4,0x0004003b,
|
||||
0x000000a5,0x000000a6,0x00000002,0x00040020,0x000000af,0x00000002,0x0000007c,0x0003001d,
|
||||
0x000000c5,0x0000007c,0x0003001e,0x000000c6,0x000000c5,0x00040020,0x000000c7,0x00000002,
|
||||
0x000000c6,0x0004003b,0x000000c7,0x000000c8,0x00000002,0x0004002b,0x00000006,0x000000cc,
|
||||
0x0000000c,0x0003001d,0x000000d2,0x0000007c,0x0003001e,0x000000d3,0x000000d2,0x00040020,
|
||||
0x000000d4,0x00000002,0x000000d3,0x0004003b,0x000000d4,0x000000d5,0x00000002,0x0004002b,
|
||||
0x00000009,0x000000dd,0x00000001,0x0006002c,0x0000000b,0x000000de,0x0000000a,0x000000dd,
|
||||
0x000000dd,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,
|
||||
0x0004003b,0x00000007,0x00000008,0x00000007,0x0004003b,0x00000007,0x00000014,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000019,0x00000007,0x0004003b,0x00000007,0x0000002a,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000030,0x00000007,0x0004003b,0x00000007,0x00000039,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000045,0x00000007,0x0004003b,0x00000007,0x00000050,0x00000007,
|
||||
0x0004003b,0x00000007,0x0000005a,0x00000007,0x0004003b,0x00000007,0x00000064,0x00000007,
|
||||
0x0004003b,0x00000007,0x0000006e,0x00000007,0x0004003b,0x0000007d,0x0000007e,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000080,0x00000007,0x0004003b,0x00000007,0x00000082,0x00000007,
|
||||
0x0004003b,0x00000007,0x0000008f,0x00000007,0x0004003b,0x00000007,0x00000099,0x00000007,
|
||||
0x00050041,0x0000000f,0x00000010,0x0000000d,0x0000000e,0x0004003d,0x00000009,0x00000011,
|
||||
0x00000010,0x00050084,0x00000009,0x00000012,0x0000000a,0x00000011,0x0004007c,0x00000006,
|
||||
0x00000013,0x00000012,0x0003003e,0x00000008,0x00000013,0x00050041,0x0000000f,0x00000016,
|
||||
0x00000015,0x0000000e,0x0004003d,0x00000009,0x00000017,0x00000016,0x0004007c,0x00000006,
|
||||
0x00000018,0x00000017,0x0003003e,0x00000014,0x00000018,0x0004003d,0x00000006,0x0000001a,
|
||||
0x00000014,0x0003003e,0x00000019,0x0000001a,0x000200f9,0x0000001b,0x000200f8,0x0000001b,
|
||||
0x000400f6,0x0000001d,0x0000001e,0x00000000,0x000200f9,0x0000001f,0x000200f8,0x0000001f,
|
||||
0x0004003d,0x00000006,0x00000020,0x00000019,0x00050041,0x00000025,0x00000026,0x00000023,
|
||||
0x00000024,0x0004003d,0x00000006,0x00000027,0x00000026,0x000500b1,0x00000028,0x00000029,
|
||||
0x00000020,0x00000027,0x000400fa,0x00000029,0x0000001c,0x0000001d,0x000200f8,0x0000001c,
|
||||
0x0004003d,0x00000006,0x0000002b,0x00000019,0x00050041,0x00000025,0x0000002d,0x00000023,
|
||||
0x0000002c,0x0004003d,0x00000006,0x0000002e,0x0000002d,0x0005008b,0x00000006,0x0000002f,
|
||||
0x0000002b,0x0000002e,0x0003003e,0x0000002a,0x0000002f,0x0004003d,0x00000006,0x00000031,
|
||||
0x00000019,0x00050041,0x00000025,0x00000032,0x00000023,0x0000002c,0x0004003d,0x00000006,
|
||||
0x00000033,0x00000032,0x00050087,0x00000006,0x00000034,0x00000031,0x00000033,0x00050041,
|
||||
0x00000025,0x00000036,0x00000023,0x00000035,0x0004003d,0x00000006,0x00000037,0x00000036,
|
||||
0x0005008b,0x00000006,0x00000038,0x00000034,0x00000037,0x0003003e,0x00000030,0x00000038,
|
||||
0x0004003d,0x00000006,0x0000003a,0x00000019,0x00050041,0x00000025,0x0000003b,0x00000023,
|
||||
0x0000002c,0x0004003d,0x00000006,0x0000003c,0x0000003b,0x00050087,0x00000006,0x0000003d,
|
||||
0x0000003a,0x0000003c,0x00050041,0x00000025,0x0000003e,0x00000023,0x00000035,0x0004003d,
|
||||
0x00000006,0x0000003f,0x0000003e,0x00050087,0x00000006,0x00000040,0x0000003d,0x0000003f,
|
||||
0x00050041,0x00000025,0x00000042,0x00000023,0x00000041,0x0004003d,0x00000006,0x00000043,
|
||||
0x00000042,0x0005008b,0x00000006,0x00000044,0x00000040,0x00000043,0x0003003e,0x00000039,
|
||||
0x00000044,0x0004003d,0x00000006,0x00000046,0x00000019,0x00050041,0x00000025,0x00000047,
|
||||
0x00000023,0x0000002c,0x0004003d,0x00000006,0x00000048,0x00000047,0x00050087,0x00000006,
|
||||
0x00000049,0x00000046,0x00000048,0x00050041,0x00000025,0x0000004a,0x00000023,0x00000035,
|
||||
0x0004003d,0x00000006,0x0000004b,0x0000004a,0x00050087,0x00000006,0x0000004c,0x00000049,
|
||||
0x0000004b,0x00050041,0x00000025,0x0000004d,0x00000023,0x00000041,0x0004003d,0x00000006,
|
||||
0x0000004e,0x0000004d,0x00050087,0x00000006,0x0000004f,0x0000004c,0x0000004e,0x0003003e,
|
||||
0x00000045,0x0000004f,0x0004003d,0x00000006,0x00000051,0x00000030,0x00050041,0x00000025,
|
||||
0x00000053,0x00000023,0x00000052,0x0004003d,0x00000006,0x00000054,0x00000053,0x00050084,
|
||||
0x00000006,0x00000055,0x00000051,0x00000054,0x00050041,0x00000025,0x00000057,0x00000023,
|
||||
0x00000056,0x0004003d,0x00000006,0x00000058,0x00000057,0x00050082,0x00000006,0x00000059,
|
||||
0x00000055,0x00000058,0x0003003e,0x00000050,0x00000059,0x0004003d,0x00000006,0x0000005b,
|
||||
0x0000002a,0x00050041,0x00000025,0x0000005d,0x00000023,0x0000005c,0x0004003d,0x00000006,
|
||||
0x0000005e,0x0000005d,0x00050084,0x00000006,0x0000005f,0x0000005b,0x0000005e,0x00050041,
|
||||
0x00000025,0x00000061,0x00000023,0x00000060,0x0004003d,0x00000006,0x00000062,0x00000061,
|
||||
0x00050082,0x00000006,0x00000063,0x0000005f,0x00000062,0x0003003e,0x0000005a,0x00000063,
|
||||
0x0004003d,0x00000006,0x00000065,0x00000050,0x00050041,0x00000025,0x00000067,0x00000023,
|
||||
0x00000066,0x0004003d,0x00000006,0x00000068,0x00000067,0x00050080,0x00000006,0x00000069,
|
||||
0x00000065,0x00000068,0x00050041,0x00000025,0x0000006b,0x00000023,0x0000006a,0x0004003d,
|
||||
0x00000006,0x0000006c,0x0000006b,0x0007000c,0x00000006,0x0000006d,0x00000001,0x00000027,
|
||||
0x00000069,0x0000006c,0x0003003e,0x00000064,0x0000006d,0x0004003d,0x00000006,0x0000006f,
|
||||
0x0000005a,0x00050041,0x00000025,0x00000071,0x00000023,0x00000070,0x0004003d,0x00000006,
|
||||
0x00000072,0x00000071,0x00050080,0x00000006,0x00000073,0x0000006f,0x00000072,0x00050041,
|
||||
0x00000025,0x00000075,0x00000023,0x00000074,0x0004003d,0x00000006,0x00000076,0x00000075,
|
||||
0x0007000c,0x00000006,0x00000077,0x00000001,0x00000027,0x00000073,0x00000076,0x0003003e,
|
||||
0x0000006e,0x00000077,0x0004003d,0x00000006,0x00000078,0x00000050,0x0007000c,0x00000006,
|
||||
0x00000079,0x00000001,0x0000002a,0x00000078,0x00000041,0x0003003e,0x00000050,0x00000079,
|
||||
0x0004003d,0x00000006,0x0000007a,0x0000005a,0x0007000c,0x00000006,0x0000007b,0x00000001,
|
||||
0x0000002a,0x0000007a,0x00000041,0x0003003e,0x0000005a,0x0000007b,0x0003003e,0x0000007e,
|
||||
0x0000007f,0x0003003e,0x00000080,0x00000081,0x0004003d,0x00000006,0x00000083,0x00000045,
|
||||
0x00050041,0x00000025,0x00000084,0x00000023,0x00000041,0x0004003d,0x00000006,0x00000085,
|
||||
0x00000084,0x00050084,0x00000006,0x00000086,0x00000083,0x00000085,0x0004003d,0x00000006,
|
||||
0x00000087,0x00000039,0x00050080,0x00000006,0x00000088,0x00000086,0x00000087,0x00050041,
|
||||
0x00000025,0x00000089,0x00000023,0x0000006a,0x0004003d,0x00000006,0x0000008a,0x00000089,
|
||||
0x00050084,0x00000006,0x0000008b,0x00000088,0x0000008a,0x00050041,0x00000025,0x0000008c,
|
||||
0x00000023,0x00000074,0x0004003d,0x00000006,0x0000008d,0x0000008c,0x00050084,0x00000006,
|
||||
0x0000008e,0x0000008b,0x0000008d,0x0003003e,0x00000082,0x0000008e,0x0004003d,0x00000006,
|
||||
0x00000090,0x00000050,0x0003003e,0x0000008f,0x00000090,0x000200f9,0x00000091,0x000200f8,
|
||||
0x00000091,0x000400f6,0x00000093,0x00000094,0x00000000,0x000200f9,0x00000095,0x000200f8,
|
||||
0x00000095,0x0004003d,0x00000006,0x00000096,0x0000008f,0x0004003d,0x00000006,0x00000097,
|
||||
0x00000064,0x000500b1,0x00000028,0x00000098,0x00000096,0x00000097,0x000400fa,0x00000098,
|
||||
0x00000092,0x00000093,0x000200f8,0x00000092,0x0004003d,0x00000006,0x0000009a,0x0000005a,
|
||||
0x0003003e,0x00000099,0x0000009a,0x000200f9,0x0000009b,0x000200f8,0x0000009b,0x000400f6,
|
||||
0x0000009d,0x0000009e,0x00000000,0x000200f9,0x0000009f,0x000200f8,0x0000009f,0x0004003d,
|
||||
0x00000006,0x000000a0,0x00000099,0x0004003d,0x00000006,0x000000a1,0x0000006e,0x000500b1,
|
||||
0x00000028,0x000000a2,0x000000a0,0x000000a1,0x000400fa,0x000000a2,0x0000009c,0x0000009d,
|
||||
0x000200f8,0x0000009c,0x0004003d,0x00000006,0x000000a7,0x00000082,0x0004003d,0x00000006,
|
||||
0x000000a8,0x0000008f,0x00050041,0x00000025,0x000000a9,0x00000023,0x00000074,0x0004003d,
|
||||
0x00000006,0x000000aa,0x000000a9,0x00050084,0x00000006,0x000000ab,0x000000a8,0x000000aa,
|
||||
0x00050080,0x00000006,0x000000ac,0x000000a7,0x000000ab,0x0004003d,0x00000006,0x000000ad,
|
||||
0x00000099,0x00050080,0x00000006,0x000000ae,0x000000ac,0x000000ad,0x00060041,0x000000af,
|
||||
0x000000b0,0x000000a6,0x00000041,0x000000ae,0x0004003d,0x0000007c,0x000000b1,0x000000b0,
|
||||
0x0004003d,0x0000007c,0x000000b2,0x0000007e,0x000500ba,0x00000028,0x000000b3,0x000000b1,
|
||||
0x000000b2,0x000300f7,0x000000b5,0x00000000,0x000400fa,0x000000b3,0x000000b4,0x000000b5,
|
||||
0x000200f8,0x000000b4,0x0004003d,0x00000006,0x000000b6,0x0000008f,0x00050041,0x00000025,
|
||||
0x000000b7,0x00000023,0x00000074,0x0004003d,0x00000006,0x000000b8,0x000000b7,0x00050084,
|
||||
0x00000006,0x000000b9,0x000000b6,0x000000b8,0x0004003d,0x00000006,0x000000ba,0x00000099,
|
||||
0x00050080,0x00000006,0x000000bb,0x000000b9,0x000000ba,0x0003003e,0x00000080,0x000000bb,
|
||||
0x0004003d,0x00000006,0x000000bc,0x00000082,0x0004003d,0x00000006,0x000000bd,0x00000080,
|
||||
0x00050080,0x00000006,0x000000be,0x000000bc,0x000000bd,0x00060041,0x000000af,0x000000bf,
|
||||
0x000000a6,0x00000041,0x000000be,0x0004003d,0x0000007c,0x000000c0,0x000000bf,0x0003003e,
|
||||
0x0000007e,0x000000c0,0x000200f9,0x000000b5,0x000200f8,0x000000b5,0x000200f9,0x0000009e,
|
||||
0x000200f8,0x0000009e,0x0004003d,0x00000006,0x000000c1,0x00000099,0x00050080,0x00000006,
|
||||
0x000000c2,0x000000c1,0x0000006a,0x0003003e,0x00000099,0x000000c2,0x000200f9,0x0000009b,
|
||||
0x000200f8,0x0000009d,0x000200f9,0x00000094,0x000200f8,0x00000094,0x0004003d,0x00000006,
|
||||
0x000000c3,0x0000008f,0x00050080,0x00000006,0x000000c4,0x000000c3,0x0000006a,0x0003003e,
|
||||
0x0000008f,0x000000c4,0x000200f9,0x00000091,0x000200f8,0x00000093,0x0004003d,0x00000006,
|
||||
0x000000c9,0x00000019,0x0004003d,0x0000007c,0x000000ca,0x0000007e,0x00060041,0x000000af,
|
||||
0x000000cb,0x000000c8,0x00000041,0x000000c9,0x0003003e,0x000000cb,0x000000ca,0x00050041,
|
||||
0x00000025,0x000000cd,0x00000023,0x000000cc,0x0004003d,0x00000006,0x000000ce,0x000000cd,
|
||||
0x000500aa,0x00000028,0x000000cf,0x000000ce,0x0000006a,0x000300f7,0x000000d1,0x00000000,
|
||||
0x000400fa,0x000000cf,0x000000d0,0x000000d1,0x000200f8,0x000000d0,0x0004003d,0x00000006,
|
||||
0x000000d6,0x00000019,0x0004003d,0x00000006,0x000000d7,0x00000080,0x0004006f,0x0000007c,
|
||||
0x000000d8,0x000000d7,0x00060041,0x000000af,0x000000d9,0x000000d5,0x00000041,0x000000d6,
|
||||
0x0003003e,0x000000d9,0x000000d8,0x000200f9,0x000000d1,0x000200f8,0x000000d1,0x000200f9,
|
||||
0x0000001e,0x000200f8,0x0000001e,0x0004003d,0x00000006,0x000000da,0x00000008,0x0004003d,
|
||||
0x00000006,0x000000db,0x00000019,0x00050080,0x00000006,0x000000dc,0x000000db,0x000000da,
|
||||
0x0003003e,0x00000019,0x000000dc,0x000200f9,0x0000001b,0x000200f8,0x0000001d,0x000100fd,
|
||||
0x00010038
|
||||
};
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,44 +0,0 @@
|
||||
#version 450
|
||||
#define LOCAL_SZ_X 256
|
||||
|
||||
layout(push_constant) uniform pushBlock {
|
||||
int nthreads;
|
||||
int num_axes;
|
||||
int global_size;
|
||||
} p;
|
||||
|
||||
layout(binding = 0) readonly buffer Input0{
|
||||
float in_buffer[];
|
||||
};
|
||||
layout(binding = 1) readonly buffer Input1{
|
||||
int permute_order[];
|
||||
};
|
||||
layout(binding = 2) readonly buffer Input2{
|
||||
int old_stride[];
|
||||
};
|
||||
layout(binding = 3) readonly buffer Input3{
|
||||
int new_stride[];
|
||||
};
|
||||
layout(binding = 4) writeonly buffer Output{
|
||||
float out_buffer[];
|
||||
};
|
||||
|
||||
layout(local_size_x = LOCAL_SZ_X, local_size_y = 1, local_size_z = 1) in;
|
||||
|
||||
void main()
|
||||
{
|
||||
for (int i = int(gl_GlobalInvocationID.x); i < p.nthreads; i += p.global_size)
|
||||
{
|
||||
int old_pos = 0;
|
||||
int new_pos = i;
|
||||
|
||||
for (int j = 0; j < p.num_axes; ++j)
|
||||
{
|
||||
int order = permute_order[j];
|
||||
old_pos += (new_pos / new_stride[j]) * old_stride[order];
|
||||
new_pos %= new_stride[j];
|
||||
}
|
||||
|
||||
out_buffer[i] = in_buffer[old_pos];
|
||||
}
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
extern const unsigned int permute_spv[765] = {
|
||||
0x07230203,0x00010000,0x00080001,0x00000069,0x00000000,0x00020011,0x00000001,0x0006000b,
|
||||
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
|
||||
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000c,0x00060010,0x00000004,
|
||||
0x00000011,0x00000100,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005,
|
||||
0x00000004,0x6e69616d,0x00000000,0x00030005,0x00000008,0x00000069,0x00080005,0x0000000c,
|
||||
0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00050005,0x00000018,
|
||||
0x68737570,0x636f6c42,0x0000006b,0x00060006,0x00000018,0x00000000,0x7268746e,0x73646165,
|
||||
0x00000000,0x00060006,0x00000018,0x00000001,0x5f6d756e,0x73657861,0x00000000,0x00060006,
|
||||
0x00000018,0x00000002,0x626f6c67,0x735f6c61,0x00657a69,0x00030005,0x0000001a,0x00000070,
|
||||
0x00040005,0x00000021,0x5f646c6f,0x00736f70,0x00040005,0x00000022,0x5f77656e,0x00736f70,
|
||||
0x00030005,0x00000024,0x0000006a,0x00040005,0x0000002f,0x6564726f,0x00000072,0x00040005,
|
||||
0x00000031,0x75706e49,0x00003174,0x00070006,0x00000031,0x00000000,0x6d726570,0x5f657475,
|
||||
0x6564726f,0x00000072,0x00030005,0x00000033,0x00000000,0x00040005,0x0000003a,0x75706e49,
|
||||
0x00003374,0x00060006,0x0000003a,0x00000000,0x5f77656e,0x69727473,0x00006564,0x00030005,
|
||||
0x0000003c,0x00000000,0x00040005,0x00000042,0x75706e49,0x00003274,0x00060006,0x00000042,
|
||||
0x00000000,0x5f646c6f,0x69727473,0x00006564,0x00030005,0x00000044,0x00000000,0x00040005,
|
||||
0x00000054,0x7074754f,0x00007475,0x00060006,0x00000054,0x00000000,0x5f74756f,0x66667562,
|
||||
0x00007265,0x00030005,0x00000056,0x00000000,0x00040005,0x00000059,0x75706e49,0x00003074,
|
||||
0x00060006,0x00000059,0x00000000,0x625f6e69,0x65666675,0x00000072,0x00030005,0x0000005b,
|
||||
0x00000000,0x00040047,0x0000000c,0x0000000b,0x0000001c,0x00050048,0x00000018,0x00000000,
|
||||
0x00000023,0x00000000,0x00050048,0x00000018,0x00000001,0x00000023,0x00000004,0x00050048,
|
||||
0x00000018,0x00000002,0x00000023,0x00000008,0x00030047,0x00000018,0x00000002,0x00040047,
|
||||
0x00000030,0x00000006,0x00000004,0x00040048,0x00000031,0x00000000,0x00000018,0x00050048,
|
||||
0x00000031,0x00000000,0x00000023,0x00000000,0x00030047,0x00000031,0x00000003,0x00040047,
|
||||
0x00000033,0x00000022,0x00000000,0x00040047,0x00000033,0x00000021,0x00000001,0x00040047,
|
||||
0x00000039,0x00000006,0x00000004,0x00040048,0x0000003a,0x00000000,0x00000018,0x00050048,
|
||||
0x0000003a,0x00000000,0x00000023,0x00000000,0x00030047,0x0000003a,0x00000003,0x00040047,
|
||||
0x0000003c,0x00000022,0x00000000,0x00040047,0x0000003c,0x00000021,0x00000003,0x00040047,
|
||||
0x00000041,0x00000006,0x00000004,0x00040048,0x00000042,0x00000000,0x00000018,0x00050048,
|
||||
0x00000042,0x00000000,0x00000023,0x00000000,0x00030047,0x00000042,0x00000003,0x00040047,
|
||||
0x00000044,0x00000022,0x00000000,0x00040047,0x00000044,0x00000021,0x00000002,0x00040047,
|
||||
0x00000053,0x00000006,0x00000004,0x00040048,0x00000054,0x00000000,0x00000019,0x00050048,
|
||||
0x00000054,0x00000000,0x00000023,0x00000000,0x00030047,0x00000054,0x00000003,0x00040047,
|
||||
0x00000056,0x00000022,0x00000000,0x00040047,0x00000056,0x00000021,0x00000004,0x00040047,
|
||||
0x00000058,0x00000006,0x00000004,0x00040048,0x00000059,0x00000000,0x00000018,0x00050048,
|
||||
0x00000059,0x00000000,0x00000023,0x00000000,0x00030047,0x00000059,0x00000003,0x00040047,
|
||||
0x0000005b,0x00000022,0x00000000,0x00040047,0x0000005b,0x00000021,0x00000000,0x00040047,
|
||||
0x00000068,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,
|
||||
0x00040015,0x00000006,0x00000020,0x00000001,0x00040020,0x00000007,0x00000007,0x00000006,
|
||||
0x00040015,0x00000009,0x00000020,0x00000000,0x00040017,0x0000000a,0x00000009,0x00000003,
|
||||
0x00040020,0x0000000b,0x00000001,0x0000000a,0x0004003b,0x0000000b,0x0000000c,0x00000001,
|
||||
0x0004002b,0x00000009,0x0000000d,0x00000000,0x00040020,0x0000000e,0x00000001,0x00000009,
|
||||
0x0005001e,0x00000018,0x00000006,0x00000006,0x00000006,0x00040020,0x00000019,0x00000009,
|
||||
0x00000018,0x0004003b,0x00000019,0x0000001a,0x00000009,0x0004002b,0x00000006,0x0000001b,
|
||||
0x00000000,0x00040020,0x0000001c,0x00000009,0x00000006,0x00020014,0x0000001f,0x0004002b,
|
||||
0x00000006,0x0000002b,0x00000001,0x0003001d,0x00000030,0x00000006,0x0003001e,0x00000031,
|
||||
0x00000030,0x00040020,0x00000032,0x00000002,0x00000031,0x0004003b,0x00000032,0x00000033,
|
||||
0x00000002,0x00040020,0x00000035,0x00000002,0x00000006,0x0003001d,0x00000039,0x00000006,
|
||||
0x0003001e,0x0000003a,0x00000039,0x00040020,0x0000003b,0x00000002,0x0000003a,0x0004003b,
|
||||
0x0000003b,0x0000003c,0x00000002,0x0003001d,0x00000041,0x00000006,0x0003001e,0x00000042,
|
||||
0x00000041,0x00040020,0x00000043,0x00000002,0x00000042,0x0004003b,0x00000043,0x00000044,
|
||||
0x00000002,0x00030016,0x00000052,0x00000020,0x0003001d,0x00000053,0x00000052,0x0003001e,
|
||||
0x00000054,0x00000053,0x00040020,0x00000055,0x00000002,0x00000054,0x0004003b,0x00000055,
|
||||
0x00000056,0x00000002,0x0003001d,0x00000058,0x00000052,0x0003001e,0x00000059,0x00000058,
|
||||
0x00040020,0x0000005a,0x00000002,0x00000059,0x0004003b,0x0000005a,0x0000005b,0x00000002,
|
||||
0x00040020,0x0000005d,0x00000002,0x00000052,0x0004002b,0x00000006,0x00000061,0x00000002,
|
||||
0x0004002b,0x00000009,0x00000066,0x00000100,0x0004002b,0x00000009,0x00000067,0x00000001,
|
||||
0x0006002c,0x0000000a,0x00000068,0x00000066,0x00000067,0x00000067,0x00050036,0x00000002,
|
||||
0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x00000008,
|
||||
0x00000007,0x0004003b,0x00000007,0x00000021,0x00000007,0x0004003b,0x00000007,0x00000022,
|
||||
0x00000007,0x0004003b,0x00000007,0x00000024,0x00000007,0x0004003b,0x00000007,0x0000002f,
|
||||
0x00000007,0x00050041,0x0000000e,0x0000000f,0x0000000c,0x0000000d,0x0004003d,0x00000009,
|
||||
0x00000010,0x0000000f,0x0004007c,0x00000006,0x00000011,0x00000010,0x0003003e,0x00000008,
|
||||
0x00000011,0x000200f9,0x00000012,0x000200f8,0x00000012,0x000400f6,0x00000014,0x00000015,
|
||||
0x00000000,0x000200f9,0x00000016,0x000200f8,0x00000016,0x0004003d,0x00000006,0x00000017,
|
||||
0x00000008,0x00050041,0x0000001c,0x0000001d,0x0000001a,0x0000001b,0x0004003d,0x00000006,
|
||||
0x0000001e,0x0000001d,0x000500b1,0x0000001f,0x00000020,0x00000017,0x0000001e,0x000400fa,
|
||||
0x00000020,0x00000013,0x00000014,0x000200f8,0x00000013,0x0003003e,0x00000021,0x0000001b,
|
||||
0x0004003d,0x00000006,0x00000023,0x00000008,0x0003003e,0x00000022,0x00000023,0x0003003e,
|
||||
0x00000024,0x0000001b,0x000200f9,0x00000025,0x000200f8,0x00000025,0x000400f6,0x00000027,
|
||||
0x00000028,0x00000000,0x000200f9,0x00000029,0x000200f8,0x00000029,0x0004003d,0x00000006,
|
||||
0x0000002a,0x00000024,0x00050041,0x0000001c,0x0000002c,0x0000001a,0x0000002b,0x0004003d,
|
||||
0x00000006,0x0000002d,0x0000002c,0x000500b1,0x0000001f,0x0000002e,0x0000002a,0x0000002d,
|
||||
0x000400fa,0x0000002e,0x00000026,0x00000027,0x000200f8,0x00000026,0x0004003d,0x00000006,
|
||||
0x00000034,0x00000024,0x00060041,0x00000035,0x00000036,0x00000033,0x0000001b,0x00000034,
|
||||
0x0004003d,0x00000006,0x00000037,0x00000036,0x0003003e,0x0000002f,0x00000037,0x0004003d,
|
||||
0x00000006,0x00000038,0x00000022,0x0004003d,0x00000006,0x0000003d,0x00000024,0x00060041,
|
||||
0x00000035,0x0000003e,0x0000003c,0x0000001b,0x0000003d,0x0004003d,0x00000006,0x0000003f,
|
||||
0x0000003e,0x00050087,0x00000006,0x00000040,0x00000038,0x0000003f,0x0004003d,0x00000006,
|
||||
0x00000045,0x0000002f,0x00060041,0x00000035,0x00000046,0x00000044,0x0000001b,0x00000045,
|
||||
0x0004003d,0x00000006,0x00000047,0x00000046,0x00050084,0x00000006,0x00000048,0x00000040,
|
||||
0x00000047,0x0004003d,0x00000006,0x00000049,0x00000021,0x00050080,0x00000006,0x0000004a,
|
||||
0x00000049,0x00000048,0x0003003e,0x00000021,0x0000004a,0x0004003d,0x00000006,0x0000004b,
|
||||
0x00000024,0x00060041,0x00000035,0x0000004c,0x0000003c,0x0000001b,0x0000004b,0x0004003d,
|
||||
0x00000006,0x0000004d,0x0000004c,0x0004003d,0x00000006,0x0000004e,0x00000022,0x0005008b,
|
||||
0x00000006,0x0000004f,0x0000004e,0x0000004d,0x0003003e,0x00000022,0x0000004f,0x000200f9,
|
||||
0x00000028,0x000200f8,0x00000028,0x0004003d,0x00000006,0x00000050,0x00000024,0x00050080,
|
||||
0x00000006,0x00000051,0x00000050,0x0000002b,0x0003003e,0x00000024,0x00000051,0x000200f9,
|
||||
0x00000025,0x000200f8,0x00000027,0x0004003d,0x00000006,0x00000057,0x00000008,0x0004003d,
|
||||
0x00000006,0x0000005c,0x00000021,0x00060041,0x0000005d,0x0000005e,0x0000005b,0x0000001b,
|
||||
0x0000005c,0x0004003d,0x00000052,0x0000005f,0x0000005e,0x00060041,0x0000005d,0x00000060,
|
||||
0x00000056,0x0000001b,0x00000057,0x0003003e,0x00000060,0x0000005f,0x000200f9,0x00000015,
|
||||
0x000200f8,0x00000015,0x00050041,0x0000001c,0x00000062,0x0000001a,0x00000061,0x0004003d,
|
||||
0x00000006,0x00000063,0x00000062,0x0004003d,0x00000006,0x00000064,0x00000008,0x00050080,
|
||||
0x00000006,0x00000065,0x00000064,0x00000063,0x0003003e,0x00000008,0x00000065,0x000200f9,
|
||||
0x00000012,0x000200f8,0x00000014,0x000100fd,0x00010038
|
||||
};
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,78 +0,0 @@
|
||||
#version 450
|
||||
#define LOCAL_SZ_X 256
|
||||
|
||||
layout(push_constant) uniform pushBlock {
|
||||
int global_size;
|
||||
int nthreads;
|
||||
float step_x;
|
||||
float step_y;
|
||||
int offset_x_size;
|
||||
int width_size;
|
||||
int layer_w;
|
||||
int image_h;
|
||||
int image_w;
|
||||
int clip;
|
||||
int variance_off;
|
||||
} p;
|
||||
|
||||
layout(binding = 0) readonly buffer Input0{
|
||||
float offset_x[];
|
||||
};
|
||||
layout(binding = 1) readonly buffer Input1{
|
||||
float offset_y[];
|
||||
};
|
||||
layout(binding = 2) readonly buffer Input2{
|
||||
float widths[];
|
||||
};
|
||||
layout(binding = 3) readonly buffer Input3{
|
||||
float heights[];
|
||||
};
|
||||
layout(binding = 4) readonly buffer Input4{
|
||||
vec4 variance[];
|
||||
};
|
||||
layout(binding = 5) writeonly buffer Output{
|
||||
vec4 out_buffer[];
|
||||
};
|
||||
|
||||
layout(local_size_x = LOCAL_SZ_X, local_size_y = 1, local_size_z = 1) in;
|
||||
|
||||
void main()
|
||||
{
|
||||
for (int index = int(gl_GlobalInvocationID.x); index < p.nthreads; index += p.global_size)
|
||||
{
|
||||
int w = index % p.layer_w;
|
||||
int h = index / p.layer_w;
|
||||
int output_offset = index * p.offset_x_size * p.width_size;
|
||||
|
||||
float box_w, box_h;
|
||||
vec4 outer;
|
||||
for (int i = 0; i < p.width_size; ++i)
|
||||
{
|
||||
box_w = widths[i];
|
||||
box_h = heights[i];
|
||||
for (int j = 0; j < p.offset_x_size; ++j)
|
||||
{
|
||||
float center_x = (w + offset_x[j]) * p.step_x;
|
||||
float center_y = (h + offset_y[j]) * p.step_y;
|
||||
|
||||
outer.x = (center_x - box_w * 0.5f) / p.image_w; // xmin
|
||||
outer.y = (center_y - box_h * 0.5f) / p.image_h; // ymin
|
||||
outer.z = (center_x + box_w * 0.5f) / p.image_w; // xmax
|
||||
outer.w = (center_y + box_h * 0.5f) / p.image_h; // ymax
|
||||
|
||||
// clip
|
||||
if (p.clip == 1)
|
||||
{
|
||||
vec4 start = vec4(0.f, 0.f, 0.f, 0.f);
|
||||
vec4 end = vec4(1.f, 1.f, 1.f, 1.f);
|
||||
outer = min(max(outer, start), end);
|
||||
}
|
||||
|
||||
//set variance
|
||||
out_buffer[p.variance_off + output_offset] = variance[0];
|
||||
out_buffer[output_offset] = outer;
|
||||
output_offset++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,200 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
extern const unsigned int prior_box_spv[1480] = {
|
||||
0x07230203,0x00010000,0x00080001,0x000000db,0x00000000,0x00020011,0x00000001,0x0006000b,
|
||||
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
|
||||
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000c,0x00060010,0x00000004,
|
||||
0x00000011,0x00000100,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005,
|
||||
0x00000004,0x6e69616d,0x00000000,0x00040005,0x00000008,0x65646e69,0x00000078,0x00080005,
|
||||
0x0000000c,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00050005,
|
||||
0x00000019,0x68737570,0x636f6c42,0x0000006b,0x00060006,0x00000019,0x00000000,0x626f6c67,
|
||||
0x735f6c61,0x00657a69,0x00060006,0x00000019,0x00000001,0x7268746e,0x73646165,0x00000000,
|
||||
0x00050006,0x00000019,0x00000002,0x70657473,0x0000785f,0x00050006,0x00000019,0x00000003,
|
||||
0x70657473,0x0000795f,0x00070006,0x00000019,0x00000004,0x7366666f,0x785f7465,0x7a69735f,
|
||||
0x00000065,0x00060006,0x00000019,0x00000005,0x74646977,0x69735f68,0x0000657a,0x00050006,
|
||||
0x00000019,0x00000006,0x6579616c,0x00775f72,0x00050006,0x00000019,0x00000007,0x67616d69,
|
||||
0x00685f65,0x00050006,0x00000019,0x00000008,0x67616d69,0x00775f65,0x00050006,0x00000019,
|
||||
0x00000009,0x70696c63,0x00000000,0x00070006,0x00000019,0x0000000a,0x69726176,0x65636e61,
|
||||
0x66666f5f,0x00000000,0x00030005,0x0000001b,0x00000070,0x00030005,0x00000022,0x00000077,
|
||||
0x00030005,0x00000028,0x00000068,0x00060005,0x0000002d,0x7074756f,0x6f5f7475,0x65736666,
|
||||
0x00000074,0x00030005,0x00000037,0x00000069,0x00040005,0x00000043,0x5f786f62,0x00000077,
|
||||
0x00040005,0x00000045,0x75706e49,0x00003274,0x00050006,0x00000045,0x00000000,0x74646977,
|
||||
0x00007368,0x00030005,0x00000047,0x00000000,0x00040005,0x0000004c,0x5f786f62,0x00000068,
|
||||
0x00040005,0x0000004e,0x75706e49,0x00003374,0x00050006,0x0000004e,0x00000000,0x67696568,
|
||||
0x00737468,0x00030005,0x00000050,0x00000000,0x00030005,0x00000054,0x0000006a,0x00050005,
|
||||
0x0000005e,0x746e6563,0x785f7265,0x00000000,0x00040005,0x00000062,0x75706e49,0x00003074,
|
||||
0x00060006,0x00000062,0x00000000,0x7366666f,0x785f7465,0x00000000,0x00030005,0x00000064,
|
||||
0x00000000,0x00050005,0x0000006e,0x746e6563,0x795f7265,0x00000000,0x00040005,0x00000072,
|
||||
0x75706e49,0x00003174,0x00060006,0x00000072,0x00000000,0x7366666f,0x795f7465,0x00000000,
|
||||
0x00030005,0x00000074,0x00000000,0x00040005,0x0000007f,0x6574756f,0x00000072,0x00040005,
|
||||
0x000000b0,0x72617473,0x00000074,0x00030005,0x000000b3,0x00646e65,0x00040005,0x000000bc,
|
||||
0x7074754f,0x00007475,0x00060006,0x000000bc,0x00000000,0x5f74756f,0x66667562,0x00007265,
|
||||
0x00030005,0x000000be,0x00000000,0x00040005,0x000000c5,0x75706e49,0x00003474,0x00060006,
|
||||
0x000000c5,0x00000000,0x69726176,0x65636e61,0x00000000,0x00030005,0x000000c7,0x00000000,
|
||||
0x00040047,0x0000000c,0x0000000b,0x0000001c,0x00050048,0x00000019,0x00000000,0x00000023,
|
||||
0x00000000,0x00050048,0x00000019,0x00000001,0x00000023,0x00000004,0x00050048,0x00000019,
|
||||
0x00000002,0x00000023,0x00000008,0x00050048,0x00000019,0x00000003,0x00000023,0x0000000c,
|
||||
0x00050048,0x00000019,0x00000004,0x00000023,0x00000010,0x00050048,0x00000019,0x00000005,
|
||||
0x00000023,0x00000014,0x00050048,0x00000019,0x00000006,0x00000023,0x00000018,0x00050048,
|
||||
0x00000019,0x00000007,0x00000023,0x0000001c,0x00050048,0x00000019,0x00000008,0x00000023,
|
||||
0x00000020,0x00050048,0x00000019,0x00000009,0x00000023,0x00000024,0x00050048,0x00000019,
|
||||
0x0000000a,0x00000023,0x00000028,0x00030047,0x00000019,0x00000002,0x00040047,0x00000044,
|
||||
0x00000006,0x00000004,0x00040048,0x00000045,0x00000000,0x00000018,0x00050048,0x00000045,
|
||||
0x00000000,0x00000023,0x00000000,0x00030047,0x00000045,0x00000003,0x00040047,0x00000047,
|
||||
0x00000022,0x00000000,0x00040047,0x00000047,0x00000021,0x00000002,0x00040047,0x0000004d,
|
||||
0x00000006,0x00000004,0x00040048,0x0000004e,0x00000000,0x00000018,0x00050048,0x0000004e,
|
||||
0x00000000,0x00000023,0x00000000,0x00030047,0x0000004e,0x00000003,0x00040047,0x00000050,
|
||||
0x00000022,0x00000000,0x00040047,0x00000050,0x00000021,0x00000003,0x00040047,0x00000061,
|
||||
0x00000006,0x00000004,0x00040048,0x00000062,0x00000000,0x00000018,0x00050048,0x00000062,
|
||||
0x00000000,0x00000023,0x00000000,0x00030047,0x00000062,0x00000003,0x00040047,0x00000064,
|
||||
0x00000022,0x00000000,0x00040047,0x00000064,0x00000021,0x00000000,0x00040047,0x00000071,
|
||||
0x00000006,0x00000004,0x00040048,0x00000072,0x00000000,0x00000018,0x00050048,0x00000072,
|
||||
0x00000000,0x00000023,0x00000000,0x00030047,0x00000072,0x00000003,0x00040047,0x00000074,
|
||||
0x00000022,0x00000000,0x00040047,0x00000074,0x00000021,0x00000001,0x00040047,0x000000bb,
|
||||
0x00000006,0x00000010,0x00040048,0x000000bc,0x00000000,0x00000019,0x00050048,0x000000bc,
|
||||
0x00000000,0x00000023,0x00000000,0x00030047,0x000000bc,0x00000003,0x00040047,0x000000be,
|
||||
0x00000022,0x00000000,0x00040047,0x000000be,0x00000021,0x00000005,0x00040047,0x000000c4,
|
||||
0x00000006,0x00000010,0x00040048,0x000000c5,0x00000000,0x00000018,0x00050048,0x000000c5,
|
||||
0x00000000,0x00000023,0x00000000,0x00030047,0x000000c5,0x00000003,0x00040047,0x000000c7,
|
||||
0x00000022,0x00000000,0x00040047,0x000000c7,0x00000021,0x00000004,0x00040047,0x000000da,
|
||||
0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,
|
||||
0x00000006,0x00000020,0x00000001,0x00040020,0x00000007,0x00000007,0x00000006,0x00040015,
|
||||
0x00000009,0x00000020,0x00000000,0x00040017,0x0000000a,0x00000009,0x00000003,0x00040020,
|
||||
0x0000000b,0x00000001,0x0000000a,0x0004003b,0x0000000b,0x0000000c,0x00000001,0x0004002b,
|
||||
0x00000009,0x0000000d,0x00000000,0x00040020,0x0000000e,0x00000001,0x00000009,0x00030016,
|
||||
0x00000018,0x00000020,0x000d001e,0x00000019,0x00000006,0x00000006,0x00000018,0x00000018,
|
||||
0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,
|
||||
0x0000001a,0x00000009,0x00000019,0x0004003b,0x0000001a,0x0000001b,0x00000009,0x0004002b,
|
||||
0x00000006,0x0000001c,0x00000001,0x00040020,0x0000001d,0x00000009,0x00000006,0x00020014,
|
||||
0x00000020,0x0004002b,0x00000006,0x00000024,0x00000006,0x0004002b,0x00000006,0x0000002f,
|
||||
0x00000004,0x0004002b,0x00000006,0x00000033,0x00000005,0x0004002b,0x00000006,0x00000038,
|
||||
0x00000000,0x00040020,0x00000042,0x00000007,0x00000018,0x0003001d,0x00000044,0x00000018,
|
||||
0x0003001e,0x00000045,0x00000044,0x00040020,0x00000046,0x00000002,0x00000045,0x0004003b,
|
||||
0x00000046,0x00000047,0x00000002,0x00040020,0x00000049,0x00000002,0x00000018,0x0003001d,
|
||||
0x0000004d,0x00000018,0x0003001e,0x0000004e,0x0000004d,0x00040020,0x0000004f,0x00000002,
|
||||
0x0000004e,0x0004003b,0x0000004f,0x00000050,0x00000002,0x0003001d,0x00000061,0x00000018,
|
||||
0x0003001e,0x00000062,0x00000061,0x00040020,0x00000063,0x00000002,0x00000062,0x0004003b,
|
||||
0x00000063,0x00000064,0x00000002,0x0004002b,0x00000006,0x00000069,0x00000002,0x00040020,
|
||||
0x0000006a,0x00000009,0x00000018,0x0003001d,0x00000071,0x00000018,0x0003001e,0x00000072,
|
||||
0x00000071,0x00040020,0x00000073,0x00000002,0x00000072,0x0004003b,0x00000073,0x00000074,
|
||||
0x00000002,0x0004002b,0x00000006,0x00000079,0x00000003,0x00040017,0x0000007d,0x00000018,
|
||||
0x00000004,0x00040020,0x0000007e,0x00000007,0x0000007d,0x0004002b,0x00000018,0x00000082,
|
||||
0x3f000000,0x0004002b,0x00000006,0x00000085,0x00000008,0x0004002b,0x00000006,0x0000008f,
|
||||
0x00000007,0x0004002b,0x00000009,0x00000094,0x00000001,0x0004002b,0x00000009,0x0000009e,
|
||||
0x00000002,0x0004002b,0x00000009,0x000000a8,0x00000003,0x0004002b,0x00000006,0x000000aa,
|
||||
0x00000009,0x0004002b,0x00000018,0x000000b1,0x00000000,0x0007002c,0x0000007d,0x000000b2,
|
||||
0x000000b1,0x000000b1,0x000000b1,0x000000b1,0x0004002b,0x00000018,0x000000b4,0x3f800000,
|
||||
0x0007002c,0x0000007d,0x000000b5,0x000000b4,0x000000b4,0x000000b4,0x000000b4,0x0003001d,
|
||||
0x000000bb,0x0000007d,0x0003001e,0x000000bc,0x000000bb,0x00040020,0x000000bd,0x00000002,
|
||||
0x000000bc,0x0004003b,0x000000bd,0x000000be,0x00000002,0x0004002b,0x00000006,0x000000bf,
|
||||
0x0000000a,0x0003001d,0x000000c4,0x0000007d,0x0003001e,0x000000c5,0x000000c4,0x00040020,
|
||||
0x000000c6,0x00000002,0x000000c5,0x0004003b,0x000000c6,0x000000c7,0x00000002,0x00040020,
|
||||
0x000000c8,0x00000002,0x0000007d,0x0004002b,0x00000009,0x000000d9,0x00000100,0x0006002c,
|
||||
0x0000000a,0x000000da,0x000000d9,0x00000094,0x00000094,0x00050036,0x00000002,0x00000004,
|
||||
0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x00000008,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000022,0x00000007,0x0004003b,0x00000007,0x00000028,0x00000007,
|
||||
0x0004003b,0x00000007,0x0000002d,0x00000007,0x0004003b,0x00000007,0x00000037,0x00000007,
|
||||
0x0004003b,0x00000042,0x00000043,0x00000007,0x0004003b,0x00000042,0x0000004c,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000054,0x00000007,0x0004003b,0x00000042,0x0000005e,0x00000007,
|
||||
0x0004003b,0x00000042,0x0000006e,0x00000007,0x0004003b,0x0000007e,0x0000007f,0x00000007,
|
||||
0x0004003b,0x0000007e,0x000000b0,0x00000007,0x0004003b,0x0000007e,0x000000b3,0x00000007,
|
||||
0x00050041,0x0000000e,0x0000000f,0x0000000c,0x0000000d,0x0004003d,0x00000009,0x00000010,
|
||||
0x0000000f,0x0004007c,0x00000006,0x00000011,0x00000010,0x0003003e,0x00000008,0x00000011,
|
||||
0x000200f9,0x00000012,0x000200f8,0x00000012,0x000400f6,0x00000014,0x00000015,0x00000000,
|
||||
0x000200f9,0x00000016,0x000200f8,0x00000016,0x0004003d,0x00000006,0x00000017,0x00000008,
|
||||
0x00050041,0x0000001d,0x0000001e,0x0000001b,0x0000001c,0x0004003d,0x00000006,0x0000001f,
|
||||
0x0000001e,0x000500b1,0x00000020,0x00000021,0x00000017,0x0000001f,0x000400fa,0x00000021,
|
||||
0x00000013,0x00000014,0x000200f8,0x00000013,0x0004003d,0x00000006,0x00000023,0x00000008,
|
||||
0x00050041,0x0000001d,0x00000025,0x0000001b,0x00000024,0x0004003d,0x00000006,0x00000026,
|
||||
0x00000025,0x0005008b,0x00000006,0x00000027,0x00000023,0x00000026,0x0003003e,0x00000022,
|
||||
0x00000027,0x0004003d,0x00000006,0x00000029,0x00000008,0x00050041,0x0000001d,0x0000002a,
|
||||
0x0000001b,0x00000024,0x0004003d,0x00000006,0x0000002b,0x0000002a,0x00050087,0x00000006,
|
||||
0x0000002c,0x00000029,0x0000002b,0x0003003e,0x00000028,0x0000002c,0x0004003d,0x00000006,
|
||||
0x0000002e,0x00000008,0x00050041,0x0000001d,0x00000030,0x0000001b,0x0000002f,0x0004003d,
|
||||
0x00000006,0x00000031,0x00000030,0x00050084,0x00000006,0x00000032,0x0000002e,0x00000031,
|
||||
0x00050041,0x0000001d,0x00000034,0x0000001b,0x00000033,0x0004003d,0x00000006,0x00000035,
|
||||
0x00000034,0x00050084,0x00000006,0x00000036,0x00000032,0x00000035,0x0003003e,0x0000002d,
|
||||
0x00000036,0x0003003e,0x00000037,0x00000038,0x000200f9,0x00000039,0x000200f8,0x00000039,
|
||||
0x000400f6,0x0000003b,0x0000003c,0x00000000,0x000200f9,0x0000003d,0x000200f8,0x0000003d,
|
||||
0x0004003d,0x00000006,0x0000003e,0x00000037,0x00050041,0x0000001d,0x0000003f,0x0000001b,
|
||||
0x00000033,0x0004003d,0x00000006,0x00000040,0x0000003f,0x000500b1,0x00000020,0x00000041,
|
||||
0x0000003e,0x00000040,0x000400fa,0x00000041,0x0000003a,0x0000003b,0x000200f8,0x0000003a,
|
||||
0x0004003d,0x00000006,0x00000048,0x00000037,0x00060041,0x00000049,0x0000004a,0x00000047,
|
||||
0x00000038,0x00000048,0x0004003d,0x00000018,0x0000004b,0x0000004a,0x0003003e,0x00000043,
|
||||
0x0000004b,0x0004003d,0x00000006,0x00000051,0x00000037,0x00060041,0x00000049,0x00000052,
|
||||
0x00000050,0x00000038,0x00000051,0x0004003d,0x00000018,0x00000053,0x00000052,0x0003003e,
|
||||
0x0000004c,0x00000053,0x0003003e,0x00000054,0x00000038,0x000200f9,0x00000055,0x000200f8,
|
||||
0x00000055,0x000400f6,0x00000057,0x00000058,0x00000000,0x000200f9,0x00000059,0x000200f8,
|
||||
0x00000059,0x0004003d,0x00000006,0x0000005a,0x00000054,0x00050041,0x0000001d,0x0000005b,
|
||||
0x0000001b,0x0000002f,0x0004003d,0x00000006,0x0000005c,0x0000005b,0x000500b1,0x00000020,
|
||||
0x0000005d,0x0000005a,0x0000005c,0x000400fa,0x0000005d,0x00000056,0x00000057,0x000200f8,
|
||||
0x00000056,0x0004003d,0x00000006,0x0000005f,0x00000022,0x0004006f,0x00000018,0x00000060,
|
||||
0x0000005f,0x0004003d,0x00000006,0x00000065,0x00000054,0x00060041,0x00000049,0x00000066,
|
||||
0x00000064,0x00000038,0x00000065,0x0004003d,0x00000018,0x00000067,0x00000066,0x00050081,
|
||||
0x00000018,0x00000068,0x00000060,0x00000067,0x00050041,0x0000006a,0x0000006b,0x0000001b,
|
||||
0x00000069,0x0004003d,0x00000018,0x0000006c,0x0000006b,0x00050085,0x00000018,0x0000006d,
|
||||
0x00000068,0x0000006c,0x0003003e,0x0000005e,0x0000006d,0x0004003d,0x00000006,0x0000006f,
|
||||
0x00000028,0x0004006f,0x00000018,0x00000070,0x0000006f,0x0004003d,0x00000006,0x00000075,
|
||||
0x00000054,0x00060041,0x00000049,0x00000076,0x00000074,0x00000038,0x00000075,0x0004003d,
|
||||
0x00000018,0x00000077,0x00000076,0x00050081,0x00000018,0x00000078,0x00000070,0x00000077,
|
||||
0x00050041,0x0000006a,0x0000007a,0x0000001b,0x00000079,0x0004003d,0x00000018,0x0000007b,
|
||||
0x0000007a,0x00050085,0x00000018,0x0000007c,0x00000078,0x0000007b,0x0003003e,0x0000006e,
|
||||
0x0000007c,0x0004003d,0x00000018,0x00000080,0x0000005e,0x0004003d,0x00000018,0x00000081,
|
||||
0x00000043,0x00050085,0x00000018,0x00000083,0x00000081,0x00000082,0x00050083,0x00000018,
|
||||
0x00000084,0x00000080,0x00000083,0x00050041,0x0000001d,0x00000086,0x0000001b,0x00000085,
|
||||
0x0004003d,0x00000006,0x00000087,0x00000086,0x0004006f,0x00000018,0x00000088,0x00000087,
|
||||
0x00050088,0x00000018,0x00000089,0x00000084,0x00000088,0x00050041,0x00000042,0x0000008a,
|
||||
0x0000007f,0x0000000d,0x0003003e,0x0000008a,0x00000089,0x0004003d,0x00000018,0x0000008b,
|
||||
0x0000006e,0x0004003d,0x00000018,0x0000008c,0x0000004c,0x00050085,0x00000018,0x0000008d,
|
||||
0x0000008c,0x00000082,0x00050083,0x00000018,0x0000008e,0x0000008b,0x0000008d,0x00050041,
|
||||
0x0000001d,0x00000090,0x0000001b,0x0000008f,0x0004003d,0x00000006,0x00000091,0x00000090,
|
||||
0x0004006f,0x00000018,0x00000092,0x00000091,0x00050088,0x00000018,0x00000093,0x0000008e,
|
||||
0x00000092,0x00050041,0x00000042,0x00000095,0x0000007f,0x00000094,0x0003003e,0x00000095,
|
||||
0x00000093,0x0004003d,0x00000018,0x00000096,0x0000005e,0x0004003d,0x00000018,0x00000097,
|
||||
0x00000043,0x00050085,0x00000018,0x00000098,0x00000097,0x00000082,0x00050081,0x00000018,
|
||||
0x00000099,0x00000096,0x00000098,0x00050041,0x0000001d,0x0000009a,0x0000001b,0x00000085,
|
||||
0x0004003d,0x00000006,0x0000009b,0x0000009a,0x0004006f,0x00000018,0x0000009c,0x0000009b,
|
||||
0x00050088,0x00000018,0x0000009d,0x00000099,0x0000009c,0x00050041,0x00000042,0x0000009f,
|
||||
0x0000007f,0x0000009e,0x0003003e,0x0000009f,0x0000009d,0x0004003d,0x00000018,0x000000a0,
|
||||
0x0000006e,0x0004003d,0x00000018,0x000000a1,0x0000004c,0x00050085,0x00000018,0x000000a2,
|
||||
0x000000a1,0x00000082,0x00050081,0x00000018,0x000000a3,0x000000a0,0x000000a2,0x00050041,
|
||||
0x0000001d,0x000000a4,0x0000001b,0x0000008f,0x0004003d,0x00000006,0x000000a5,0x000000a4,
|
||||
0x0004006f,0x00000018,0x000000a6,0x000000a5,0x00050088,0x00000018,0x000000a7,0x000000a3,
|
||||
0x000000a6,0x00050041,0x00000042,0x000000a9,0x0000007f,0x000000a8,0x0003003e,0x000000a9,
|
||||
0x000000a7,0x00050041,0x0000001d,0x000000ab,0x0000001b,0x000000aa,0x0004003d,0x00000006,
|
||||
0x000000ac,0x000000ab,0x000500aa,0x00000020,0x000000ad,0x000000ac,0x0000001c,0x000300f7,
|
||||
0x000000af,0x00000000,0x000400fa,0x000000ad,0x000000ae,0x000000af,0x000200f8,0x000000ae,
|
||||
0x0003003e,0x000000b0,0x000000b2,0x0003003e,0x000000b3,0x000000b5,0x0004003d,0x0000007d,
|
||||
0x000000b6,0x0000007f,0x0004003d,0x0000007d,0x000000b7,0x000000b0,0x0007000c,0x0000007d,
|
||||
0x000000b8,0x00000001,0x00000028,0x000000b6,0x000000b7,0x0004003d,0x0000007d,0x000000b9,
|
||||
0x000000b3,0x0007000c,0x0000007d,0x000000ba,0x00000001,0x00000025,0x000000b8,0x000000b9,
|
||||
0x0003003e,0x0000007f,0x000000ba,0x000200f9,0x000000af,0x000200f8,0x000000af,0x00050041,
|
||||
0x0000001d,0x000000c0,0x0000001b,0x000000bf,0x0004003d,0x00000006,0x000000c1,0x000000c0,
|
||||
0x0004003d,0x00000006,0x000000c2,0x0000002d,0x00050080,0x00000006,0x000000c3,0x000000c1,
|
||||
0x000000c2,0x00060041,0x000000c8,0x000000c9,0x000000c7,0x00000038,0x00000038,0x0004003d,
|
||||
0x0000007d,0x000000ca,0x000000c9,0x00060041,0x000000c8,0x000000cb,0x000000be,0x00000038,
|
||||
0x000000c3,0x0003003e,0x000000cb,0x000000ca,0x0004003d,0x00000006,0x000000cc,0x0000002d,
|
||||
0x0004003d,0x0000007d,0x000000cd,0x0000007f,0x00060041,0x000000c8,0x000000ce,0x000000be,
|
||||
0x00000038,0x000000cc,0x0003003e,0x000000ce,0x000000cd,0x0004003d,0x00000006,0x000000cf,
|
||||
0x0000002d,0x00050080,0x00000006,0x000000d0,0x000000cf,0x0000001c,0x0003003e,0x0000002d,
|
||||
0x000000d0,0x000200f9,0x00000058,0x000200f8,0x00000058,0x0004003d,0x00000006,0x000000d1,
|
||||
0x00000054,0x00050080,0x00000006,0x000000d2,0x000000d1,0x0000001c,0x0003003e,0x00000054,
|
||||
0x000000d2,0x000200f9,0x00000055,0x000200f8,0x00000057,0x000200f9,0x0000003c,0x000200f8,
|
||||
0x0000003c,0x0004003d,0x00000006,0x000000d3,0x00000037,0x00050080,0x00000006,0x000000d4,
|
||||
0x000000d3,0x0000001c,0x0003003e,0x00000037,0x000000d4,0x000200f9,0x00000039,0x000200f8,
|
||||
0x0000003b,0x000200f9,0x00000015,0x000200f8,0x00000015,0x00050041,0x0000001d,0x000000d5,
|
||||
0x0000001b,0x00000038,0x0004003d,0x00000006,0x000000d6,0x000000d5,0x0004003d,0x00000006,
|
||||
0x000000d7,0x00000008,0x00050080,0x00000006,0x000000d8,0x000000d7,0x000000d6,0x0003003e,
|
||||
0x00000008,0x000000d8,0x000200f9,0x00000012,0x000200f8,0x00000014,0x000100fd,0x00010038
|
||||
};
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,24 +0,0 @@
|
||||
#version 450
|
||||
#define LOCAL_SZ_X 32
|
||||
layout(push_constant) uniform pushBlock {
|
||||
int total;
|
||||
float slope;
|
||||
} p;
|
||||
|
||||
layout(binding = 0) readonly buffer inbuf{
|
||||
float in_buffer[];
|
||||
};
|
||||
|
||||
layout(binding = 1) writeonly buffer outbuf{
|
||||
float out_buffer[];
|
||||
};
|
||||
|
||||
layout(local_size_x = LOCAL_SZ_X, local_size_y = 1, local_size_z = 1) in;
|
||||
void main()
|
||||
{
|
||||
for (int i = int(gl_GlobalInvocationID.x); i < p.total; i += int(gl_NumWorkGroups.x * gl_WorkGroupSize.x))
|
||||
{
|
||||
float in_val = in_buffer[i];
|
||||
out_buffer[i] = in_val >= 0.f ? in_val : p.slope * in_val;
|
||||
}
|
||||
}
|
||||
@@ -1,78 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
extern const unsigned int relu_spv[502] = {
|
||||
0x07230203,0x00010000,0x00080001,0x0000004b,0x00000000,0x00020011,0x00000001,0x0006000b,
|
||||
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
|
||||
0x0007000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000c,0x00000041,0x00060010,
|
||||
0x00000004,0x00000011,0x00000020,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,
|
||||
0x00040005,0x00000004,0x6e69616d,0x00000000,0x00030005,0x00000008,0x00000069,0x00080005,
|
||||
0x0000000c,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00050005,
|
||||
0x00000019,0x68737570,0x636f6c42,0x0000006b,0x00050006,0x00000019,0x00000000,0x61746f74,
|
||||
0x0000006c,0x00050006,0x00000019,0x00000001,0x706f6c73,0x00000065,0x00030005,0x0000001b,
|
||||
0x00000070,0x00040005,0x00000023,0x765f6e69,0x00006c61,0x00040005,0x00000025,0x75626e69,
|
||||
0x00000066,0x00060006,0x00000025,0x00000000,0x625f6e69,0x65666675,0x00000072,0x00030005,
|
||||
0x00000027,0x00000000,0x00040005,0x0000002d,0x6274756f,0x00006675,0x00060006,0x0000002d,
|
||||
0x00000000,0x5f74756f,0x66667562,0x00007265,0x00030005,0x0000002f,0x00000000,0x00070005,
|
||||
0x00000041,0x4e5f6c67,0x6f576d75,0x72476b72,0x7370756f,0x00000000,0x00040047,0x0000000c,
|
||||
0x0000000b,0x0000001c,0x00050048,0x00000019,0x00000000,0x00000023,0x00000000,0x00050048,
|
||||
0x00000019,0x00000001,0x00000023,0x00000004,0x00030047,0x00000019,0x00000002,0x00040047,
|
||||
0x00000024,0x00000006,0x00000004,0x00040048,0x00000025,0x00000000,0x00000018,0x00050048,
|
||||
0x00000025,0x00000000,0x00000023,0x00000000,0x00030047,0x00000025,0x00000003,0x00040047,
|
||||
0x00000027,0x00000022,0x00000000,0x00040047,0x00000027,0x00000021,0x00000000,0x00040047,
|
||||
0x0000002c,0x00000006,0x00000004,0x00040048,0x0000002d,0x00000000,0x00000019,0x00050048,
|
||||
0x0000002d,0x00000000,0x00000023,0x00000000,0x00030047,0x0000002d,0x00000003,0x00040047,
|
||||
0x0000002f,0x00000022,0x00000000,0x00040047,0x0000002f,0x00000021,0x00000001,0x00040047,
|
||||
0x00000041,0x0000000b,0x00000018,0x00040047,0x0000004a,0x0000000b,0x00000019,0x00020013,
|
||||
0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000001,
|
||||
0x00040020,0x00000007,0x00000007,0x00000006,0x00040015,0x00000009,0x00000020,0x00000000,
|
||||
0x00040017,0x0000000a,0x00000009,0x00000003,0x00040020,0x0000000b,0x00000001,0x0000000a,
|
||||
0x0004003b,0x0000000b,0x0000000c,0x00000001,0x0004002b,0x00000009,0x0000000d,0x00000000,
|
||||
0x00040020,0x0000000e,0x00000001,0x00000009,0x00030016,0x00000018,0x00000020,0x0004001e,
|
||||
0x00000019,0x00000006,0x00000018,0x00040020,0x0000001a,0x00000009,0x00000019,0x0004003b,
|
||||
0x0000001a,0x0000001b,0x00000009,0x0004002b,0x00000006,0x0000001c,0x00000000,0x00040020,
|
||||
0x0000001d,0x00000009,0x00000006,0x00020014,0x00000020,0x00040020,0x00000022,0x00000007,
|
||||
0x00000018,0x0003001d,0x00000024,0x00000018,0x0003001e,0x00000025,0x00000024,0x00040020,
|
||||
0x00000026,0x00000002,0x00000025,0x0004003b,0x00000026,0x00000027,0x00000002,0x00040020,
|
||||
0x00000029,0x00000002,0x00000018,0x0003001d,0x0000002c,0x00000018,0x0003001e,0x0000002d,
|
||||
0x0000002c,0x00040020,0x0000002e,0x00000002,0x0000002d,0x0004003b,0x0000002e,0x0000002f,
|
||||
0x00000002,0x0004002b,0x00000018,0x00000033,0x00000000,0x0004002b,0x00000006,0x00000039,
|
||||
0x00000001,0x00040020,0x0000003a,0x00000009,0x00000018,0x0004003b,0x0000000b,0x00000041,
|
||||
0x00000001,0x0004002b,0x00000009,0x00000044,0x00000020,0x0004002b,0x00000009,0x00000049,
|
||||
0x00000001,0x0006002c,0x0000000a,0x0000004a,0x00000044,0x00000049,0x00000049,0x00050036,
|
||||
0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,
|
||||
0x00000008,0x00000007,0x0004003b,0x00000022,0x00000023,0x00000007,0x0004003b,0x00000022,
|
||||
0x00000031,0x00000007,0x00050041,0x0000000e,0x0000000f,0x0000000c,0x0000000d,0x0004003d,
|
||||
0x00000009,0x00000010,0x0000000f,0x0004007c,0x00000006,0x00000011,0x00000010,0x0003003e,
|
||||
0x00000008,0x00000011,0x000200f9,0x00000012,0x000200f8,0x00000012,0x000400f6,0x00000014,
|
||||
0x00000015,0x00000000,0x000200f9,0x00000016,0x000200f8,0x00000016,0x0004003d,0x00000006,
|
||||
0x00000017,0x00000008,0x00050041,0x0000001d,0x0000001e,0x0000001b,0x0000001c,0x0004003d,
|
||||
0x00000006,0x0000001f,0x0000001e,0x000500b1,0x00000020,0x00000021,0x00000017,0x0000001f,
|
||||
0x000400fa,0x00000021,0x00000013,0x00000014,0x000200f8,0x00000013,0x0004003d,0x00000006,
|
||||
0x00000028,0x00000008,0x00060041,0x00000029,0x0000002a,0x00000027,0x0000001c,0x00000028,
|
||||
0x0004003d,0x00000018,0x0000002b,0x0000002a,0x0003003e,0x00000023,0x0000002b,0x0004003d,
|
||||
0x00000006,0x00000030,0x00000008,0x0004003d,0x00000018,0x00000032,0x00000023,0x000500be,
|
||||
0x00000020,0x00000034,0x00000032,0x00000033,0x000300f7,0x00000036,0x00000000,0x000400fa,
|
||||
0x00000034,0x00000035,0x00000038,0x000200f8,0x00000035,0x0004003d,0x00000018,0x00000037,
|
||||
0x00000023,0x0003003e,0x00000031,0x00000037,0x000200f9,0x00000036,0x000200f8,0x00000038,
|
||||
0x00050041,0x0000003a,0x0000003b,0x0000001b,0x00000039,0x0004003d,0x00000018,0x0000003c,
|
||||
0x0000003b,0x0004003d,0x00000018,0x0000003d,0x00000023,0x00050085,0x00000018,0x0000003e,
|
||||
0x0000003c,0x0000003d,0x0003003e,0x00000031,0x0000003e,0x000200f9,0x00000036,0x000200f8,
|
||||
0x00000036,0x0004003d,0x00000018,0x0000003f,0x00000031,0x00060041,0x00000029,0x00000040,
|
||||
0x0000002f,0x0000001c,0x00000030,0x0003003e,0x00000040,0x0000003f,0x000200f9,0x00000015,
|
||||
0x000200f8,0x00000015,0x00050041,0x0000000e,0x00000042,0x00000041,0x0000000d,0x0004003d,
|
||||
0x00000009,0x00000043,0x00000042,0x00050084,0x00000009,0x00000045,0x00000043,0x00000044,
|
||||
0x0004007c,0x00000006,0x00000046,0x00000045,0x0004003d,0x00000006,0x00000047,0x00000008,
|
||||
0x00050080,0x00000006,0x00000048,0x00000047,0x00000046,0x0003003e,0x00000008,0x00000048,
|
||||
0x000200f9,0x00000012,0x000200f8,0x00000014,0x000100fd,0x00010038
|
||||
};
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,78 +0,0 @@
|
||||
|
||||
#version 450
|
||||
#define LOCAL_SZ_X 256
|
||||
|
||||
layout(binding = 0) readonly buffer buf0{
|
||||
float input_buffer[]; // outer_size * channels * channel_size
|
||||
};
|
||||
layout(binding = 1) buffer buf1{
|
||||
float max_buffer[]; // outer_size * channel_size
|
||||
};
|
||||
layout(binding = 2) buffer buf2{
|
||||
float sum_buffer[]; // outer_size * channel_size
|
||||
};
|
||||
layout(binding = 3) buffer buf3{
|
||||
float output_buffer[]; // outer_size * channels * channel_size
|
||||
};
|
||||
layout(push_constant) uniform pushBlock {
|
||||
int channel_size;
|
||||
int outer_size;
|
||||
int channels;
|
||||
int logsoftmax;
|
||||
} p;
|
||||
layout(local_size_x = LOCAL_SZ_X, local_size_y = 1, local_size_z = 1) in;
|
||||
|
||||
void main()
|
||||
{
|
||||
int gid = int(gl_GlobalInvocationID.x);
|
||||
if (gid >= p.outer_size) return;
|
||||
|
||||
int global_off = gid * p.channels * p.channel_size;
|
||||
int reduced_buffer_off = gid * p.channel_size;
|
||||
|
||||
// find the max along channel
|
||||
int index = global_off;
|
||||
for (int i = 0; i < p.channel_size; ++i)
|
||||
{
|
||||
max_buffer[reduced_buffer_off + i] = input_buffer[index];
|
||||
index++;
|
||||
}
|
||||
for (int c = 1; c < p.channels; ++c)
|
||||
{
|
||||
for (int i = 0; i < p.channel_size; ++i)
|
||||
{
|
||||
max_buffer[reduced_buffer_off + i] = max(max_buffer[reduced_buffer_off + i], input_buffer[index]);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
|
||||
// subtract, exp and accumulate along channel
|
||||
for (int i = 0; i < p.channel_size; ++i)
|
||||
sum_buffer[reduced_buffer_off + i] = 0.f;
|
||||
|
||||
index = global_off;
|
||||
for (int c = 0; c < p.channels; ++c)
|
||||
{
|
||||
for (int i = 0; i < p.channel_size; ++i)
|
||||
{
|
||||
float exp_val = exp(input_buffer[index] - max_buffer[reduced_buffer_off + i]);
|
||||
output_buffer[index] = exp_val;
|
||||
sum_buffer[reduced_buffer_off + i] += exp_val;
|
||||
index++;
|
||||
}
|
||||
}
|
||||
|
||||
// divide by computed sum
|
||||
index = global_off;
|
||||
for (int c = 0; c < p.channels; ++c)
|
||||
{
|
||||
for (int i = 0; i < p.channel_size; ++i)
|
||||
{
|
||||
float v = output_buffer[index] / sum_buffer[reduced_buffer_off + i];
|
||||
if (p.logsoftmax == 1)
|
||||
v = log(v);
|
||||
output_buffer[index] = v;
|
||||
index++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,202 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
extern const unsigned int softmax_spv[1496] = {
|
||||
0x07230203,0x00010000,0x00080001,0x000000f4,0x00000000,0x00020011,0x00000001,0x0006000b,
|
||||
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
|
||||
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000c,0x00060010,0x00000004,
|
||||
0x00000011,0x00000100,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005,
|
||||
0x00000004,0x6e69616d,0x00000000,0x00030005,0x00000008,0x00646967,0x00080005,0x0000000c,
|
||||
0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00050005,0x00000013,
|
||||
0x68737570,0x636f6c42,0x0000006b,0x00070006,0x00000013,0x00000000,0x6e616863,0x5f6c656e,
|
||||
0x657a6973,0x00000000,0x00060006,0x00000013,0x00000001,0x6574756f,0x69735f72,0x0000657a,
|
||||
0x00060006,0x00000013,0x00000002,0x6e616863,0x736c656e,0x00000000,0x00060006,0x00000013,
|
||||
0x00000003,0x73676f6c,0x6d74666f,0x00007861,0x00030005,0x00000015,0x00000070,0x00050005,
|
||||
0x0000001f,0x626f6c67,0x6f5f6c61,0x00006666,0x00070005,0x00000029,0x75646572,0x5f646563,
|
||||
0x66667562,0x6f5f7265,0x00006666,0x00040005,0x0000002e,0x65646e69,0x00000078,0x00030005,
|
||||
0x00000030,0x00000069,0x00040005,0x0000003c,0x31667562,0x00000000,0x00060006,0x0000003c,
|
||||
0x00000000,0x5f78616d,0x66667562,0x00007265,0x00030005,0x0000003e,0x00000000,0x00040005,
|
||||
0x00000043,0x30667562,0x00000000,0x00070006,0x00000043,0x00000000,0x75706e69,0x75625f74,
|
||||
0x72656666,0x00000000,0x00030005,0x00000045,0x00000000,0x00030005,0x0000004f,0x00000063,
|
||||
0x00030005,0x00000059,0x00000069,0x00030005,0x00000076,0x00000069,0x00040005,0x00000081,
|
||||
0x32667562,0x00000000,0x00060006,0x00000081,0x00000000,0x5f6d7573,0x66667562,0x00007265,
|
||||
0x00030005,0x00000083,0x00000000,0x00030005,0x0000008c,0x00000063,0x00030005,0x00000096,
|
||||
0x00000069,0x00040005,0x000000a1,0x5f707865,0x006c6176,0x00040005,0x000000ad,0x33667562,
|
||||
0x00000000,0x00070006,0x000000ad,0x00000000,0x7074756f,0x625f7475,0x65666675,0x00000072,
|
||||
0x00030005,0x000000af,0x00000000,0x00030005,0x000000c2,0x00000063,0x00030005,0x000000cc,
|
||||
0x00000069,0x00030005,0x000000d6,0x00000076,0x00040047,0x0000000c,0x0000000b,0x0000001c,
|
||||
0x00050048,0x00000013,0x00000000,0x00000023,0x00000000,0x00050048,0x00000013,0x00000001,
|
||||
0x00000023,0x00000004,0x00050048,0x00000013,0x00000002,0x00000023,0x00000008,0x00050048,
|
||||
0x00000013,0x00000003,0x00000023,0x0000000c,0x00030047,0x00000013,0x00000002,0x00040047,
|
||||
0x0000003b,0x00000006,0x00000004,0x00050048,0x0000003c,0x00000000,0x00000023,0x00000000,
|
||||
0x00030047,0x0000003c,0x00000003,0x00040047,0x0000003e,0x00000022,0x00000000,0x00040047,
|
||||
0x0000003e,0x00000021,0x00000001,0x00040047,0x00000042,0x00000006,0x00000004,0x00040048,
|
||||
0x00000043,0x00000000,0x00000018,0x00050048,0x00000043,0x00000000,0x00000023,0x00000000,
|
||||
0x00030047,0x00000043,0x00000003,0x00040047,0x00000045,0x00000022,0x00000000,0x00040047,
|
||||
0x00000045,0x00000021,0x00000000,0x00040047,0x00000080,0x00000006,0x00000004,0x00050048,
|
||||
0x00000081,0x00000000,0x00000023,0x00000000,0x00030047,0x00000081,0x00000003,0x00040047,
|
||||
0x00000083,0x00000022,0x00000000,0x00040047,0x00000083,0x00000021,0x00000002,0x00040047,
|
||||
0x000000ac,0x00000006,0x00000004,0x00050048,0x000000ad,0x00000000,0x00000023,0x00000000,
|
||||
0x00030047,0x000000ad,0x00000003,0x00040047,0x000000af,0x00000022,0x00000000,0x00040047,
|
||||
0x000000af,0x00000021,0x00000003,0x00040047,0x000000f3,0x0000000b,0x00000019,0x00020013,
|
||||
0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000001,
|
||||
0x00040020,0x00000007,0x00000007,0x00000006,0x00040015,0x00000009,0x00000020,0x00000000,
|
||||
0x00040017,0x0000000a,0x00000009,0x00000003,0x00040020,0x0000000b,0x00000001,0x0000000a,
|
||||
0x0004003b,0x0000000b,0x0000000c,0x00000001,0x0004002b,0x00000009,0x0000000d,0x00000000,
|
||||
0x00040020,0x0000000e,0x00000001,0x00000009,0x0006001e,0x00000013,0x00000006,0x00000006,
|
||||
0x00000006,0x00000006,0x00040020,0x00000014,0x00000009,0x00000013,0x0004003b,0x00000014,
|
||||
0x00000015,0x00000009,0x0004002b,0x00000006,0x00000016,0x00000001,0x00040020,0x00000017,
|
||||
0x00000009,0x00000006,0x00020014,0x0000001a,0x0004002b,0x00000006,0x00000021,0x00000002,
|
||||
0x0004002b,0x00000006,0x00000025,0x00000000,0x00030016,0x0000003a,0x00000020,0x0003001d,
|
||||
0x0000003b,0x0000003a,0x0003001e,0x0000003c,0x0000003b,0x00040020,0x0000003d,0x00000002,
|
||||
0x0000003c,0x0004003b,0x0000003d,0x0000003e,0x00000002,0x0003001d,0x00000042,0x0000003a,
|
||||
0x0003001e,0x00000043,0x00000042,0x00040020,0x00000044,0x00000002,0x00000043,0x0004003b,
|
||||
0x00000044,0x00000045,0x00000002,0x00040020,0x00000047,0x00000002,0x0000003a,0x0003001d,
|
||||
0x00000080,0x0000003a,0x0003001e,0x00000081,0x00000080,0x00040020,0x00000082,0x00000002,
|
||||
0x00000081,0x0004003b,0x00000082,0x00000083,0x00000002,0x0004002b,0x0000003a,0x00000087,
|
||||
0x00000000,0x00040020,0x000000a0,0x00000007,0x0000003a,0x0003001d,0x000000ac,0x0000003a,
|
||||
0x0003001e,0x000000ad,0x000000ac,0x00040020,0x000000ae,0x00000002,0x000000ad,0x0004003b,
|
||||
0x000000ae,0x000000af,0x00000002,0x0004002b,0x00000006,0x000000e0,0x00000003,0x0004002b,
|
||||
0x00000009,0x000000f1,0x00000100,0x0004002b,0x00000009,0x000000f2,0x00000001,0x0006002c,
|
||||
0x0000000a,0x000000f3,0x000000f1,0x000000f2,0x000000f2,0x00050036,0x00000002,0x00000004,
|
||||
0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x00000008,0x00000007,
|
||||
0x0004003b,0x00000007,0x0000001f,0x00000007,0x0004003b,0x00000007,0x00000029,0x00000007,
|
||||
0x0004003b,0x00000007,0x0000002e,0x00000007,0x0004003b,0x00000007,0x00000030,0x00000007,
|
||||
0x0004003b,0x00000007,0x0000004f,0x00000007,0x0004003b,0x00000007,0x00000059,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000076,0x00000007,0x0004003b,0x00000007,0x0000008c,0x00000007,
|
||||
0x0004003b,0x00000007,0x00000096,0x00000007,0x0004003b,0x000000a0,0x000000a1,0x00000007,
|
||||
0x0004003b,0x00000007,0x000000c2,0x00000007,0x0004003b,0x00000007,0x000000cc,0x00000007,
|
||||
0x0004003b,0x000000a0,0x000000d6,0x00000007,0x00050041,0x0000000e,0x0000000f,0x0000000c,
|
||||
0x0000000d,0x0004003d,0x00000009,0x00000010,0x0000000f,0x0004007c,0x00000006,0x00000011,
|
||||
0x00000010,0x0003003e,0x00000008,0x00000011,0x0004003d,0x00000006,0x00000012,0x00000008,
|
||||
0x00050041,0x00000017,0x00000018,0x00000015,0x00000016,0x0004003d,0x00000006,0x00000019,
|
||||
0x00000018,0x000500af,0x0000001a,0x0000001b,0x00000012,0x00000019,0x000300f7,0x0000001d,
|
||||
0x00000000,0x000400fa,0x0000001b,0x0000001c,0x0000001d,0x000200f8,0x0000001c,0x000100fd,
|
||||
0x000200f8,0x0000001d,0x0004003d,0x00000006,0x00000020,0x00000008,0x00050041,0x00000017,
|
||||
0x00000022,0x00000015,0x00000021,0x0004003d,0x00000006,0x00000023,0x00000022,0x00050084,
|
||||
0x00000006,0x00000024,0x00000020,0x00000023,0x00050041,0x00000017,0x00000026,0x00000015,
|
||||
0x00000025,0x0004003d,0x00000006,0x00000027,0x00000026,0x00050084,0x00000006,0x00000028,
|
||||
0x00000024,0x00000027,0x0003003e,0x0000001f,0x00000028,0x0004003d,0x00000006,0x0000002a,
|
||||
0x00000008,0x00050041,0x00000017,0x0000002b,0x00000015,0x00000025,0x0004003d,0x00000006,
|
||||
0x0000002c,0x0000002b,0x00050084,0x00000006,0x0000002d,0x0000002a,0x0000002c,0x0003003e,
|
||||
0x00000029,0x0000002d,0x0004003d,0x00000006,0x0000002f,0x0000001f,0x0003003e,0x0000002e,
|
||||
0x0000002f,0x0003003e,0x00000030,0x00000025,0x000200f9,0x00000031,0x000200f8,0x00000031,
|
||||
0x000400f6,0x00000033,0x00000034,0x00000000,0x000200f9,0x00000035,0x000200f8,0x00000035,
|
||||
0x0004003d,0x00000006,0x00000036,0x00000030,0x00050041,0x00000017,0x00000037,0x00000015,
|
||||
0x00000025,0x0004003d,0x00000006,0x00000038,0x00000037,0x000500b1,0x0000001a,0x00000039,
|
||||
0x00000036,0x00000038,0x000400fa,0x00000039,0x00000032,0x00000033,0x000200f8,0x00000032,
|
||||
0x0004003d,0x00000006,0x0000003f,0x00000029,0x0004003d,0x00000006,0x00000040,0x00000030,
|
||||
0x00050080,0x00000006,0x00000041,0x0000003f,0x00000040,0x0004003d,0x00000006,0x00000046,
|
||||
0x0000002e,0x00060041,0x00000047,0x00000048,0x00000045,0x00000025,0x00000046,0x0004003d,
|
||||
0x0000003a,0x00000049,0x00000048,0x00060041,0x00000047,0x0000004a,0x0000003e,0x00000025,
|
||||
0x00000041,0x0003003e,0x0000004a,0x00000049,0x0004003d,0x00000006,0x0000004b,0x0000002e,
|
||||
0x00050080,0x00000006,0x0000004c,0x0000004b,0x00000016,0x0003003e,0x0000002e,0x0000004c,
|
||||
0x000200f9,0x00000034,0x000200f8,0x00000034,0x0004003d,0x00000006,0x0000004d,0x00000030,
|
||||
0x00050080,0x00000006,0x0000004e,0x0000004d,0x00000016,0x0003003e,0x00000030,0x0000004e,
|
||||
0x000200f9,0x00000031,0x000200f8,0x00000033,0x0003003e,0x0000004f,0x00000016,0x000200f9,
|
||||
0x00000050,0x000200f8,0x00000050,0x000400f6,0x00000052,0x00000053,0x00000000,0x000200f9,
|
||||
0x00000054,0x000200f8,0x00000054,0x0004003d,0x00000006,0x00000055,0x0000004f,0x00050041,
|
||||
0x00000017,0x00000056,0x00000015,0x00000021,0x0004003d,0x00000006,0x00000057,0x00000056,
|
||||
0x000500b1,0x0000001a,0x00000058,0x00000055,0x00000057,0x000400fa,0x00000058,0x00000051,
|
||||
0x00000052,0x000200f8,0x00000051,0x0003003e,0x00000059,0x00000025,0x000200f9,0x0000005a,
|
||||
0x000200f8,0x0000005a,0x000400f6,0x0000005c,0x0000005d,0x00000000,0x000200f9,0x0000005e,
|
||||
0x000200f8,0x0000005e,0x0004003d,0x00000006,0x0000005f,0x00000059,0x00050041,0x00000017,
|
||||
0x00000060,0x00000015,0x00000025,0x0004003d,0x00000006,0x00000061,0x00000060,0x000500b1,
|
||||
0x0000001a,0x00000062,0x0000005f,0x00000061,0x000400fa,0x00000062,0x0000005b,0x0000005c,
|
||||
0x000200f8,0x0000005b,0x0004003d,0x00000006,0x00000063,0x00000029,0x0004003d,0x00000006,
|
||||
0x00000064,0x00000059,0x00050080,0x00000006,0x00000065,0x00000063,0x00000064,0x0004003d,
|
||||
0x00000006,0x00000066,0x00000029,0x0004003d,0x00000006,0x00000067,0x00000059,0x00050080,
|
||||
0x00000006,0x00000068,0x00000066,0x00000067,0x00060041,0x00000047,0x00000069,0x0000003e,
|
||||
0x00000025,0x00000068,0x0004003d,0x0000003a,0x0000006a,0x00000069,0x0004003d,0x00000006,
|
||||
0x0000006b,0x0000002e,0x00060041,0x00000047,0x0000006c,0x00000045,0x00000025,0x0000006b,
|
||||
0x0004003d,0x0000003a,0x0000006d,0x0000006c,0x0007000c,0x0000003a,0x0000006e,0x00000001,
|
||||
0x00000028,0x0000006a,0x0000006d,0x00060041,0x00000047,0x0000006f,0x0000003e,0x00000025,
|
||||
0x00000065,0x0003003e,0x0000006f,0x0000006e,0x0004003d,0x00000006,0x00000070,0x0000002e,
|
||||
0x00050080,0x00000006,0x00000071,0x00000070,0x00000016,0x0003003e,0x0000002e,0x00000071,
|
||||
0x000200f9,0x0000005d,0x000200f8,0x0000005d,0x0004003d,0x00000006,0x00000072,0x00000059,
|
||||
0x00050080,0x00000006,0x00000073,0x00000072,0x00000016,0x0003003e,0x00000059,0x00000073,
|
||||
0x000200f9,0x0000005a,0x000200f8,0x0000005c,0x000200f9,0x00000053,0x000200f8,0x00000053,
|
||||
0x0004003d,0x00000006,0x00000074,0x0000004f,0x00050080,0x00000006,0x00000075,0x00000074,
|
||||
0x00000016,0x0003003e,0x0000004f,0x00000075,0x000200f9,0x00000050,0x000200f8,0x00000052,
|
||||
0x0003003e,0x00000076,0x00000025,0x000200f9,0x00000077,0x000200f8,0x00000077,0x000400f6,
|
||||
0x00000079,0x0000007a,0x00000000,0x000200f9,0x0000007b,0x000200f8,0x0000007b,0x0004003d,
|
||||
0x00000006,0x0000007c,0x00000076,0x00050041,0x00000017,0x0000007d,0x00000015,0x00000025,
|
||||
0x0004003d,0x00000006,0x0000007e,0x0000007d,0x000500b1,0x0000001a,0x0000007f,0x0000007c,
|
||||
0x0000007e,0x000400fa,0x0000007f,0x00000078,0x00000079,0x000200f8,0x00000078,0x0004003d,
|
||||
0x00000006,0x00000084,0x00000029,0x0004003d,0x00000006,0x00000085,0x00000076,0x00050080,
|
||||
0x00000006,0x00000086,0x00000084,0x00000085,0x00060041,0x00000047,0x00000088,0x00000083,
|
||||
0x00000025,0x00000086,0x0003003e,0x00000088,0x00000087,0x000200f9,0x0000007a,0x000200f8,
|
||||
0x0000007a,0x0004003d,0x00000006,0x00000089,0x00000076,0x00050080,0x00000006,0x0000008a,
|
||||
0x00000089,0x00000016,0x0003003e,0x00000076,0x0000008a,0x000200f9,0x00000077,0x000200f8,
|
||||
0x00000079,0x0004003d,0x00000006,0x0000008b,0x0000001f,0x0003003e,0x0000002e,0x0000008b,
|
||||
0x0003003e,0x0000008c,0x00000025,0x000200f9,0x0000008d,0x000200f8,0x0000008d,0x000400f6,
|
||||
0x0000008f,0x00000090,0x00000000,0x000200f9,0x00000091,0x000200f8,0x00000091,0x0004003d,
|
||||
0x00000006,0x00000092,0x0000008c,0x00050041,0x00000017,0x00000093,0x00000015,0x00000021,
|
||||
0x0004003d,0x00000006,0x00000094,0x00000093,0x000500b1,0x0000001a,0x00000095,0x00000092,
|
||||
0x00000094,0x000400fa,0x00000095,0x0000008e,0x0000008f,0x000200f8,0x0000008e,0x0003003e,
|
||||
0x00000096,0x00000025,0x000200f9,0x00000097,0x000200f8,0x00000097,0x000400f6,0x00000099,
|
||||
0x0000009a,0x00000000,0x000200f9,0x0000009b,0x000200f8,0x0000009b,0x0004003d,0x00000006,
|
||||
0x0000009c,0x00000096,0x00050041,0x00000017,0x0000009d,0x00000015,0x00000025,0x0004003d,
|
||||
0x00000006,0x0000009e,0x0000009d,0x000500b1,0x0000001a,0x0000009f,0x0000009c,0x0000009e,
|
||||
0x000400fa,0x0000009f,0x00000098,0x00000099,0x000200f8,0x00000098,0x0004003d,0x00000006,
|
||||
0x000000a2,0x0000002e,0x00060041,0x00000047,0x000000a3,0x00000045,0x00000025,0x000000a2,
|
||||
0x0004003d,0x0000003a,0x000000a4,0x000000a3,0x0004003d,0x00000006,0x000000a5,0x00000029,
|
||||
0x0004003d,0x00000006,0x000000a6,0x00000096,0x00050080,0x00000006,0x000000a7,0x000000a5,
|
||||
0x000000a6,0x00060041,0x00000047,0x000000a8,0x0000003e,0x00000025,0x000000a7,0x0004003d,
|
||||
0x0000003a,0x000000a9,0x000000a8,0x00050083,0x0000003a,0x000000aa,0x000000a4,0x000000a9,
|
||||
0x0006000c,0x0000003a,0x000000ab,0x00000001,0x0000001b,0x000000aa,0x0003003e,0x000000a1,
|
||||
0x000000ab,0x0004003d,0x00000006,0x000000b0,0x0000002e,0x0004003d,0x0000003a,0x000000b1,
|
||||
0x000000a1,0x00060041,0x00000047,0x000000b2,0x000000af,0x00000025,0x000000b0,0x0003003e,
|
||||
0x000000b2,0x000000b1,0x0004003d,0x00000006,0x000000b3,0x00000029,0x0004003d,0x00000006,
|
||||
0x000000b4,0x00000096,0x00050080,0x00000006,0x000000b5,0x000000b3,0x000000b4,0x0004003d,
|
||||
0x0000003a,0x000000b6,0x000000a1,0x00060041,0x00000047,0x000000b7,0x00000083,0x00000025,
|
||||
0x000000b5,0x0004003d,0x0000003a,0x000000b8,0x000000b7,0x00050081,0x0000003a,0x000000b9,
|
||||
0x000000b8,0x000000b6,0x00060041,0x00000047,0x000000ba,0x00000083,0x00000025,0x000000b5,
|
||||
0x0003003e,0x000000ba,0x000000b9,0x0004003d,0x00000006,0x000000bb,0x0000002e,0x00050080,
|
||||
0x00000006,0x000000bc,0x000000bb,0x00000016,0x0003003e,0x0000002e,0x000000bc,0x000200f9,
|
||||
0x0000009a,0x000200f8,0x0000009a,0x0004003d,0x00000006,0x000000bd,0x00000096,0x00050080,
|
||||
0x00000006,0x000000be,0x000000bd,0x00000016,0x0003003e,0x00000096,0x000000be,0x000200f9,
|
||||
0x00000097,0x000200f8,0x00000099,0x000200f9,0x00000090,0x000200f8,0x00000090,0x0004003d,
|
||||
0x00000006,0x000000bf,0x0000008c,0x00050080,0x00000006,0x000000c0,0x000000bf,0x00000016,
|
||||
0x0003003e,0x0000008c,0x000000c0,0x000200f9,0x0000008d,0x000200f8,0x0000008f,0x0004003d,
|
||||
0x00000006,0x000000c1,0x0000001f,0x0003003e,0x0000002e,0x000000c1,0x0003003e,0x000000c2,
|
||||
0x00000025,0x000200f9,0x000000c3,0x000200f8,0x000000c3,0x000400f6,0x000000c5,0x000000c6,
|
||||
0x00000000,0x000200f9,0x000000c7,0x000200f8,0x000000c7,0x0004003d,0x00000006,0x000000c8,
|
||||
0x000000c2,0x00050041,0x00000017,0x000000c9,0x00000015,0x00000021,0x0004003d,0x00000006,
|
||||
0x000000ca,0x000000c9,0x000500b1,0x0000001a,0x000000cb,0x000000c8,0x000000ca,0x000400fa,
|
||||
0x000000cb,0x000000c4,0x000000c5,0x000200f8,0x000000c4,0x0003003e,0x000000cc,0x00000025,
|
||||
0x000200f9,0x000000cd,0x000200f8,0x000000cd,0x000400f6,0x000000cf,0x000000d0,0x00000000,
|
||||
0x000200f9,0x000000d1,0x000200f8,0x000000d1,0x0004003d,0x00000006,0x000000d2,0x000000cc,
|
||||
0x00050041,0x00000017,0x000000d3,0x00000015,0x00000025,0x0004003d,0x00000006,0x000000d4,
|
||||
0x000000d3,0x000500b1,0x0000001a,0x000000d5,0x000000d2,0x000000d4,0x000400fa,0x000000d5,
|
||||
0x000000ce,0x000000cf,0x000200f8,0x000000ce,0x0004003d,0x00000006,0x000000d7,0x0000002e,
|
||||
0x00060041,0x00000047,0x000000d8,0x000000af,0x00000025,0x000000d7,0x0004003d,0x0000003a,
|
||||
0x000000d9,0x000000d8,0x0004003d,0x00000006,0x000000da,0x00000029,0x0004003d,0x00000006,
|
||||
0x000000db,0x000000cc,0x00050080,0x00000006,0x000000dc,0x000000da,0x000000db,0x00060041,
|
||||
0x00000047,0x000000dd,0x00000083,0x00000025,0x000000dc,0x0004003d,0x0000003a,0x000000de,
|
||||
0x000000dd,0x00050088,0x0000003a,0x000000df,0x000000d9,0x000000de,0x0003003e,0x000000d6,
|
||||
0x000000df,0x00050041,0x00000017,0x000000e1,0x00000015,0x000000e0,0x0004003d,0x00000006,
|
||||
0x000000e2,0x000000e1,0x000500aa,0x0000001a,0x000000e3,0x000000e2,0x00000016,0x000300f7,
|
||||
0x000000e5,0x00000000,0x000400fa,0x000000e3,0x000000e4,0x000000e5,0x000200f8,0x000000e4,
|
||||
0x0004003d,0x0000003a,0x000000e6,0x000000d6,0x0006000c,0x0000003a,0x000000e7,0x00000001,
|
||||
0x0000001c,0x000000e6,0x0003003e,0x000000d6,0x000000e7,0x000200f9,0x000000e5,0x000200f8,
|
||||
0x000000e5,0x0004003d,0x00000006,0x000000e8,0x0000002e,0x0004003d,0x0000003a,0x000000e9,
|
||||
0x000000d6,0x00060041,0x00000047,0x000000ea,0x000000af,0x00000025,0x000000e8,0x0003003e,
|
||||
0x000000ea,0x000000e9,0x0004003d,0x00000006,0x000000eb,0x0000002e,0x00050080,0x00000006,
|
||||
0x000000ec,0x000000eb,0x00000016,0x0003003e,0x0000002e,0x000000ec,0x000200f9,0x000000d0,
|
||||
0x000200f8,0x000000d0,0x0004003d,0x00000006,0x000000ed,0x000000cc,0x00050080,0x00000006,
|
||||
0x000000ee,0x000000ed,0x00000016,0x0003003e,0x000000cc,0x000000ee,0x000200f9,0x000000cd,
|
||||
0x000200f8,0x000000cf,0x000200f9,0x000000c6,0x000200f8,0x000000c6,0x0004003d,0x00000006,
|
||||
0x000000ef,0x000000c2,0x00050080,0x00000006,0x000000f0,0x000000ef,0x00000016,0x0003003e,
|
||||
0x000000c2,0x000000f0,0x000200f9,0x000000c3,0x000200f8,0x000000c5,0x000100fd,0x00010038
|
||||
};
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -13,10 +13,8 @@ dir = "./"
|
||||
license_decl = \
|
||||
'// This file is part of OpenCV project.\n'\
|
||||
'// It is subject to the license terms in the LICENSE file found in the top-level directory\n'\
|
||||
'// of this distribution and at http://opencv.org/license.html.\n'\
|
||||
'//\n'\
|
||||
'// Copyright (C) 2018, Intel Corporation, all rights reserved.\n'\
|
||||
'// Third party copyrights are property of their respective owners.\n\n'
|
||||
'// of this distribution and at http://opencv.org/license.html.\n\n'
|
||||
|
||||
precomp = '#include \"../../precomp.hpp\"\n'
|
||||
ns_head = '\nnamespace cv { namespace dnn { namespace vkcom {\n\n'
|
||||
ns_tail = '\n}}} // namespace cv::dnn::vkcom\n'
|
||||
@@ -27,6 +25,12 @@ headfile.write('#ifndef OPENCV_DNN_SPV_SHADER_HPP\n')
|
||||
headfile.write('#define OPENCV_DNN_SPV_SHADER_HPP\n\n')
|
||||
headfile.write(ns_head)
|
||||
|
||||
cppfile = open('spv_shader.cpp', 'w')
|
||||
cppfile.write(license_decl)
|
||||
cppfile.write(precomp)
|
||||
cppfile.write('#include \"spv_shader.hpp\"\n')
|
||||
cppfile.write(ns_head)
|
||||
|
||||
cmd_remove = ''
|
||||
null_out = ''
|
||||
if sys.platform.find('win32') != -1:
|
||||
@@ -35,24 +39,30 @@ if sys.platform.find('win32') != -1:
|
||||
elif sys.platform.find('linux') != -1:
|
||||
cmd_remove = 'rm'
|
||||
null_out = ' > /dev/null 2>&1'
|
||||
else:
|
||||
cmd_remove = 'rm'
|
||||
|
||||
insertList = []
|
||||
externList = []
|
||||
|
||||
list = os.listdir(dir)
|
||||
for i in range(0, len(list)):
|
||||
if (os.path.splitext(list[i])[-1] != '.comp'):
|
||||
continue
|
||||
prefix = os.path.splitext(list[i])[0];
|
||||
prefix = os.path.splitext(list[i])[0]
|
||||
path = os.path.join(dir, list[i])
|
||||
|
||||
|
||||
bin_file = prefix + '.tmp'
|
||||
cmd = ' glslangValidator -V ' + path + ' -S comp -o ' + bin_file
|
||||
print('compiling')
|
||||
print('Run cmd = ', cmd)
|
||||
|
||||
if os.system(cmd) != 0:
|
||||
continue;
|
||||
continue
|
||||
size = os.path.getsize(bin_file)
|
||||
|
||||
spv_txt_file = prefix + '.spv'
|
||||
cmd = 'glslangValidator -V ' + path + ' -S comp -o ' + spv_txt_file + ' -x' + null_out
|
||||
cmd = 'glslangValidator -V ' + path + ' -S comp -o ' + spv_txt_file + ' -x' #+ null_out
|
||||
os.system(cmd)
|
||||
|
||||
infile_name = spv_txt_file
|
||||
@@ -78,11 +88,32 @@ for i in range(0, len(list)):
|
||||
|
||||
# write a line into header file
|
||||
fmt = 'extern const unsigned int %s[%d];\n' % (array_name, size/4)
|
||||
headfile.write(fmt)
|
||||
externList.append(fmt)
|
||||
fmt = ' SPVMaps.insert(std::make_pair("%s", std::make_pair(%s, %d)));\n' % (array_name, array_name, size/4)
|
||||
insertList.append(fmt)
|
||||
|
||||
os.system(cmd_remove + ' ' + bin_file)
|
||||
os.system(cmd_remove + ' ' + spv_txt_file)
|
||||
|
||||
for fmt in externList:
|
||||
headfile.write(fmt)
|
||||
|
||||
# write to head file
|
||||
headfile.write('\n')
|
||||
headfile.write('extern std::map<std::string, std::pair<const unsigned int *, size_t> > SPVMaps;\n\n')
|
||||
headfile.write('void initSPVMaps();\n')
|
||||
|
||||
headfile.write(ns_tail)
|
||||
headfile.write('\n#endif /* OPENCV_DNN_SPV_SHADER_HPP */\n')
|
||||
headfile.close();
|
||||
headfile.close()
|
||||
|
||||
# write to cpp file
|
||||
cppfile.write('std::map<std::string, std::pair<const unsigned int *, size_t> > SPVMaps;\n\n')
|
||||
cppfile.write('void initSPVMaps()\n{\n')
|
||||
|
||||
for fmt in insertList:
|
||||
cppfile.write(fmt)
|
||||
|
||||
cppfile.write('}\n')
|
||||
cppfile.write(ns_tail)
|
||||
cppfile.close()
|
||||
@@ -0,0 +1,21 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include "spv_shader.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
std::map<std::string, std::pair<const unsigned int *, size_t> > SPVMaps;
|
||||
|
||||
void initSPVMaps()
|
||||
{
|
||||
SPVMaps.insert(std::make_pair("conv_1x1_fast_spv", std::make_pair(conv_1x1_fast_spv, 3134)));
|
||||
SPVMaps.insert(std::make_pair("gemm_spv", std::make_pair(gemm_spv, 2902)));
|
||||
SPVMaps.insert(std::make_pair("conv_depthwise_3x3_spv", std::make_pair(conv_depthwise_3x3_spv, 1977)));
|
||||
SPVMaps.insert(std::make_pair("conv_implicit_gemm_spv", std::make_pair(conv_implicit_gemm_spv, 3565)));
|
||||
SPVMaps.insert(std::make_pair("conv_depthwise_spv", std::make_pair(conv_depthwise_spv, 2092)));
|
||||
}
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,9 +1,6 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#ifndef OPENCV_DNN_SPV_SHADER_HPP
|
||||
#define OPENCV_DNN_SPV_SHADER_HPP
|
||||
@@ -11,18 +8,15 @@
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
extern const unsigned int dw_conv_spv[1760];
|
||||
extern const unsigned int permute_spv[765];
|
||||
extern const unsigned int conv48_spv[7458];
|
||||
extern const unsigned int conv48_nobias_spv[7182];
|
||||
extern const unsigned int lrn_spv[1845];
|
||||
extern const unsigned int concat_spv[541];
|
||||
extern const unsigned int avg_pool_spv[1538];
|
||||
extern const unsigned int softmax_spv[1496];
|
||||
extern const unsigned int prior_box_spv[1480];
|
||||
extern const unsigned int max_pool_spv[1449];
|
||||
extern const unsigned int relu_spv[502];
|
||||
extern const unsigned int conv_spv[1894];
|
||||
extern const unsigned int conv_1x1_fast_spv[3134];
|
||||
extern const unsigned int gemm_spv[2902];
|
||||
extern const unsigned int conv_depthwise_3x3_spv[1977];
|
||||
extern const unsigned int conv_implicit_gemm_spv[3565];
|
||||
extern const unsigned int conv_depthwise_spv[2092];
|
||||
|
||||
extern std::map<std::string, std::pair<const unsigned int *, size_t> > SPVMaps;
|
||||
|
||||
void initSPVMaps();
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include "common.hpp"
|
||||
#include "internal.hpp"
|
||||
#include "../include/buffer.hpp"
|
||||
|
||||
@@ -16,59 +15,64 @@ namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
static uint32_t findMemoryType(uint32_t memoryTypeBits, VkMemoryPropertyFlags properties)
|
||||
{
|
||||
VkPhysicalDeviceMemoryProperties memoryProperties;
|
||||
|
||||
vkGetPhysicalDeviceMemoryProperties(kPhysicalDevice, &memoryProperties);
|
||||
|
||||
for (uint32_t i = 0; i < memoryProperties.memoryTypeCount; ++i) {
|
||||
for (uint32_t i = 0; i < physicalDeviceMemoryProperties.memoryTypeCount; ++i)
|
||||
{
|
||||
if ((memoryTypeBits & (1 << i)) &&
|
||||
((memoryProperties.memoryTypes[i].propertyFlags & properties) == properties))
|
||||
((physicalDeviceMemoryProperties.memoryTypes[i].propertyFlags & properties) == properties))
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
return uint32_t(-1);
|
||||
}
|
||||
|
||||
Buffer::Buffer(VkBufferUsageFlags usageFlag) : usageFlag_(usageFlag), buffer_(VK_NULL_HANDLE), memory_(VK_NULL_HANDLE)
|
||||
{
|
||||
}
|
||||
|
||||
bool Buffer::init(size_t size_in_bytes, const char* data)
|
||||
{
|
||||
if (buffer_ != VK_NULL_HANDLE)
|
||||
{
|
||||
printf("Warn: Buffer object already inited\n");
|
||||
CV_LOG_WARNING(NULL, "Warn: Buffer object already inited!");
|
||||
return false;
|
||||
}
|
||||
|
||||
VkBufferCreateInfo bufferCreateInfo = {};
|
||||
bufferCreateInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
|
||||
bufferCreateInfo.size = size_in_bytes;
|
||||
bufferCreateInfo.usage = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT;
|
||||
bufferCreateInfo.size = (VkDeviceSize)size_in_bytes;
|
||||
bufferCreateInfo.usage = usageFlag_;
|
||||
bufferCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
|
||||
VK_CHECK_RESULT(vkCreateBuffer(device_, &bufferCreateInfo, NULL, &buffer_));
|
||||
VK_CHECK_RESULT(vkCreateBuffer(kDevice, &bufferCreateInfo, NULL, &buffer_));
|
||||
|
||||
VkMemoryRequirements memoryRequirements;
|
||||
vkGetBufferMemoryRequirements(device_, buffer_, &memoryRequirements);
|
||||
vkGetBufferMemoryRequirements(kDevice, buffer_, &memoryRequirements);
|
||||
|
||||
VkMemoryAllocateInfo allocateInfo = {};
|
||||
allocateInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
|
||||
allocateInfo.allocationSize = memoryRequirements.size;
|
||||
|
||||
// TODO: Try to optimize the memory at discrete graphics card. For AMD and GPU discrete graphics card,
|
||||
// we should use VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT.
|
||||
|
||||
allocateInfo.memoryTypeIndex = findMemoryType(memoryRequirements.memoryTypeBits,
|
||||
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT |
|
||||
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT);
|
||||
VK_CHECK_RESULT(vkAllocateMemory(device_, &allocateInfo, NULL, &memory_));
|
||||
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
|
||||
);
|
||||
VK_CHECK_RESULT(vkAllocateMemory(kDevice, &allocateInfo, NULL, &memory_));
|
||||
|
||||
if (data)
|
||||
{
|
||||
char* dst;
|
||||
VK_CHECK_RESULT(vkMapMemory(device_, memory_, 0, size_in_bytes, 0, (void **)&dst));
|
||||
VK_CHECK_RESULT(vkMapMemory(kDevice, memory_, 0, size_in_bytes, 0, (void **)&dst));
|
||||
memcpy(dst, data, size_in_bytes);
|
||||
vkUnmapMemory(device_, memory_);
|
||||
vkUnmapMemory(kDevice, memory_);
|
||||
}
|
||||
|
||||
VK_CHECK_RESULT(vkBindBufferMemory(device_, buffer_, memory_, 0));
|
||||
VK_CHECK_RESULT(vkBindBufferMemory(kDevice, buffer_, memory_, 0));
|
||||
return true;
|
||||
}
|
||||
|
||||
Buffer::Buffer(VkDevice& device, size_t size_in_bytes, const char* data)
|
||||
Buffer::Buffer(size_t size_in_bytes, const char* data, VkBufferUsageFlags usageFlag) : usageFlag_(usageFlag)
|
||||
{
|
||||
device_ = device;
|
||||
buffer_ = VK_NULL_HANDLE;
|
||||
memory_ = VK_NULL_HANDLE;
|
||||
init(size_in_bytes, data);
|
||||
@@ -76,8 +80,8 @@ Buffer::Buffer(VkDevice& device, size_t size_in_bytes, const char* data)
|
||||
|
||||
Buffer::~Buffer()
|
||||
{
|
||||
vkFreeMemory(device_, memory_, NULL);
|
||||
vkDestroyBuffer(device_, buffer_, NULL);
|
||||
vkFreeMemory(kDevice, memory_, NULL);
|
||||
vkDestroyBuffer(kDevice, buffer_, NULL);
|
||||
}
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
@@ -0,0 +1,182 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
|
||||
/*
|
||||
The code has referenced MNN (https://github.com/alibaba/MNN/blob/2.4.0/source/backend/vulkan/component/VulkanCommandPool.cpp)
|
||||
and adapted for OpenCV by Zihao Mu.
|
||||
Below is the original copyright:
|
||||
*/
|
||||
|
||||
//
|
||||
// VulkanCommandPool.cpp
|
||||
// MNN
|
||||
//
|
||||
// Created by MNN on 2019/01/31.
|
||||
// Copyright © 2018, Alibaba Group Holding Limited
|
||||
//
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include "internal.hpp"
|
||||
#include "../include/command.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
// *********************** CommandBuffer ********************
|
||||
CommandBuffer::CommandBuffer(CommandPool* pool) : cmdPool(pool)
|
||||
{
|
||||
CV_Assert(cmdPool);
|
||||
if (pool->bufferQueue.empty())
|
||||
{
|
||||
VkCommandBufferAllocateInfo cmdBufferCreateInfo {
|
||||
/* .sType = */ VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
|
||||
/* .pNext = */ nullptr,
|
||||
/* .commandPool = */ cmdPool->get(),
|
||||
/* .level = */ VK_COMMAND_BUFFER_LEVEL_PRIMARY,
|
||||
/* .commandBufferCount = */ 1,
|
||||
};
|
||||
vkAllocateCommandBuffers(kDevice, &cmdBufferCreateInfo, &cmdBuffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
cmdBuffer = pool->bufferQueue.front();
|
||||
pool-> bufferQueue.pop();
|
||||
}
|
||||
}
|
||||
|
||||
void CommandBuffer::barrierSource(VkBuffer source, size_t start, size_t size, BarrierType type) const
|
||||
{
|
||||
VkBufferMemoryBarrier barrier;
|
||||
barrier.sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER;
|
||||
barrier.buffer = source;
|
||||
barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
|
||||
barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
|
||||
barrier.offset = start;
|
||||
barrier.pNext = nullptr;
|
||||
barrier.size = size;
|
||||
switch (type) {
|
||||
case READ_WRITE:
|
||||
barrier.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT | VK_ACCESS_TRANSFER_WRITE_BIT;
|
||||
barrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_TRANSFER_READ_BIT;
|
||||
break;
|
||||
case WRITE_WRITE:
|
||||
barrier.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT | VK_ACCESS_TRANSFER_WRITE_BIT;
|
||||
barrier.dstAccessMask = VK_ACCESS_SHADER_WRITE_BIT | VK_ACCESS_SHADER_WRITE_BIT;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
vkCmdPipelineBarrier(cmdBuffer, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT | VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||
VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT | VK_PIPELINE_STAGE_TRANSFER_BIT, 0, 0, nullptr, 1,
|
||||
&barrier, 0, nullptr);
|
||||
}
|
||||
|
||||
void CommandBuffer::beginRecord(VkCommandBufferUsageFlags flag)
|
||||
{
|
||||
cv::AutoLock lock(kContextMtx);
|
||||
VkCommandBufferBeginInfo cmdBufferBeginInfo{
|
||||
/* .sType = */ VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
|
||||
/* .pNext = */ nullptr,
|
||||
/* .flags = */ flag,
|
||||
/* .pInheritanceInfo = */ nullptr,
|
||||
};
|
||||
vkResetCommandBuffer(cmdBuffer, 0);
|
||||
|
||||
VK_CHECK_RESULT(vkBeginCommandBuffer(cmdBuffer, &cmdBufferBeginInfo));
|
||||
}
|
||||
|
||||
void CommandBuffer::endRecord()
|
||||
{
|
||||
VK_CHECK_RESULT(vkEndCommandBuffer(cmdBuffer));
|
||||
}
|
||||
|
||||
CommandBuffer::~CommandBuffer()
|
||||
{
|
||||
CV_Assert(cmdPool);
|
||||
if (needRelease)
|
||||
{
|
||||
vkFreeCommandBuffers(kDevice, cmdPool->get(), 1, &cmdBuffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
cmdPool->bufferQueue.push(cmdBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
// *********************** CommandPool ********************
|
||||
Ptr<CommandPool> CommandPool::create(const VkQueue &q, uint32_t _queueFamilyIndex)
|
||||
{
|
||||
cv::AutoLock lock(kContextMtx);
|
||||
Ptr<CommandPool> cmdPoolInstance = Ptr<CommandPool>(new CommandPool(q, _queueFamilyIndex));
|
||||
|
||||
return cmdPoolInstance;
|
||||
}
|
||||
|
||||
CommandPool::CommandPool(const VkQueue& q, uint32_t _queueFamilyIndex) : queue(q), cmdPool(VK_NULL_HANDLE), queueFamilyIndex(_queueFamilyIndex)
|
||||
{
|
||||
cv::AutoLock lock(kContextMtx);
|
||||
VkCommandPoolCreateInfo cmdPoolCreateInfo{
|
||||
/* .sType = */ VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,
|
||||
/* .pNext = */ nullptr,
|
||||
/* .flags = */ VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,
|
||||
/* .queueFamilyIndex = */ queueFamilyIndex,
|
||||
};
|
||||
vkCreateCommandPool(kDevice, &cmdPoolCreateInfo, nullptr, &cmdPool);
|
||||
}
|
||||
|
||||
void CommandPool::reset()
|
||||
{
|
||||
// reset all bufferQueue.
|
||||
while (!bufferQueue.empty())
|
||||
{
|
||||
auto cmdBuffer = bufferQueue.front();
|
||||
bufferQueue.pop();
|
||||
|
||||
vkFreeCommandBuffers(kDevice, cmdPool, 1, &cmdBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
CommandPool::~CommandPool()
|
||||
{
|
||||
while (!bufferQueue.empty())
|
||||
{
|
||||
auto cmdBuffer = bufferQueue.front();
|
||||
bufferQueue.pop();
|
||||
|
||||
vkFreeCommandBuffers(kDevice, cmdPool, 1, &cmdBuffer);
|
||||
}
|
||||
vkDestroyCommandPool(kDevice, cmdPool, nullptr);
|
||||
}
|
||||
|
||||
Ptr<CommandBuffer> CommandPool::allocBuffer()
|
||||
{
|
||||
auto cmdBuffer = Ptr<CommandBuffer>(new CommandBuffer(this));
|
||||
cmdBuffer->needRelease = false;
|
||||
return cmdBuffer;
|
||||
}
|
||||
|
||||
void CommandPool::submitAndWait(VkCommandBuffer& _buffer) const
|
||||
{
|
||||
auto buffer = _buffer;
|
||||
Fence fence = Fence();
|
||||
VkFence fenceVk = fence.get();
|
||||
VkSubmitInfo submit_info = {
|
||||
/* .sType = */ VK_STRUCTURE_TYPE_SUBMIT_INFO,
|
||||
/* .pNext = */ nullptr,
|
||||
/* .waitSemaphoreCount = */ 0,
|
||||
/* .pWaitSemaphores = */ nullptr,
|
||||
/* .pWaitDstStageMask = */ nullptr,
|
||||
/* .commandBufferCount = */ 1,
|
||||
/* .pCommandBuffers = */ &buffer,
|
||||
/* .signalSemaphoreCount = */ 0,
|
||||
/* .pSignalSemaphores = */ nullptr};
|
||||
// need the queue class.
|
||||
VK_CHECK_RESULT(vkQueueSubmit(queue, 1, &submit_info, fenceVk));
|
||||
VK_CHECK_RESULT(fence.wait());
|
||||
}
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,87 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#ifndef OPENCV_DNN_VKCOM_COMMON_HPP
|
||||
#define OPENCV_DNN_VKCOM_COMMON_HPP
|
||||
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
#include <map>
|
||||
#include <mutex>
|
||||
#include <thread>
|
||||
#include <vector>
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <algorithm>
|
||||
#include <memory>
|
||||
#ifdef HAVE_VULKAN
|
||||
#include <vulkan/vulkan.h>
|
||||
#endif
|
||||
#include "opencv2/core/utils/logger.hpp"
|
||||
#include "../vulkan/vk_functions.hpp"
|
||||
#include "../include/vkcom.hpp"
|
||||
#include "../shader/spv_shader.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
extern VkPhysicalDevice kPhysicalDevice;
|
||||
extern VkDevice kDevice;
|
||||
extern VkQueue kQueue;
|
||||
extern VkCommandPool kCmdPool;
|
||||
extern cv::Mutex kContextMtx;
|
||||
|
||||
enum ShapeIdx
|
||||
{
|
||||
kShapeIdxBatch = 0,
|
||||
kShapeIdxChannel,
|
||||
kShapeIdxHeight,
|
||||
kShapeIdxWidth,
|
||||
};
|
||||
|
||||
#define VK_CHECK_RESULT(f) \
|
||||
{ \
|
||||
if (f != VK_SUCCESS) \
|
||||
{ \
|
||||
CV_LOG_ERROR(NULL, "Vulkan check failed, result = " << (int)f); \
|
||||
CV_Error(Error::StsError, "Vulkan check failed"); \
|
||||
} \
|
||||
}
|
||||
|
||||
#define VKCOM_CHECK_BOOL_RET_VAL(val, ret) \
|
||||
{ \
|
||||
bool res = (val); \
|
||||
if (!res) \
|
||||
{ \
|
||||
CV_LOG_WARNING(NULL, "Check bool failed"); \
|
||||
return ret; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define VKCOM_CHECK_POINTER_RET_VOID(p) \
|
||||
{ \
|
||||
if (NULL == (p)) \
|
||||
{ \
|
||||
CV_LOG_WARNING(NULL, "Check pointer failed"); \
|
||||
return; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define VKCOM_CHECK_POINTER_RET_VAL(p, val) \
|
||||
{ \
|
||||
if (NULL == (p)) \
|
||||
{ \
|
||||
CV_LOG_WARNING(NULL, "Check pointer failed"); \
|
||||
return (val); \
|
||||
} \
|
||||
}
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
|
||||
#endif // OPENCV_DNN_VKCOM_COMMON_HPP
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,28 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#ifndef OPENCV_DNN_VKCOM_CONTEXT_HPP
|
||||
#define OPENCV_DNN_VKCOM_CONTEXT_HPP
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
class Context
|
||||
{
|
||||
public:
|
||||
Context();
|
||||
~Context();
|
||||
};
|
||||
|
||||
void createContext();
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
|
||||
#endif // OPENCV_DNN_VKCOM_CONTEXT_HPP
|
||||
@@ -0,0 +1,49 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include "internal.hpp"
|
||||
#include "../include/fence.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
Fence::Fence()
|
||||
{
|
||||
VkFenceCreateInfo fci{
|
||||
/* .sType = */ VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,
|
||||
/* .pNext = */ nullptr,
|
||||
/* .flags = */ 0,
|
||||
};
|
||||
vkCreateFence(kDevice, &fci, nullptr, &fence);
|
||||
}
|
||||
|
||||
VkFence Fence::get() const
|
||||
{
|
||||
return fence;
|
||||
}
|
||||
|
||||
VkResult Fence::reset() const
|
||||
{
|
||||
return vkResetFences(kDevice, 1, &fence);
|
||||
}
|
||||
|
||||
VkResult Fence::wait() const
|
||||
{
|
||||
auto status = VK_TIMEOUT;
|
||||
|
||||
do {
|
||||
status = vkWaitForFences(kDevice, 1, &fence, VK_TRUE, 5000000000);
|
||||
} while (status == VK_TIMEOUT);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
Fence::~Fence()
|
||||
{
|
||||
vkDestroyFence(kDevice, fence, nullptr);
|
||||
}
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,153 +1,54 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include "common.hpp"
|
||||
#include "internal.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
std::vector<uint32_t> compile(const std::string& name,
|
||||
shaderc_shader_kind kind,
|
||||
const std::string& data)
|
||||
bool checkFormat(Format fmt)
|
||||
{
|
||||
std::vector<uint32_t> result;
|
||||
#ifdef USE_SHADERC
|
||||
shaderc::Compiler compiler;
|
||||
shaderc::CompileOptions options;
|
||||
|
||||
// Like -DMY_DEFINE=1
|
||||
//options.AddMacroDefinition("MY_DEFINE", "1");
|
||||
options.SetGenerateDebugInfo();
|
||||
options.SetTargetEnvironment(shaderc_target_env_vulkan, shaderc_env_version_vulkan_1_1);
|
||||
shaderc::SpvCompilationResult module = compiler.CompileGlslToSpv(
|
||||
data.c_str(), data.size(), kind, name.c_str(), options);
|
||||
|
||||
if (module.GetCompilationStatus() !=
|
||||
shaderc_compilation_status_success) {
|
||||
std::cerr << module.GetErrorMessage();
|
||||
}
|
||||
|
||||
//std::vector<uint32_t> result(module.cbegin(), module.cend());
|
||||
result.assign(module.cbegin(), module.cend());
|
||||
return result;
|
||||
#else
|
||||
assert(0);
|
||||
return result;
|
||||
#endif
|
||||
return (fmt > -1 && fmt < kFormatNum) ? true : false;
|
||||
}
|
||||
|
||||
void bindTensor(VkDevice& device, Tensor& tensor, int binding, VkDescriptorSet descriptor_set)
|
||||
size_t elementSize(Format fmt)
|
||||
{
|
||||
VkDescriptorBufferInfo desc_buffer_info = {};
|
||||
desc_buffer_info.buffer = tensor.getBuffer()->getVkBuffer();
|
||||
desc_buffer_info.offset = 0;
|
||||
desc_buffer_info.range = tensor.size();
|
||||
|
||||
VkWriteDescriptorSet write_descriptor_set = {};
|
||||
write_descriptor_set.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
|
||||
write_descriptor_set.dstSet = descriptor_set;
|
||||
write_descriptor_set.dstBinding = binding;
|
||||
write_descriptor_set.descriptorCount = 1;
|
||||
write_descriptor_set.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
|
||||
write_descriptor_set.pBufferInfo = &desc_buffer_info;
|
||||
|
||||
vkUpdateDescriptorSets(device, 1, &write_descriptor_set, 0, NULL);
|
||||
}
|
||||
|
||||
void computeConvOutputShapeAndPadding(const PaddingMode& padding_mode,
|
||||
int& padding_top, int& padding_left,
|
||||
const int& in_h, const int& in_w,
|
||||
const int& filter_h, const int& filter_w,
|
||||
const int& dilation_h, const int& dilation_w,
|
||||
const int& stride_h, const int& stride_w,
|
||||
int& out_h, int& out_w)
|
||||
{
|
||||
if (padding_mode == kPaddingModeValid)
|
||||
if (fmt == kFormatFp32 || fmt == kFormatInt32)
|
||||
{
|
||||
padding_top = 0;
|
||||
padding_left = 0;
|
||||
out_h = ceil((in_h - (filter_h - 1) * dilation_h) / stride_h);
|
||||
out_w = ceil((in_w - (filter_w - 1) * dilation_w) / stride_w);
|
||||
return 4;
|
||||
}
|
||||
else if (padding_mode == kPaddingModeSame)
|
||||
else if (fmt >= 0 && fmt < kFormatNum)
|
||||
{
|
||||
padding_top = ((filter_h - 1) * dilation_h + 1) / 2;
|
||||
padding_left = ((filter_w - 1) * dilation_w + 1) / 2;
|
||||
out_h = ceil(in_h / stride_h);
|
||||
out_w = ceil(in_w / stride_w);
|
||||
}
|
||||
else if (padding_mode == kPaddingModeCaffe)
|
||||
{
|
||||
const int filter_h_actual = dilation_h * (filter_h - 1) + 1;
|
||||
const int filter_w_actual = dilation_w * (filter_w - 1) + 1;
|
||||
out_h = (in_h + 2 * padding_top - filter_h_actual) / stride_h + 1;
|
||||
out_w = (in_w + 2 * padding_left - filter_w_actual) / stride_w + 1;
|
||||
CV_LOG_WARNING(NULL, format("Unsupported format %d", fmt));
|
||||
}
|
||||
else
|
||||
{
|
||||
CV_Error(Error::StsError, format("Invalid padding mode:%d", padding_mode));
|
||||
CV_Error(Error::StsError, format("Invalid format %d", fmt));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void computePoolOutputShape(const PaddingMode& padding_mode,
|
||||
const int& padding_top, const int& padding_left,
|
||||
const int& in_h, const int& in_w,
|
||||
const int& filter_h, const int& filter_w,
|
||||
const int& stride_h, const int& stride_w,
|
||||
int& out_h, int& out_w)
|
||||
int shapeCount(const Shape& shape, int start, int end)
|
||||
{
|
||||
if (padding_mode == kPaddingModeValid)
|
||||
{
|
||||
assert(padding_top == 0);
|
||||
assert(padding_left == 0);
|
||||
out_h = ceil((in_h - (filter_h - 1)) / stride_h);
|
||||
out_w = ceil((in_h - (filter_w - 1)) / stride_w);
|
||||
}
|
||||
else if (padding_mode == kPaddingModeSame)
|
||||
{
|
||||
const int padding_top_ = filter_h / 2;
|
||||
const int padding_left_ = filter_w / 2;
|
||||
CV_Assert(padding_top == padding_top_);
|
||||
CV_Assert(padding_left == padding_left_);
|
||||
out_h = ceil(in_h / stride_h);
|
||||
out_w = ceil(in_h / stride_w);
|
||||
}
|
||||
else if (padding_mode == kPaddingModeCaffe)
|
||||
{
|
||||
int out_h_ = static_cast<int>(ceil(static_cast<float>(
|
||||
in_h + 2 * padding_top - filter_h) / stride_h)) + 1;
|
||||
int out_w_ = static_cast<int>(ceil(static_cast<float>(
|
||||
in_h + 2 * padding_left - filter_w) / stride_w)) + 1;
|
||||
if (start == -1) start = 0;
|
||||
if (end == -1) end = (int)shape.size();
|
||||
|
||||
if (padding_top || padding_left)
|
||||
{
|
||||
// If we have padding, ensure that the last pooling starts strictly
|
||||
// inside the image (instead of at the padding); otherwise clip the last.
|
||||
if ((out_h_ - 1) * stride_h >= in_h + padding_top) {
|
||||
--out_h_;
|
||||
}
|
||||
if ((out_w - 1) * stride_h >= in_h + padding_left) {
|
||||
--out_w;
|
||||
}
|
||||
assert((out_h_ - 1) * stride_h < in_h + padding_top);
|
||||
assert((out_w_ - 1) * stride_w < in_h + padding_left);
|
||||
}
|
||||
out_h = out_h_;
|
||||
out_w = out_w_;
|
||||
}
|
||||
else
|
||||
if (shape.empty())
|
||||
return 0;
|
||||
|
||||
int elems = 1;
|
||||
assert(start <= (int)shape.size() &&
|
||||
end <= (int)shape.size() &&
|
||||
start <= end);
|
||||
for(int i = start; i < end; i++)
|
||||
{
|
||||
CV_Error(Error::StsError, format("Invalid padding mode:%d", padding_mode));
|
||||
elems *= shape[i];
|
||||
}
|
||||
return elems;
|
||||
}
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -5,87 +5,93 @@
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#ifndef OPENCV_DNN_VKCOM_INTERNAL_HPP
|
||||
#define OPENCV_DNN_VKCOM_INTERNAL_HPP
|
||||
#ifndef OPENCV_DNN_VKCOM_COMMON_HPP
|
||||
#define OPENCV_DNN_VKCOM_COMMON_HPP
|
||||
|
||||
#include <float.h>
|
||||
#include "../include/vkcom.hpp"
|
||||
#include "context.hpp"
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
#include <map>
|
||||
#include <mutex>
|
||||
#include <thread>
|
||||
#include <vector>
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <algorithm>
|
||||
#include <memory>
|
||||
|
||||
#ifdef USE_SHADERC
|
||||
#include "shaderc/shaderc.hpp"
|
||||
#else
|
||||
typedef int shaderc_shader_kind;
|
||||
#define shaderc_compute_shader 0
|
||||
#ifdef HAVE_VULKAN
|
||||
#include <vulkan/vulkan.h>
|
||||
#endif
|
||||
|
||||
#include "opencv2/core/utils/logger.hpp"
|
||||
#include "../vulkan/vk_functions.hpp"
|
||||
#include "../include/vkcom.hpp"
|
||||
#include "../shader/spv_shader.hpp"
|
||||
//#include "../vulkan/vk_functions.hpp"
|
||||
//#include "../vulkan/vk_loader.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
extern VkQueue kQueue;
|
||||
extern VkDevice kDevice;
|
||||
extern cv::Mutex kContextMtx;
|
||||
extern Ptr<CommandPool> cmdPoolPtr;
|
||||
extern Ptr<PipelineFactory> pipelineFactoryPtr;
|
||||
extern VkPhysicalDeviceMemoryProperties physicalDeviceMemoryProperties;
|
||||
|
||||
Context* getContext();
|
||||
VkPhysicalDevice getPhysicalDevice();
|
||||
std::vector<uint32_t> compile(const std::string& name,
|
||||
shaderc_shader_kind kind,
|
||||
const std::string& data);
|
||||
void bindTensor(VkDevice& device, Tensor& tensor, int binding, VkDescriptorSet descriptor_set);
|
||||
void computeConvOutputShapeAndPadding(const PaddingMode& padding_mode,
|
||||
int& padding_top, int& padding_left,
|
||||
const int& in_h, const int& in_w,
|
||||
const int& filter_h, const int& filter_w,
|
||||
const int& dilation_h, const int& dilation_w,
|
||||
const int& stride_h, const int& stride_w,
|
||||
int& out_h, int& out_w);
|
||||
void computePoolOutputShape(const PaddingMode& padding_mode,
|
||||
const int& padding_top, const int& padding_left,
|
||||
const int& in_h, const int& in_w,
|
||||
const int& filter_h, const int& filter_w,
|
||||
const int& stride_h, const int& stride_w,
|
||||
int& out_h, int& out_w);
|
||||
|
||||
inline bool checkFormat(Format fmt)
|
||||
|
||||
enum ShapeIdx
|
||||
{
|
||||
return (fmt > -1 && fmt < kFormatNum) ? true : false;
|
||||
kShapeIdxBatch = 0,
|
||||
kShapeIdxChannel,
|
||||
kShapeIdxHeight,
|
||||
kShapeIdxWidth,
|
||||
};
|
||||
|
||||
#define VK_CHECK_RESULT(f) \
|
||||
{ \
|
||||
if (f != VK_SUCCESS) \
|
||||
{ \
|
||||
CV_LOG_ERROR(NULL, "Vulkan check failed, result = " << (int)f); \
|
||||
CV_Error(Error::StsError, "Vulkan check failed"); \
|
||||
} \
|
||||
}
|
||||
|
||||
inline size_t elementSize(Format fmt)
|
||||
{
|
||||
if (fmt == kFormatFp32 || fmt == kFormatInt32)
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
else if (fmt >= 0 && fmt < kFormatNum)
|
||||
{
|
||||
CV_LOG_WARNING(NULL, format("Unsupported format %d", fmt));
|
||||
}
|
||||
else
|
||||
{
|
||||
CV_Error(Error::StsError, format("Invalid format %d", fmt));
|
||||
}
|
||||
return 0;
|
||||
#define VKCOM_CHECK_BOOL_RET_VAL(val, ret) \
|
||||
{ \
|
||||
bool res = (val); \
|
||||
if (!res) \
|
||||
{ \
|
||||
CV_LOG_WARNING(NULL, "Check bool failed"); \
|
||||
return ret; \
|
||||
} \
|
||||
}
|
||||
|
||||
inline int shapeCount(const Shape& shape, int start = -1, int end = -1)
|
||||
{
|
||||
if (start == -1) start = 0;
|
||||
if (end == -1) end = (int)shape.size();
|
||||
|
||||
if (shape.empty())
|
||||
return 0;
|
||||
|
||||
int elems = 1;
|
||||
assert(start <= (int)shape.size() &&
|
||||
end <= (int)shape.size() &&
|
||||
start <= end);
|
||||
for(int i = start; i < end; i++)
|
||||
{
|
||||
elems *= shape[i];
|
||||
}
|
||||
return elems;
|
||||
#define VKCOM_CHECK_POINTER_RET_VOID(p) \
|
||||
{ \
|
||||
if (NULL == (p)) \
|
||||
{ \
|
||||
CV_LOG_WARNING(NULL, "Check pointer failed"); \
|
||||
return; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define VKCOM_CHECK_POINTER_RET_VAL(p, val) \
|
||||
{ \
|
||||
if (NULL == (p)) \
|
||||
{ \
|
||||
CV_LOG_WARNING(NULL, "Check pointer failed"); \
|
||||
return (val); \
|
||||
} \
|
||||
}
|
||||
|
||||
bool checkFormat(Format fmt);
|
||||
size_t elementSize(Format fmt);
|
||||
int shapeCount(const Shape& shape, int start = -1, int end = -1);
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
|
||||
#endif // OPENCV_DNN_VKCOM_INTERNAL_HPP
|
||||
#endif // OPENCV_DNN_VKCOM_COMMON_HPP
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include "common.hpp"
|
||||
#include "internal.hpp"
|
||||
#include "../include/op_base.hpp"
|
||||
|
||||
@@ -16,176 +15,10 @@ namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
OpBase::OpBase()
|
||||
{
|
||||
createContext();
|
||||
device_ = kDevice;
|
||||
pipeline_ = VK_NULL_HANDLE;
|
||||
cmd_buffer_ = VK_NULL_HANDLE;
|
||||
descriptor_pool_ = VK_NULL_HANDLE;
|
||||
descriptor_set_ = VK_NULL_HANDLE;
|
||||
descriptor_set_layout_ = VK_NULL_HANDLE;
|
||||
pipeline_layout_ = VK_NULL_HANDLE;
|
||||
module_ = VK_NULL_HANDLE;
|
||||
}
|
||||
|
||||
OpBase::~OpBase()
|
||||
{
|
||||
vkDestroyShaderModule(device_, module_, NULL);
|
||||
vkDestroyDescriptorPool(device_, descriptor_pool_, NULL);
|
||||
vkDestroyDescriptorSetLayout(device_, descriptor_set_layout_, NULL);
|
||||
vkDestroyPipeline(device_, pipeline_, NULL);
|
||||
vkDestroyPipelineLayout(device_, pipeline_layout_, NULL);
|
||||
}
|
||||
|
||||
void OpBase::initVulkanThing(int buffer_num)
|
||||
{
|
||||
createDescriptorSetLayout(buffer_num);
|
||||
createDescriptorSet(buffer_num);
|
||||
createCommandBuffer();
|
||||
}
|
||||
|
||||
void OpBase::createDescriptorSetLayout(int buffer_num)
|
||||
{
|
||||
if (buffer_num <= 0)
|
||||
return;
|
||||
std::vector<VkDescriptorSetLayoutBinding> bindings(buffer_num);
|
||||
for (int i = 0; i < buffer_num; i++)
|
||||
{
|
||||
bindings[i].binding = i;
|
||||
bindings[i].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
|
||||
bindings[i].descriptorCount = 1;
|
||||
bindings[i].stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
|
||||
}
|
||||
VkDescriptorSetLayoutCreateInfo info = {};
|
||||
info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
|
||||
info.bindingCount = buffer_num;
|
||||
info.pBindings = &bindings[0];
|
||||
VK_CHECK_RESULT(vkCreateDescriptorSetLayout(device_, &info, NULL, &descriptor_set_layout_));
|
||||
}
|
||||
|
||||
void OpBase::createDescriptorSet(int buffer_num)
|
||||
{
|
||||
VkDescriptorPoolSize pool_size = {};
|
||||
pool_size.type = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
|
||||
pool_size.descriptorCount = buffer_num;
|
||||
|
||||
VkDescriptorPoolCreateInfo info = {};
|
||||
info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
|
||||
info.maxSets = 1;
|
||||
info.poolSizeCount = 1;
|
||||
info.pPoolSizes = &pool_size;
|
||||
VK_CHECK_RESULT(vkCreateDescriptorPool(device_, &info, NULL, &descriptor_pool_));
|
||||
|
||||
VkDescriptorSetAllocateInfo allocate_info = {};
|
||||
allocate_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
|
||||
allocate_info.descriptorPool = descriptor_pool_;
|
||||
allocate_info.descriptorSetCount = 1;
|
||||
allocate_info.pSetLayouts = &descriptor_set_layout_;
|
||||
VK_CHECK_RESULT(vkAllocateDescriptorSets(device_, &allocate_info, &descriptor_set_));
|
||||
}
|
||||
|
||||
void OpBase::createShaderModule(const uint32_t* spv, size_t sz, const std::string& source)
|
||||
{
|
||||
VkShaderModuleCreateInfo create_info = {};
|
||||
create_info.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
|
||||
if (spv)
|
||||
{
|
||||
create_info.pCode = spv;
|
||||
create_info.codeSize = sz;
|
||||
}
|
||||
else
|
||||
{
|
||||
// online compilation
|
||||
std::vector<uint32_t> code;
|
||||
code = compile("shader", shaderc_compute_shader, source);
|
||||
create_info.pCode = code.data();
|
||||
create_info.codeSize = sizeof(uint32_t) * code.size();
|
||||
}
|
||||
VK_CHECK_RESULT(vkCreateShaderModule(device_, &create_info, NULL, &module_));
|
||||
}
|
||||
|
||||
void OpBase::createPipeline(size_t push_constants_size, VkSpecializationInfo* specialization_info)
|
||||
{
|
||||
// create pipeline
|
||||
VkPipelineShaderStageCreateInfo stage_create_info = {};
|
||||
stage_create_info.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
|
||||
stage_create_info.stage = VK_SHADER_STAGE_COMPUTE_BIT;
|
||||
stage_create_info.module = module_;
|
||||
stage_create_info.pName = "main";
|
||||
stage_create_info.pSpecializationInfo = specialization_info;
|
||||
VkPushConstantRange push_constant_ranges[1] = {};
|
||||
push_constant_ranges[0].stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
|
||||
push_constant_ranges[0].offset = 0;
|
||||
push_constant_ranges[0].size = push_constants_size;
|
||||
|
||||
VkPipelineLayoutCreateInfo pipeline_layout_create_info = {};
|
||||
pipeline_layout_create_info.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
|
||||
if (push_constants_size != 0)
|
||||
{
|
||||
pipeline_layout_create_info.pushConstantRangeCount = 1;
|
||||
pipeline_layout_create_info.pPushConstantRanges = push_constant_ranges;
|
||||
}
|
||||
pipeline_layout_create_info.setLayoutCount = 1;
|
||||
pipeline_layout_create_info.pSetLayouts = &descriptor_set_layout_;
|
||||
VK_CHECK_RESULT(vkCreatePipelineLayout(device_, &pipeline_layout_create_info,
|
||||
NULL, &pipeline_layout_));
|
||||
|
||||
VkComputePipelineCreateInfo pipeline_create_info = {};
|
||||
pipeline_create_info.sType = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO;
|
||||
pipeline_create_info.stage = stage_create_info;
|
||||
pipeline_create_info.layout = pipeline_layout_;
|
||||
VK_CHECK_RESULT(vkCreateComputePipelines(device_, VK_NULL_HANDLE,
|
||||
1, &pipeline_create_info,
|
||||
NULL, &pipeline_));
|
||||
}
|
||||
|
||||
void OpBase::createCommandBuffer()
|
||||
{
|
||||
VkCommandBufferAllocateInfo info = {};
|
||||
info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
|
||||
info.commandPool = kCmdPool;
|
||||
info.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY;
|
||||
info.commandBufferCount = 1;
|
||||
VK_CHECK_RESULT(vkAllocateCommandBuffers(device_, &info, &cmd_buffer_));
|
||||
}
|
||||
|
||||
void OpBase::recordCommandBuffer(void* push_constants, size_t push_constants_size)
|
||||
{
|
||||
VkCommandBufferBeginInfo beginInfo = {};
|
||||
beginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
|
||||
beginInfo.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
|
||||
cv::AutoLock lock(kContextMtx);
|
||||
VK_CHECK_RESULT(vkBeginCommandBuffer(cmd_buffer_, &beginInfo));
|
||||
if (push_constants)
|
||||
vkCmdPushConstants(cmd_buffer_, pipeline_layout_,
|
||||
VK_SHADER_STAGE_COMPUTE_BIT, 0,
|
||||
push_constants_size, push_constants);
|
||||
vkCmdBindPipeline(cmd_buffer_, VK_PIPELINE_BIND_POINT_COMPUTE, pipeline_);
|
||||
vkCmdBindDescriptorSets(cmd_buffer_, VK_PIPELINE_BIND_POINT_COMPUTE,
|
||||
pipeline_layout_, 0, 1, &descriptor_set_, 0, NULL);
|
||||
vkCmdDispatch(cmd_buffer_, group_x_, group_y_, group_z_);
|
||||
|
||||
VK_CHECK_RESULT(vkEndCommandBuffer(cmd_buffer_));
|
||||
}
|
||||
|
||||
void OpBase::runCommandBuffer()
|
||||
{
|
||||
VkSubmitInfo submit_info = {};
|
||||
submit_info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
|
||||
submit_info.commandBufferCount = 1;
|
||||
submit_info.pCommandBuffers = &cmd_buffer_;
|
||||
|
||||
VkFence fence;
|
||||
VkFenceCreateInfo fence_create_info_ = {};
|
||||
fence_create_info_.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO;
|
||||
fence_create_info_.flags = 0;
|
||||
|
||||
VK_CHECK_RESULT(vkCreateFence(device_, &fence_create_info_, NULL, &fence));
|
||||
{
|
||||
cv::AutoLock lock(kContextMtx);
|
||||
VK_CHECK_RESULT(vkQueueSubmit(kQueue, 1, &submit_info, fence));
|
||||
}
|
||||
VK_CHECK_RESULT(vkWaitForFences(device_, 1, &fence, VK_TRUE, 100000000000));
|
||||
vkDestroyFence(device_, fence, NULL);
|
||||
}
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
@@ -1,138 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include "common.hpp"
|
||||
#include "internal.hpp"
|
||||
#include "../include/op_concat.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
#define LOCAL_SZ_X 256
|
||||
|
||||
struct ConcatParam {
|
||||
int out_concat_axis;
|
||||
int accumulated_concat_axis;
|
||||
int concat_size;
|
||||
int total_concat_size;
|
||||
int thread_num;
|
||||
};
|
||||
|
||||
OpConcat::OpConcat(const int axis)
|
||||
{
|
||||
init(axis);
|
||||
type_ = "Concat";
|
||||
}
|
||||
|
||||
bool OpConcat::init(const int axis)
|
||||
{
|
||||
axis_ = axis;
|
||||
#define BUFFER_NUM 2
|
||||
OpBase::initVulkanThing(BUFFER_NUM);
|
||||
return true;
|
||||
}
|
||||
|
||||
void OpConcat::reshapeOutTensor(std::vector<Tensor *>& in, Tensor& out)
|
||||
{
|
||||
int sum_axis = 0;
|
||||
|
||||
for (int i = 0; i < in.size(); ++i)
|
||||
{
|
||||
sum_axis += in[i]->dimSize(axis_);
|
||||
}
|
||||
|
||||
Shape shape = in[0]->getShape();
|
||||
shape[axis_] = sum_axis;
|
||||
out.reshape(NULL, shape);
|
||||
}
|
||||
|
||||
bool OpConcat::forward(std::vector<Tensor>& ins,
|
||||
std::vector<Tensor>& blobs,
|
||||
std::vector<Tensor>& outs)
|
||||
{
|
||||
return forward(ins, outs[0]);
|
||||
}
|
||||
|
||||
bool OpConcat::forward(std::vector<Tensor>& ins, Tensor& out)
|
||||
{
|
||||
int input_num = ins.size();
|
||||
Tensor& first_tensor = ins[0];
|
||||
int sum_axis = first_tensor.dimSize(axis_);
|
||||
int dim_num = first_tensor.dimNum();
|
||||
for (int i = 1; i < input_num; ++i)
|
||||
{
|
||||
Tensor& tensor = ins[i];
|
||||
assert(tensor.dimNum() == dim_num);
|
||||
for (int d = 0; d < dim_num; ++d)
|
||||
{
|
||||
if (d == axis_)
|
||||
{
|
||||
sum_axis += tensor.dimSize(axis_);;
|
||||
}
|
||||
else
|
||||
{
|
||||
assert(first_tensor.dimSize(d) == tensor.dimSize(d));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
assert(out.dimSize(axis_) == sum_axis);
|
||||
for (int d = 0; d < dim_num; ++d)
|
||||
{
|
||||
if (d != axis_)
|
||||
{
|
||||
assert(out.dimSize(d) == first_tensor.dimSize(d));
|
||||
}
|
||||
}
|
||||
out_concat_axis_ = sum_axis;
|
||||
concat_size_ = out.count(axis_ + 1);
|
||||
|
||||
if (pipeline_ == VK_NULL_HANDLE)
|
||||
{
|
||||
config_.local_size_x = LOCAL_SZ_X;
|
||||
config_.block_height = 1;
|
||||
config_.block_width = 1;
|
||||
config_.block_depth = 1;
|
||||
createShaderModule(concat_spv, sizeof(concat_spv));
|
||||
createPipeline(sizeof(ConcatParam));
|
||||
}
|
||||
|
||||
accumulated_concat_axis_ = 0;
|
||||
for (int i = 0; i < input_num; i++)
|
||||
{
|
||||
bindTensor(device_, ins[i], 0, descriptor_set_);
|
||||
bindTensor(device_, out, 1, descriptor_set_);
|
||||
total_concat_size_ = ins[i].count(axis_);
|
||||
thread_num_ = ins[i].count();
|
||||
computeGroupCount();
|
||||
ConcatParam param = {out_concat_axis_,
|
||||
accumulated_concat_axis_,
|
||||
concat_size_,
|
||||
total_concat_size_,
|
||||
thread_num_};
|
||||
recordCommandBuffer((void *)¶m, sizeof(ConcatParam));
|
||||
runCommandBuffer();
|
||||
accumulated_concat_axis_ += ins[i].dimSize(axis_);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OpConcat::computeGroupCount()
|
||||
{
|
||||
group_x_ = alignSize(thread_num_, config_.local_size_x) / config_.local_size_x;
|
||||
group_y_ = 1;
|
||||
group_z_ = 1;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,287 +1,221 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include "common.hpp"
|
||||
#include "internal.hpp"
|
||||
#include "../include/op_conv.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
#define BLOCK_SIZE 64
|
||||
|
||||
#define DEFAULT_LOCAL_SZ 256
|
||||
#define MAX_COMPUTE_GFLOPS 10
|
||||
// TODO: query group count from vulkan device
|
||||
#define MAX_GROUP_COUNT_X 65535
|
||||
#define MAX_GROUP_COUNT_Y 65535
|
||||
#define MAX_GROUP_COUNT_Z 65535
|
||||
|
||||
struct ShaderConstant {
|
||||
int lsz_x;
|
||||
int lsz_y;
|
||||
int lsz_z;
|
||||
int in_h;
|
||||
int in_w;
|
||||
int out_w;
|
||||
int stride_h;
|
||||
int stride_w;
|
||||
int pad_h;
|
||||
int pad_w;
|
||||
int filter_h;
|
||||
int filter_w;
|
||||
int channels;
|
||||
int batch;
|
||||
int m;
|
||||
int k;
|
||||
int n;
|
||||
int tail_m;
|
||||
int dilation_h;
|
||||
int dilation_w;
|
||||
};
|
||||
|
||||
struct ShaderParam {
|
||||
int in_h;
|
||||
int in_w;
|
||||
int out_h;
|
||||
int out_w;
|
||||
int stride_h;
|
||||
int stride_w;
|
||||
int pad_h;
|
||||
int pad_w;
|
||||
int filter_h;
|
||||
int filter_w;
|
||||
int dilation_h;
|
||||
int dilation_w;
|
||||
int channels;
|
||||
int batch;
|
||||
int has_bias;
|
||||
int M;
|
||||
int K;
|
||||
int N;
|
||||
int basic_shader_batch_idx;
|
||||
int basic_shader_partition_idx;
|
||||
int basic_shader_partition_size;
|
||||
};
|
||||
|
||||
OpConv::OpConv(const int out_channel, const bool has_bias,
|
||||
const int* filter_size, const int* pad,
|
||||
const int* stride, const int* dilation,
|
||||
const int activation, const int group,
|
||||
const int padding_mode)
|
||||
OpConv::OpConv(const Mat& weightBlob, const std::vector<float>& biasvec, int _activType, const int _ngroups, const int _K,
|
||||
const int _C, const int _Hk, const int _Wk, const int _stride_h, const int _stride_w,
|
||||
const int _dilation_h, const int _dilation_w, const int _pad_left, const int _pad_top):
|
||||
activ((FusedActivationType)_activType), ngroups(_ngroups), K(_K), C(_C), Hk(_Hk), Wk(_Wk), stride_h(_stride_h), stride_w(_stride_w),
|
||||
dilation_h(_dilation_h), dilation_w(_dilation_w), pad_left(_pad_left), pad_top(_pad_top)
|
||||
{
|
||||
init(out_channel, has_bias, filter_size, pad,
|
||||
stride, dilation, activation, group, padding_mode);
|
||||
type_ = "Conv";
|
||||
}
|
||||
type_ = kOpTypeConv;
|
||||
CV_Assert(!weightBlob.empty());
|
||||
|
||||
void OpConv::reshapeOutTensor(Tensor& in, Tensor& out)
|
||||
{
|
||||
Shape in_shape = in.getShape();
|
||||
batch_ = in_shape[kShapeIdxBatch];
|
||||
in_height_ = in_shape[kShapeIdxHeight];
|
||||
in_width_ = in_shape[kShapeIdxWidth];
|
||||
computeConvOutputShapeAndPadding(padding_mode_, padding_top_, padding_left_,
|
||||
in_height_, in_width_,
|
||||
filter_height_, filter_width_,
|
||||
dilation_height_, dilation_width_,
|
||||
stride_height_, stride_width_,
|
||||
out_height_, out_width_);
|
||||
Shape shape = {batch_, out_channel_, out_height_, out_width_};
|
||||
out.reshape(NULL, shape);
|
||||
}
|
||||
Kg = K/ngroups, Cg = max(C/ngroups, 1);
|
||||
ksize = Hk * Wk;
|
||||
CgHkWk = Cg * ksize;
|
||||
fast_1x1 = ksize == 1 && stride_w == 1 && stride_h == 1 && pad_top == 0 && pad_left == 0;
|
||||
|
||||
bool OpConv::init(const int out_channel, const bool has_bias,
|
||||
const int* filter_size, const int* pad,
|
||||
const int* stride, const int* dilation,
|
||||
const int activation, const int group,
|
||||
const int padding_mode)
|
||||
{
|
||||
out_channel_ = out_channel;
|
||||
filter_height_ = filter_size[0];
|
||||
filter_width_ = filter_size[1];
|
||||
padding_top_ = pad[0];
|
||||
padding_left_ = pad[1];
|
||||
stride_height_ = stride[0];
|
||||
stride_width_ = stride[1];
|
||||
dilation_height_ = dilation[0];
|
||||
dilation_width_ = dilation[1];
|
||||
padding_mode_ = (PaddingMode)padding_mode;
|
||||
has_bias_ = has_bias ? 1 : 0;
|
||||
activation_ = activation;
|
||||
group_ = group;
|
||||
|
||||
#define BUFFER_NUM 4
|
||||
OpBase::initVulkanThing(BUFFER_NUM);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OpConv::forward(std::vector<Tensor>& ins,
|
||||
std::vector<Tensor>& blobs,
|
||||
std::vector<Tensor>& outs)
|
||||
{
|
||||
std::vector<int> shape = {1};
|
||||
Tensor bias(0, shape);
|
||||
|
||||
if (has_bias_)
|
||||
if (ngroups > 1 && ngroups == K && ngroups == C)
|
||||
{
|
||||
assert(blobs.size() == 2);
|
||||
bias = blobs[1];
|
||||
}
|
||||
|
||||
return forward(ins[0], blobs[0], bias, outs[0]);
|
||||
}
|
||||
|
||||
bool OpConv::forward(Tensor& in, Tensor& filter_weights, Tensor& bias, Tensor& out)
|
||||
{
|
||||
Shape in_shape = in.getShape();
|
||||
Shape out_shape = out.getShape();
|
||||
batch_ = in_shape[kShapeIdxBatch];
|
||||
in_height_ = in_shape[kShapeIdxHeight];
|
||||
in_width_ = in_shape[kShapeIdxWidth];
|
||||
in_channel_= in_shape[kShapeIdxChannel];
|
||||
out_height_ = out_shape[kShapeIdxHeight];
|
||||
out_width_ = out_shape[kShapeIdxWidth];
|
||||
int M = out_height_ * out_width_;
|
||||
int K = filter_height_ * filter_width_ * in_channel_;
|
||||
int N = out_channel_;
|
||||
|
||||
if (pipeline_ == VK_NULL_HANDLE)
|
||||
{
|
||||
config_.local_size_x = DEFAULT_LOCAL_SZ;
|
||||
config_.local_size_y = 1;
|
||||
config_.local_size_z = 1;
|
||||
config_.block_height = 1;
|
||||
config_.block_width = 1;
|
||||
config_.block_depth = 1;
|
||||
if ((N % 8 == 0) && (K % 4 == 0) && (M % 4) == 0)
|
||||
{
|
||||
assert(group_ == 1); // TODO: support group > 1
|
||||
config_.shader_type = kConvShaderType48;
|
||||
config_.local_size_x = 1;
|
||||
config_.local_size_y = DEFAULT_LOCAL_SZ;
|
||||
config_.local_size_z = 1;
|
||||
config_.block_height = 4;
|
||||
config_.block_width = 8;
|
||||
has_bias_ ? createShaderModule(conv48_spv, sizeof(conv48_spv))
|
||||
: createShaderModule(conv48_nobias_spv, sizeof(conv48_nobias_spv));
|
||||
// specialization constants
|
||||
VkSpecializationInfo spec_info;
|
||||
ShaderConstant shader_constant;
|
||||
#define SPECIALIZATION_CONST_NUM 20
|
||||
VkSpecializationMapEntry entry[SPECIALIZATION_CONST_NUM];
|
||||
#define SET_SPEC_CONST_ENTRY(n_, id_, offset_, size_) \
|
||||
entry[n_].constantID = id_; \
|
||||
entry[n_].offset = offset_; \
|
||||
entry[n_].size = size_;
|
||||
|
||||
shader_constant.lsz_x = config_.local_size_x;
|
||||
shader_constant.lsz_y = config_.local_size_y;
|
||||
shader_constant.lsz_z = config_.local_size_z;
|
||||
shader_constant.in_h = in_height_;
|
||||
shader_constant.in_w = in_width_;
|
||||
shader_constant.out_w = out_width_;
|
||||
shader_constant.stride_h = stride_height_;
|
||||
shader_constant.stride_w = stride_width_;
|
||||
shader_constant.pad_h = padding_top_;
|
||||
shader_constant.pad_w = padding_left_;
|
||||
shader_constant.filter_h = filter_height_;
|
||||
shader_constant.filter_w = filter_width_;
|
||||
shader_constant.channels = in_channel_;
|
||||
shader_constant.batch = batch_;
|
||||
shader_constant.m = M;
|
||||
shader_constant.k = K;
|
||||
shader_constant.n = N;
|
||||
shader_constant.tail_m = M % 4;
|
||||
shader_constant.dilation_h = dilation_height_;
|
||||
shader_constant.dilation_w = dilation_width_;
|
||||
|
||||
SET_SPEC_CONST_ENTRY(0, 0, offsetof(ShaderConstant,lsz_x), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(1, 1, offsetof(ShaderConstant,lsz_y), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(2, 2, offsetof(ShaderConstant,lsz_z), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(3, 3, offsetof(ShaderConstant,in_h), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(4, 4, offsetof(ShaderConstant,in_w), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(5, 5, offsetof(ShaderConstant,out_w), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(6, 6, offsetof(ShaderConstant,stride_h), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(7, 7, offsetof(ShaderConstant,stride_w), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(8, 8, offsetof(ShaderConstant,pad_h), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(9, 9, offsetof(ShaderConstant,pad_w), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(10, 10, offsetof(ShaderConstant,filter_h), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(11, 11, offsetof(ShaderConstant,filter_w), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(12, 12, offsetof(ShaderConstant,channels), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(13, 13, offsetof(ShaderConstant,batch), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(14, 14, offsetof(ShaderConstant,m), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(15, 15, offsetof(ShaderConstant,k), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(16, 16, offsetof(ShaderConstant,n), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(17, 17, offsetof(ShaderConstant,tail_m), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(18, 18, offsetof(ShaderConstant,dilation_h), sizeof(int));
|
||||
SET_SPEC_CONST_ENTRY(19, 19, offsetof(ShaderConstant,dilation_w), sizeof(int));
|
||||
|
||||
spec_info.mapEntryCount = SPECIALIZATION_CONST_NUM;
|
||||
spec_info.pMapEntries = entry;
|
||||
spec_info.dataSize = sizeof(shader_constant);
|
||||
spec_info.pData = &shader_constant;
|
||||
createPipeline(sizeof(ShaderParam), &spec_info);
|
||||
}
|
||||
else if (out_channel_ == in_channel_ && in_channel_ == group_)
|
||||
{
|
||||
config_.shader_type = kConvShaderTypeDepthWise;
|
||||
createShaderModule(dw_conv_spv, sizeof(dw_conv_spv));
|
||||
createPipeline(sizeof(ShaderParam));
|
||||
}
|
||||
if (Hk == 3 && Wk == 3)
|
||||
shader_name = "conv_depthwise_3x3_spv";
|
||||
else
|
||||
{
|
||||
assert(group_ == 1); // TODO: support group > 1
|
||||
config_.shader_type = kConvShaderTypeBasic;
|
||||
createShaderModule(conv_spv, sizeof(conv_spv));
|
||||
createPipeline(sizeof(ShaderParam));
|
||||
}
|
||||
shader_name = "conv_depthwise_spv";
|
||||
|
||||
computeGroupCount();
|
||||
shaderType = kConvShaderTypeDepthWise;
|
||||
STRIP_LEN = 16;
|
||||
}
|
||||
|
||||
bindTensor(device_, in, 0, descriptor_set_);
|
||||
bindTensor(device_, bias, 1, descriptor_set_);
|
||||
bindTensor(device_, filter_weights, 2, descriptor_set_);
|
||||
bindTensor(device_, out, 3, descriptor_set_);
|
||||
|
||||
ShaderParam param = {in_height_, in_width_,
|
||||
out_height_, out_width_,
|
||||
stride_height_, stride_width_,
|
||||
padding_top_, padding_left_,
|
||||
filter_height_, filter_width_,
|
||||
dilation_height_, dilation_width_,
|
||||
in_channel_, batch_, has_bias_,
|
||||
M, K, N, 0, 0, 0};
|
||||
|
||||
if (config_.shader_type == kConvShaderTypeBasic || config_.shader_type == kConvShaderTypeDepthWise)
|
||||
else if (fast_1x1) // 1x1
|
||||
{
|
||||
int partition_num = 1;
|
||||
if (config_.shader_type == kConvShaderTypeBasic)
|
||||
{
|
||||
param.basic_shader_partition_size = group_y_;
|
||||
partition_num = (int)ceil(1.0 * out_channel_ / group_y_);
|
||||
}
|
||||
|
||||
for (int b = 0; b < batch_; b++)
|
||||
{
|
||||
param.basic_shader_batch_idx = b;
|
||||
for (int n = 0; n < partition_num; n++)
|
||||
{
|
||||
param.basic_shader_partition_idx = n;
|
||||
recordCommandBuffer((void *)¶m, sizeof(ShaderParam));
|
||||
runCommandBuffer();
|
||||
}
|
||||
}
|
||||
shader_name = "conv_1x1_fast_spv";
|
||||
shaderType = kConvShaderTypeGeneric;
|
||||
STRIP_LEN = 32;
|
||||
}
|
||||
else
|
||||
{
|
||||
recordCommandBuffer();
|
||||
runCommandBuffer();
|
||||
shader_name = "conv_implicit_gemm_spv";
|
||||
shaderType = kConvShaderTypeGeneric;
|
||||
STRIP_LEN = 32;
|
||||
}
|
||||
|
||||
CgHkWk_aligned = alignSize(CgHkWk, STRIP_LEN);
|
||||
// repack the weight. The shape is from [K, C, Hk, Wk] to [ngroups, Ceil(K/group), Align(Cg*Hk*Wk, STRIP_LEN)]
|
||||
if (shaderType == kConvShaderTypeGeneric)
|
||||
{
|
||||
std::vector<int> repackWeightShape = {ngroups, Kg, CgHkWk_aligned};
|
||||
|
||||
Mat repackWeight = Mat(repackWeightShape, CV_32FC1, Scalar_<float>(0.0f));
|
||||
float* weightsBufPtr = repackWeight.ptr<float>();
|
||||
const float* srcWeight = weightBlob.ptr<float>();
|
||||
const size_t wstep = weightBlob.step1(); // Hk*Wk*Cg
|
||||
|
||||
// Pack the weight.
|
||||
parallel_for_(Range(0, ngroups * Kg), [&](const Range& r0){
|
||||
for (int gki = r0.start; gki < r0.end; gki++)
|
||||
{
|
||||
const float* wptr = srcWeight + gki * wstep;
|
||||
float* packed_wptr = weightsBufPtr + gki * CgHkWk_aligned;
|
||||
|
||||
memcpy(packed_wptr, wptr, sizeof(wptr[0]) * CgHkWk);
|
||||
}});
|
||||
|
||||
// Create weightTensor
|
||||
Tensor weightTensor;
|
||||
CV_Assert(repackWeight.isContinuous() && weightBlob.type() == CV_32F);
|
||||
weightTensor.reshape((const char*)repackWeight.data, repackWeightShape);
|
||||
weightTensorPtr = makePtr<Tensor>(weightTensor);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Create weightTensor
|
||||
Tensor weightTensor;
|
||||
CV_Assert(weightBlob.isContinuous() && weightBlob.type() == CV_32F);
|
||||
std::vector<int> matShape = shape(weightBlob);
|
||||
weightTensor.reshape((const char*)weightBlob.data, matShape); // This code will copy the src data from Mat to VkBuffer.
|
||||
|
||||
weightTensorPtr = makePtr<Tensor>(weightTensor);
|
||||
}
|
||||
|
||||
if (!biasvec.empty())
|
||||
{
|
||||
int biasAlignedSize = alignSize(biasvec.size(), BLOCK_SIZE);
|
||||
std::vector<int> biasShape = {biasAlignedSize};
|
||||
|
||||
biasCopy.resize(biasAlignedSize, 0.f);
|
||||
|
||||
for (int i = 0; i < biasvec.size(); i++)
|
||||
{
|
||||
biasCopy[i] = biasvec[i];
|
||||
}
|
||||
|
||||
Tensor biasTensor;
|
||||
biasTensor.reshape((const char*)biasCopy.data(), biasShape); // This code will copy the src data from Mat to VkBuffer.
|
||||
|
||||
biasTensorPtr = makePtr<Tensor>(biasTensor);
|
||||
}
|
||||
else
|
||||
{
|
||||
std::vector<int> shape = {K};
|
||||
Tensor bias(0, shape);
|
||||
biasTensorPtr = makePtr<Tensor>(bias);
|
||||
}
|
||||
}
|
||||
|
||||
void OpConv::firstForward()
|
||||
{
|
||||
if (!firstForwardFinsh)
|
||||
{
|
||||
config.local_size_x = BLOCK_SIZE;
|
||||
config.local_size_y = BLOCK_SIZE;
|
||||
config.local_size_z = 1;
|
||||
|
||||
computeGroupCount();
|
||||
firstForwardFinsh = true;
|
||||
}
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
OpConv::~OpConv()
|
||||
{
|
||||
}
|
||||
|
||||
bool OpConv::forward(std::vector<Tensor>& ins, std::vector<Tensor>& outs)
|
||||
{
|
||||
CV_Assert(ins.size() == 1 && outs.size() == 1);
|
||||
Shape inputShape = ins[0].getShape();
|
||||
Shape outputShape = outs[0].getShape();
|
||||
CV_Assert(inputShape.size() == outputShape.size());
|
||||
|
||||
batch = inputShape[kShapeIdxBatch];
|
||||
Hi = inputShape[kShapeIdxHeight];
|
||||
Wi = inputShape[kShapeIdxWidth];
|
||||
|
||||
H0 = outputShape[kShapeIdxHeight];
|
||||
W0 = outputShape[kShapeIdxWidth];
|
||||
|
||||
firstForward();
|
||||
|
||||
std::vector<int> param = {Hi, Wi,
|
||||
H0, W0,
|
||||
stride_h, stride_w,
|
||||
pad_top, pad_left,
|
||||
Hk, Wk,
|
||||
dilation_h, dilation_w,
|
||||
Kg, Cg,
|
||||
ngroups,
|
||||
CgHkWk_aligned,
|
||||
(int)activ,
|
||||
0, 0};
|
||||
|
||||
std::vector<int> shape = {(int)param.size()};
|
||||
destTypes = {
|
||||
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, // input
|
||||
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, // bias
|
||||
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, // weight
|
||||
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, // output
|
||||
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER // param
|
||||
};
|
||||
|
||||
Ptr<Pipeline> pipeline = pipelineFactoryPtr->getPipeline(shader_name, destTypes);
|
||||
Ptr<Descriptor> desSet = pipeline->createSet();
|
||||
Ptr<CommandBuffer> cmdBuffer = cmdPoolPtr->allocBuffer();
|
||||
|
||||
VkCommandBuffer cmdBufferReal = cmdBuffer->get();
|
||||
desSet->writeTensor(ins[0], 0);
|
||||
desSet->writeTensor(*biasTensorPtr, 1);
|
||||
desSet->writeTensor(*weightTensorPtr, 2);
|
||||
desSet->writeTensor(outs[0], 3);
|
||||
|
||||
if (shaderType == kConvShaderTypeGeneric)
|
||||
{
|
||||
for (int b = 0; b < batch; b++)
|
||||
{
|
||||
for (int g = 0; g < ngroups; g++)
|
||||
{
|
||||
param[17] = b;
|
||||
param[18] = g;
|
||||
Tensor paramTensor = Tensor(reinterpret_cast<const char *>(param.data()), shape, kFormatInt32, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT);
|
||||
desSet->writeTensor(paramTensor, 4);
|
||||
|
||||
cmdBuffer->beginRecord();
|
||||
pipeline->bind(cmdBufferReal, desSet->get());
|
||||
vkCmdDispatch(cmdBufferReal, group_x_, group_y_, group_z_);
|
||||
cmdBuffer->endRecord();
|
||||
|
||||
cmdPoolPtr->submitAndWait(cmdBufferReal);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (shaderType == kConvShaderTypeDepthWise)
|
||||
{
|
||||
for (int b = 0; b < batch; b++)
|
||||
{
|
||||
param[17] = b;
|
||||
Tensor paramTensor = Tensor(reinterpret_cast<const char *>(param.data()), shape, kFormatInt32, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT);
|
||||
desSet->writeTensor(paramTensor, 4);
|
||||
|
||||
cmdBuffer->beginRecord();
|
||||
pipeline->bind(cmdBufferReal, desSet->get());
|
||||
vkCmdDispatch(cmdBufferReal, group_x_, group_y_, group_z_);
|
||||
cmdBuffer->endRecord();
|
||||
|
||||
cmdPoolPtr->submitAndWait(cmdBufferReal);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -289,39 +223,28 @@ bool OpConv::forward(Tensor& in, Tensor& filter_weights, Tensor& bias, Tensor& o
|
||||
|
||||
bool OpConv::computeGroupCount()
|
||||
{
|
||||
if (config_.shader_type == kConvShaderTypeDepthWise)
|
||||
int outplan = H0 * W0;
|
||||
if (shaderType == kConvShaderTypeDepthWise)
|
||||
{
|
||||
group_x_ = alignSize(out_width_, config_.local_size_x) / config_.local_size_x;
|
||||
group_y_ = alignSize(out_height_, config_.local_size_y) / config_.local_size_y;
|
||||
group_z_ = alignSize(in_channel_, config_.local_size_z) / config_.local_size_z;
|
||||
group_x_ = alignSize(outplan, config.local_size_x) / config.local_size_x;
|
||||
group_y_ = K;
|
||||
group_z_ = 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
int M = out_height_ * out_width_;
|
||||
int N = out_channel_;
|
||||
|
||||
if (config_.shader_type == kConvShaderTypeBasic)
|
||||
else if (shaderType == kConvShaderTypeGeneric)
|
||||
{
|
||||
|
||||
group_x_ = alignSize(out_height_ * out_width_, config_.local_size_x) / config_.local_size_x;
|
||||
float GFLOPS = (2.0 * filter_height_ * filter_width_ * in_channel_ + 1) *
|
||||
(out_channel_ * out_height_ * out_width_) / 1000 / 1000 / 1000;
|
||||
CV_Assert(config_.local_size_y == 1);
|
||||
group_y_ = std::min(MAX_GROUP_COUNT_Y, (int)floor(MAX_COMPUTE_GFLOPS / (GFLOPS / out_channel_)));
|
||||
group_x_ = alignSize(Kg, config.local_size_x) / config.local_size_x;
|
||||
group_y_ = alignSize(outplan, config.local_size_y) / config.local_size_y;
|
||||
group_z_ = 1;
|
||||
}
|
||||
else if (config_.shader_type == kConvShaderType48)
|
||||
else if (shaderType == kConvShaderTest)
|
||||
{
|
||||
assert(config_.block_width == 8 &&
|
||||
config_.block_height == 4 &&
|
||||
config_.block_depth == 1 &&
|
||||
config_.local_size_z == 1);
|
||||
group_x_ = N / config_.block_width;
|
||||
group_y_ = alignSize(alignSize(M, 4) / 4, config_.local_size_y) / config_.local_size_y;
|
||||
group_z_ = batch_;
|
||||
group_x_ = 1;
|
||||
group_y_ = 1;
|
||||
group_z_ = 1;
|
||||
}
|
||||
else
|
||||
CV_Assert(0);
|
||||
CV_Error(CV_StsNotImplemented, "shader type is not supported at compute GroupCount.");
|
||||
|
||||
CV_Assert(group_x_ <= MAX_GROUP_COUNT_X);
|
||||
CV_Assert(group_y_ <= MAX_GROUP_COUNT_Y);
|
||||
|
||||
@@ -1,115 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include "common.hpp"
|
||||
#include "internal.hpp"
|
||||
#include "../include/op_lrn.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
#define LOCAL_SZ_X 256
|
||||
#define LOCAL_SZ_Y 1
|
||||
#define LOCAL_SZ_Z 1
|
||||
|
||||
struct LRNParam {
|
||||
int thread_num;
|
||||
int channels;
|
||||
int height;
|
||||
int width;
|
||||
int filter_len;
|
||||
int radius;
|
||||
float alpha;
|
||||
float bias;
|
||||
float negative_beta;
|
||||
};
|
||||
|
||||
OpLRN::OpLRN(const int radius, const float bias,
|
||||
const float alpha, const float beta,
|
||||
const bool norm_by_size)
|
||||
{
|
||||
init(radius, bias, alpha, beta, norm_by_size);
|
||||
type_ = "LRN";
|
||||
}
|
||||
|
||||
void OpLRN::reshapeOutTensor(Tensor& in, Tensor& out)
|
||||
{
|
||||
Shape shape = in.getShape();
|
||||
out.reshape(NULL, shape);
|
||||
}
|
||||
|
||||
bool OpLRN::init(const int radius, const float bias,
|
||||
const float alpha, const float beta,
|
||||
const bool norm_by_size)
|
||||
{
|
||||
radius_ = radius;
|
||||
filter_len_ = 2 * radius_ + 1;
|
||||
bias_ = bias;
|
||||
alpha_ = alpha;
|
||||
beta_ = beta;
|
||||
norm_by_size_ = norm_by_size;
|
||||
OpBase::initVulkanThing(2);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OpLRN::forward(std::vector<Tensor>& ins,
|
||||
std::vector<Tensor>& blobs,
|
||||
std::vector<Tensor>& outs)
|
||||
{
|
||||
return forward(ins[0], outs[0]);
|
||||
}
|
||||
|
||||
bool OpLRN::forward(Tensor& in, Tensor& out)
|
||||
{
|
||||
Shape in_shape = in.getShape();
|
||||
batch_ = in_shape[kShapeIdxBatch];
|
||||
height_ = in_shape[kShapeIdxHeight];
|
||||
width_ = in_shape[kShapeIdxWidth];
|
||||
channels_= in_shape[kShapeIdxChannel];
|
||||
thread_num_ = batch_ * height_ * width_;
|
||||
|
||||
if (pipeline_ == VK_NULL_HANDLE)
|
||||
{
|
||||
config_.local_size_x = LOCAL_SZ_X;
|
||||
config_.local_size_y = LOCAL_SZ_Y;
|
||||
config_.local_size_z = LOCAL_SZ_Z;
|
||||
config_.block_height = 1;
|
||||
config_.block_width = 1;
|
||||
config_.block_depth = 1;
|
||||
config_.shader_type = kLRNShaderTypeBasic;
|
||||
createShaderModule(lrn_spv, sizeof(lrn_spv));
|
||||
createPipeline(sizeof(LRNParam));
|
||||
computeGroupCount();
|
||||
}
|
||||
|
||||
bindTensor(device_, in, 0, descriptor_set_);
|
||||
bindTensor(device_, out,1, descriptor_set_);
|
||||
|
||||
LRNParam param = {batch_ * height_ * width_,
|
||||
channels_, height_, width_,
|
||||
filter_len_, radius_,
|
||||
alpha_ / (norm_by_size_ ? filter_len_ : 1),
|
||||
bias_, -1 * beta_};
|
||||
recordCommandBuffer((void *)¶m, sizeof(LRNParam));
|
||||
runCommandBuffer();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OpLRN::computeGroupCount()
|
||||
{
|
||||
group_x_ = alignSize(thread_num_, config_.local_size_x) / config_.local_size_x;
|
||||
group_y_ = 1;
|
||||
group_z_ = 1;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -0,0 +1,132 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include "internal.hpp"
|
||||
#include "../include/op_matmul.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
#define KSTRIP_LEN 32
|
||||
#define BLOCK_SIZE 64
|
||||
|
||||
OpMatMul::OpMatMul(std::vector<Mat>& matBlobs, const int _M, const int _K, const int _N) : M(_M), K(_K), N(_N)
|
||||
{
|
||||
// Convert Weight to GPU Tensor.
|
||||
type_ = kOpTypeMatMul;
|
||||
CV_Assert(matBlobs.empty() || matBlobs.size() == 1);
|
||||
|
||||
if (matBlobs.size() == 1)
|
||||
{
|
||||
Tensor weightTensor;
|
||||
CV_Assert(matBlobs[0].isContinuous() && matBlobs[0].type() == CV_32F);
|
||||
std::vector<int> matShape = shape(matBlobs[0]);
|
||||
weightTensor.reshape((const char*)matBlobs[0].data, matShape); // This code will copy the src data from Mat to VkBuffer.
|
||||
|
||||
weightTensorPtr = makePtr<Tensor>(weightTensor);
|
||||
}
|
||||
}
|
||||
|
||||
void OpMatMul::firstForward()
|
||||
{
|
||||
if (!firstForwardFinsh)
|
||||
{
|
||||
config.local_size_x = BLOCK_SIZE;
|
||||
config.local_size_y = BLOCK_SIZE;
|
||||
config.local_size_z = 1;
|
||||
|
||||
computeGroupCount();
|
||||
firstForwardFinsh = true;
|
||||
}
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
bool OpMatMul::forward(std::vector<Tensor>& ins, std::vector<Tensor>& outs)
|
||||
{
|
||||
CV_Assert((ins.size() == 1 || ins.size() == 2) && outs.size() == 1);
|
||||
Shape inputShape = ins[0].getShape();
|
||||
Shape outputShape = outs[0].getShape();
|
||||
CV_Assert(inputShape.size() == outputShape.size());
|
||||
|
||||
CV_Assert(inputShape.size() == 2 || inputShape.size() == 4);
|
||||
|
||||
if (inputShape.size() == 2)
|
||||
{
|
||||
batch = 0;
|
||||
Hi = inputShape[0];
|
||||
Wi = inputShape[1];
|
||||
|
||||
H0 = outputShape[0];
|
||||
W0 = outputShape[1];
|
||||
}
|
||||
else if (inputShape.size() == 4)
|
||||
{
|
||||
batch = inputShape[kShapeIdxBatch];
|
||||
Hi = inputShape[kShapeIdxHeight];
|
||||
Wi = inputShape[kShapeIdxWidth];
|
||||
|
||||
H0 = outputShape[kShapeIdxHeight];
|
||||
W0 = outputShape[kShapeIdxWidth];
|
||||
}
|
||||
|
||||
firstForward();
|
||||
|
||||
int KStrip = K/KSTRIP_LEN;
|
||||
int KStripRemain = K - KStrip * KSTRIP_LEN;
|
||||
std::vector<int> param = {M, K, N, KStrip, KStripRemain};
|
||||
|
||||
std::vector<int> shape = {(int)param.size()};
|
||||
Tensor paramTensor = Tensor(reinterpret_cast<const char *>(param.data()), shape, kFormatInt32, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT);
|
||||
|
||||
std::string key = "gemm_spv";
|
||||
destTypes = {
|
||||
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, // input
|
||||
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, // weight
|
||||
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, // out
|
||||
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER // param
|
||||
};
|
||||
|
||||
Ptr<Pipeline> pipeline = pipelineFactoryPtr->getPipeline(key, destTypes);
|
||||
Ptr<Descriptor> desSet = pipeline->createSet();
|
||||
Ptr<CommandBuffer> cmdBuffer = cmdPoolPtr->allocBuffer();
|
||||
|
||||
VkCommandBuffer cmdBufferReal = cmdBuffer->get();
|
||||
desSet->writeTensor(ins[0], 0);
|
||||
|
||||
if (weightTensorPtr)
|
||||
desSet->writeTensor(*weightTensorPtr, 1);
|
||||
else
|
||||
{
|
||||
CV_Assert(ins.size() == 2);
|
||||
desSet->writeTensor(ins[1], 1);
|
||||
}
|
||||
|
||||
desSet->writeTensor(outs[0], 2);
|
||||
desSet->writeTensor(paramTensor, 3); // TODO change the parameter from pushconstance to buffer.
|
||||
|
||||
cmdBuffer->beginRecord();
|
||||
pipeline->bind(cmdBufferReal, desSet->get());
|
||||
vkCmdDispatch(cmdBufferReal, group_x_, group_y_, group_z_);
|
||||
cmdBuffer->endRecord();
|
||||
|
||||
cmdPoolPtr->submitAndWait(cmdBufferReal);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OpMatMul::computeGroupCount()
|
||||
{
|
||||
group_x_ = alignSize(M, BLOCK_SIZE) / BLOCK_SIZE;
|
||||
group_y_ = alignSize(N, BLOCK_SIZE) / BLOCK_SIZE;
|
||||
group_z_ = 1;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,163 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include <limits>
|
||||
#include "common.hpp"
|
||||
#include "internal.hpp"
|
||||
#include "../include/op_permute.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
struct PermuteParam {
|
||||
int global_size;
|
||||
int num_axes;
|
||||
int nthreads;
|
||||
};
|
||||
|
||||
static bool needForPermutation(std::vector<int>& order)
|
||||
{
|
||||
for (int i = 0; i < order.size(); ++i)
|
||||
{
|
||||
if (order[i] != i)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
OpPermute::OpPermute(std::vector<size_t>& order)
|
||||
{
|
||||
order_.assign(order.begin(), order.end());
|
||||
dims_ = order.size();
|
||||
need_permute_ = needForPermutation(order_);
|
||||
type_ = "Permute";
|
||||
if (need_permute_)
|
||||
OpBase::initVulkanThing(5);
|
||||
}
|
||||
|
||||
void OpPermute::reshapeOutTensor(std::vector<Tensor *>& ins, std::vector<Tensor>& outs)
|
||||
{
|
||||
assert(!ins.empty());
|
||||
assert(ins.size() == outs.size());
|
||||
|
||||
if (need_permute_)
|
||||
{
|
||||
assert(dims_ == ins[0]->dimNum());
|
||||
|
||||
Shape shape_before = ins[0]->getShape();
|
||||
Shape shape_after;
|
||||
for (size_t i = 0; i < dims_; i++)
|
||||
{
|
||||
shape_after.push_back(shape_before[order_[i]]);
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < ins.size(); i++)
|
||||
{
|
||||
assert(ins[i]->dimNum() == 4);
|
||||
assert(ins[i]->dimSize(2) == shape_before[2] && ins[i]->dimSize(3) == shape_before[3]);
|
||||
assert(ins[i]->count() == shapeCount(shape_after));
|
||||
outs[i].reshape(NULL, shape_after);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for(int i = 0; i < ins.size(); i++)
|
||||
{
|
||||
Shape in_shape = ins[i]->getShape();
|
||||
outs[i].reshape(NULL, in_shape);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OpPermute::prepareStrides(const Shape &shape_before, const Shape &shape_after)
|
||||
{
|
||||
assert(shape_before.size() == dims_);
|
||||
assert(shape_after.size() == dims_);
|
||||
|
||||
old_stride_.resize(dims_);
|
||||
new_stride_.resize(dims_);
|
||||
|
||||
old_stride_[dims_ - 1] = 1;
|
||||
new_stride_[dims_ - 1] = 1;
|
||||
|
||||
for(int i = dims_ - 2; i >= 0; i--)
|
||||
{
|
||||
old_stride_[i] = old_stride_[i + 1] * shape_before[i + 1];
|
||||
new_stride_[i] = new_stride_[i + 1] * shape_after[i + 1];
|
||||
}
|
||||
|
||||
Shape shape(1, old_stride_.size());
|
||||
tensor_old_stride_.reshape((const char*)old_stride_.data(), shape, kFormatInt32);
|
||||
tensor_new_stride_.reshape((const char*)new_stride_.data(), shape, kFormatInt32);
|
||||
}
|
||||
|
||||
bool OpPermute::forward(std::vector<Tensor>& ins,
|
||||
std::vector<Tensor>& blobs,
|
||||
std::vector<Tensor>& outs)
|
||||
{
|
||||
return forward(ins, outs);
|
||||
}
|
||||
|
||||
bool OpPermute::forward(std::vector<Tensor>& ins, std::vector<Tensor>& outs)
|
||||
{
|
||||
int num_ins = ins.size();
|
||||
in_shape_ = ins[0].getShape();
|
||||
out_shape_ = outs[0].getShape();
|
||||
if (!need_permute_)
|
||||
{
|
||||
for (int i = 0; i < num_ins; i++)
|
||||
{
|
||||
assert(outs[i].count() == ins[i].count());
|
||||
if (outs[i].getBuffer() != ins[i].getBuffer())
|
||||
ins[i].copyTo(outs[i]);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pipeline_ == VK_NULL_HANDLE)
|
||||
{
|
||||
createShaderModule(permute_spv, sizeof(permute_spv));
|
||||
createPipeline(sizeof(PermuteParam));
|
||||
}
|
||||
|
||||
prepareStrides(ins[0].getShape(), outs[0].getShape());
|
||||
std::vector<int>shape(1, order_.size());
|
||||
tensor_order_.reshape((const char*)order_.data(), shape, kFormatInt32);
|
||||
bindTensor(device_, tensor_order_, 1, descriptor_set_);
|
||||
bindTensor(device_, tensor_old_stride_, 2, descriptor_set_);
|
||||
bindTensor(device_, tensor_new_stride_, 3, descriptor_set_);
|
||||
|
||||
nthreads_ = ins[0].count();
|
||||
#define LOCAL_SZ_X 256
|
||||
global_size_ = alignSize(nthreads_, LOCAL_SZ_X);
|
||||
computeGroupCount();
|
||||
|
||||
PermuteParam param = {global_size_, dims_, nthreads_};
|
||||
for (int i = 0; i < num_ins; i++)
|
||||
{
|
||||
bindTensor(device_, ins[i], 0, descriptor_set_);
|
||||
bindTensor(device_, outs[i], 4, descriptor_set_);
|
||||
recordCommandBuffer((void *)¶m, sizeof(PermuteParam));
|
||||
runCommandBuffer();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OpPermute::computeGroupCount()
|
||||
{
|
||||
group_x_ = global_size_ / LOCAL_SZ_X;
|
||||
group_y_ = 1;
|
||||
group_z_ = 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,154 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include <limits>
|
||||
#include "common.hpp"
|
||||
#include "internal.hpp"
|
||||
#include "../include/op_pool.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
#define LOCAL_SZ_X 256
|
||||
#define LOCAL_SZ_Y 1
|
||||
#define LOCAL_SZ_Z 1
|
||||
|
||||
struct PoolParam {
|
||||
int channels;
|
||||
int in_height;
|
||||
int in_width;
|
||||
int out_height;
|
||||
int out_width;
|
||||
int padding_top;
|
||||
int padding_left;
|
||||
int filter_h;
|
||||
int filter_w;
|
||||
int stride_h;
|
||||
int stride_w;
|
||||
int total;
|
||||
int mask_or_padded_area;
|
||||
};
|
||||
|
||||
OpPool::OpPool(const int* filter_size, const int* pad, const int* stride,
|
||||
const int padding_mode, const PoolType type,
|
||||
const bool avg_pool_padded_area)
|
||||
{
|
||||
init(filter_size, pad, stride, padding_mode, type, avg_pool_padded_area);
|
||||
type_ = "Pool";
|
||||
}
|
||||
|
||||
bool OpPool::init(const int* filter_size, const int* pad, const int* stride,
|
||||
const int padding_mode, const PoolType type, bool avg_pool_padded_area)
|
||||
{
|
||||
VKCOM_CHECK_BOOL_RET_VAL(padding_mode >= 0 && padding_mode < kPaddingModeNum, false);
|
||||
VKCOM_CHECK_POINTER_RET_VAL(filter_size, false);
|
||||
VKCOM_CHECK_POINTER_RET_VAL(pad, false);
|
||||
VKCOM_CHECK_POINTER_RET_VAL(stride, false);
|
||||
|
||||
filter_height_ = filter_size[0];
|
||||
filter_width_ = filter_size[1];
|
||||
padding_top_ = pad[0];
|
||||
padding_left_ = pad[1];
|
||||
padding_mode_ = (PaddingMode)padding_mode;
|
||||
stride_height_ = stride[0];
|
||||
stride_width_ = stride[1];
|
||||
pool_type_ = type;
|
||||
avg_pool_padded_area_ = avg_pool_padded_area ? 1 : 0;
|
||||
|
||||
if (pool_type_ == kPoolTypeAvg)
|
||||
OpBase::initVulkanThing(2);
|
||||
else if (pool_type_ == kPoolTypeMax)
|
||||
OpBase::initVulkanThing(3);
|
||||
else
|
||||
assert(0);
|
||||
return true;
|
||||
}
|
||||
|
||||
void OpPool::reshapeOutTensor(Tensor& in, Tensor& out)
|
||||
{
|
||||
Shape in_shape = in.getShape();
|
||||
batch_ = in_shape[kShapeIdxBatch];
|
||||
channels_ = in_shape[kShapeIdxChannel];
|
||||
in_height_ = in_shape[kShapeIdxHeight];
|
||||
in_width_ = in_shape[kShapeIdxWidth];
|
||||
computePoolOutputShape(padding_mode_, padding_top_, padding_left_,
|
||||
in_height_, in_width_,
|
||||
filter_height_, filter_width_,
|
||||
stride_height_, stride_width_,
|
||||
out_height_, out_width_);
|
||||
Shape out_shape = {batch_, channels_, out_height_, out_width_};
|
||||
out.reshape(NULL, out_shape);
|
||||
}
|
||||
|
||||
bool OpPool::forward(std::vector<Tensor>& ins,
|
||||
std::vector<Tensor>& blobs,
|
||||
std::vector<Tensor>& outs)
|
||||
{
|
||||
Tensor& inpMat = ins[0];
|
||||
Tensor& outMat = outs[0];
|
||||
Tensor maskMat = outs.size() > 1 ? outs[1] : Tensor();
|
||||
return forward(inpMat, outMat, maskMat);
|
||||
}
|
||||
|
||||
bool OpPool::forward(Tensor& in, Tensor& out, Tensor& mask)
|
||||
{
|
||||
Shape in_shape = in.getShape();
|
||||
Shape out_shape = out.getShape();
|
||||
batch_ = in_shape[kShapeIdxBatch];
|
||||
channels_ = in_shape[kShapeIdxChannel];
|
||||
in_height_ = in_shape[kShapeIdxHeight];
|
||||
in_width_ = in_shape[kShapeIdxWidth];
|
||||
out_height_ = out_shape[kShapeIdxHeight];
|
||||
out_width_ = out_shape[kShapeIdxWidth];
|
||||
need_mask_ = mask.isEmpty() ? 0 : 1;
|
||||
|
||||
if (pipeline_ == VK_NULL_HANDLE)
|
||||
{
|
||||
config_.local_size_x = LOCAL_SZ_X;
|
||||
config_.local_size_y = LOCAL_SZ_Y;
|
||||
config_.local_size_z = LOCAL_SZ_Z;
|
||||
config_.block_height = 1;
|
||||
config_.block_width = 1;
|
||||
config_.block_depth = 1;
|
||||
if (pool_type_ == kPoolTypeAvg)
|
||||
createShaderModule(avg_pool_spv, sizeof(avg_pool_spv));
|
||||
else
|
||||
createShaderModule(max_pool_spv, sizeof(max_pool_spv));
|
||||
createPipeline(sizeof(PoolParam));
|
||||
computeGroupCount();
|
||||
}
|
||||
|
||||
bindTensor(device_, in, 0, descriptor_set_);
|
||||
bindTensor(device_, out, 1, descriptor_set_);
|
||||
if (need_mask_)
|
||||
bindTensor(device_, mask, 2, descriptor_set_);
|
||||
PoolParam param = {channels_,
|
||||
in_height_, in_width_,
|
||||
out_height_, out_width_,
|
||||
padding_top_, padding_left_,
|
||||
filter_height_, filter_width_,
|
||||
stride_height_, stride_width_, out.count(),
|
||||
pool_type_ == kPoolTypeAvg ? avg_pool_padded_area_ : need_mask_};
|
||||
recordCommandBuffer((void *)¶m, sizeof(PoolParam));
|
||||
runCommandBuffer();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OpPool::computeGroupCount()
|
||||
{
|
||||
#define GLOBAL_SIZE (128 * 128)
|
||||
group_x_ = alignSize(GLOBAL_SIZE, config_.local_size_x) / config_.local_size_x;
|
||||
group_y_ = 1;
|
||||
group_z_ = 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,151 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include <limits>
|
||||
#include "common.hpp"
|
||||
#include "internal.hpp"
|
||||
#include "../include/op_prior_box.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
#define LOCAL_SZ_X 256
|
||||
struct PriorBoxParam {
|
||||
int global_size;
|
||||
int nthreads;
|
||||
float step_x;
|
||||
float step_y;
|
||||
int offsets_x_size;
|
||||
int width_size;
|
||||
int layer_w;
|
||||
int image_h;
|
||||
int image_w;
|
||||
int clip;
|
||||
int variance_off;
|
||||
};
|
||||
|
||||
OpPriorBox::OpPriorBox(float step_x,
|
||||
float step_y,
|
||||
bool clip,
|
||||
int num_priors,
|
||||
std::vector<float>& variance,
|
||||
std::vector<float>& offsets_x,
|
||||
std::vector<float>& offsets_y,
|
||||
std::vector<float>& box_widths,
|
||||
std::vector<float>& box_heights)
|
||||
{
|
||||
step_x_ = step_x;
|
||||
step_y_ = step_y;
|
||||
clip_ = clip;
|
||||
num_priors_ = num_priors;
|
||||
variance_ = variance;
|
||||
offsets_x_ = offsets_x;
|
||||
offsets_y_ = offsets_y;
|
||||
box_widths_ = box_widths;
|
||||
box_heights_ = box_heights;
|
||||
type_ = "PriorBox";
|
||||
#define BUFFER_NUM 6
|
||||
OpBase::initVulkanThing(BUFFER_NUM);
|
||||
}
|
||||
|
||||
void OpPriorBox::reshapeOutTensor(std::vector<Tensor *>& ins, Tensor& out)
|
||||
{
|
||||
assert(!ins.empty());
|
||||
|
||||
Shape in_shape = ins[0]->getShape();
|
||||
int layer_h = in_shape[kShapeIdxHeight];
|
||||
int layer_w = in_shape[kShapeIdxWidth];
|
||||
int out_num = 1;
|
||||
int out_channel = 2;
|
||||
Shape out_shape = {out_num, out_channel, layer_h * layer_w * num_priors_ * 4};
|
||||
out.reshape(NULL, out_shape);
|
||||
}
|
||||
|
||||
bool OpPriorBox::forward(std::vector<Tensor>& ins,
|
||||
std::vector<Tensor>& blobs,
|
||||
std::vector<Tensor>& outs)
|
||||
{
|
||||
return forward(ins, outs[0]);
|
||||
}
|
||||
|
||||
bool OpPriorBox::forward(std::vector<Tensor>& ins, Tensor& out)
|
||||
{
|
||||
assert(ins.size() == 2);
|
||||
Shape in_shape = ins[0].getShape();
|
||||
Shape img_shape = ins[1].getShape();
|
||||
|
||||
in_h_ = in_shape[kShapeIdxHeight];
|
||||
in_w_ = in_shape[kShapeIdxWidth];
|
||||
img_h_ = img_shape[kShapeIdxHeight];
|
||||
img_w_ = img_shape[kShapeIdxWidth];
|
||||
out_channel_ = out.dimSize(1);
|
||||
out_channel_size_ = out.dimSize(2);
|
||||
nthreads_ = in_h_ * in_w_;
|
||||
global_size_ = alignSize(nthreads_, LOCAL_SZ_X);
|
||||
|
||||
if (pipeline_ == VK_NULL_HANDLE)
|
||||
{
|
||||
createShaderModule(prior_box_spv, sizeof(prior_box_spv));
|
||||
createPipeline(sizeof(PriorBoxParam));
|
||||
computeGroupCount();
|
||||
}
|
||||
|
||||
std::vector<int>shape;
|
||||
shape.push_back(offsets_x_.size());
|
||||
tensor_offsets_x_.reshape((const char*)offsets_x_.data(), shape);
|
||||
tensor_offsets_y_.reshape((const char*)offsets_y_.data(), shape);
|
||||
|
||||
shape[0] = box_widths_.size();
|
||||
tensor_widths_.reshape((const char*)box_widths_.data(), shape);
|
||||
tensor_heights_.reshape((const char*)box_heights_.data(), shape);
|
||||
|
||||
float variance[4] = {variance_[0], variance_[0], variance_[0], variance_[0]};
|
||||
if (variance_.size() > 1)
|
||||
{
|
||||
assert(variance_.size() == 4);
|
||||
for (int i = 1; i < variance_.size(); i++)
|
||||
variance[i] = variance_[i];
|
||||
}
|
||||
shape[0] = 4;
|
||||
tensor_variance_.reshape((const char*)variance, shape);
|
||||
|
||||
bindTensor(device_, tensor_offsets_x_, 0, descriptor_set_);
|
||||
bindTensor(device_, tensor_offsets_y_, 1, descriptor_set_);
|
||||
bindTensor(device_, tensor_widths_, 2, descriptor_set_);
|
||||
bindTensor(device_, tensor_heights_, 3, descriptor_set_);
|
||||
bindTensor(device_, tensor_variance_, 4, descriptor_set_);
|
||||
bindTensor(device_, out, 5, descriptor_set_);
|
||||
|
||||
PriorBoxParam param = {global_size_,
|
||||
nthreads_,
|
||||
step_x_,
|
||||
step_y_,
|
||||
(int)offsets_x_.size(),
|
||||
(int)box_widths_.size(),
|
||||
in_w_,
|
||||
img_h_,
|
||||
img_w_,
|
||||
clip_ ? 1 : 0,
|
||||
out_channel_size_ / 4};
|
||||
recordCommandBuffer((void *)¶m, sizeof(PriorBoxParam));
|
||||
runCommandBuffer();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OpPriorBox::computeGroupCount()
|
||||
{
|
||||
group_x_ = global_size_ / LOCAL_SZ_X;
|
||||
group_y_ = 1;
|
||||
group_z_ = 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,74 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include "common.hpp"
|
||||
#include "internal.hpp"
|
||||
#include "../include/op_relu.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
#define LOCAL_SZ_X 32
|
||||
|
||||
struct ReLUParam {
|
||||
int total;
|
||||
float slope;
|
||||
};
|
||||
|
||||
OpReLU::OpReLU(const float slope) : slope_(slope)
|
||||
{
|
||||
OpBase::initVulkanThing(2);
|
||||
type_ = "ReLU";
|
||||
}
|
||||
|
||||
void OpReLU::reshapeOutTensor(Tensor& in, Tensor& out)
|
||||
{
|
||||
Shape shape = in.getShape();
|
||||
out.reshape(NULL, shape);
|
||||
}
|
||||
|
||||
bool OpReLU::forward(std::vector<Tensor>& ins,
|
||||
std::vector<Tensor>& blobs,
|
||||
std::vector<Tensor>& outs)
|
||||
{
|
||||
return forward(ins[0], outs[0]);
|
||||
}
|
||||
|
||||
bool OpReLU::forward(Tensor& in, Tensor& out)
|
||||
{
|
||||
if (pipeline_ == VK_NULL_HANDLE)
|
||||
{
|
||||
total_ = in.count();
|
||||
#define maxComputeWorkGroupCount 65535
|
||||
computeGroupCount();
|
||||
createShaderModule(relu_spv, sizeof(relu_spv));
|
||||
createPipeline(sizeof(ReLUParam));
|
||||
}
|
||||
|
||||
bindTensor(device_, in, 0, descriptor_set_);
|
||||
bindTensor(device_, out, 1, descriptor_set_);
|
||||
ReLUParam param = { total_, slope_ };
|
||||
recordCommandBuffer((void *)¶m, sizeof(ReLUParam));
|
||||
runCommandBuffer();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OpReLU::computeGroupCount()
|
||||
{
|
||||
group_x_ = alignSize(total_, LOCAL_SZ_X) / LOCAL_SZ_X;
|
||||
if (group_x_ > maxComputeWorkGroupCount)
|
||||
group_x_ = maxComputeWorkGroupCount;
|
||||
group_y_ = 1;
|
||||
group_z_ = 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -1,111 +0,0 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
//
|
||||
// Copyright (C) 2018, Intel Corporation, all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include "common.hpp"
|
||||
#include "internal.hpp"
|
||||
#include "../include/op_softmax.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
#define LOCAL_SZ_X 256
|
||||
#define LOCAL_SZ_Y 1
|
||||
#define LOCAL_SZ_Z 1
|
||||
|
||||
struct SoftmaxParam {
|
||||
int channel_size;
|
||||
int outer_size;
|
||||
int channels;
|
||||
int logsoftmax;
|
||||
};
|
||||
|
||||
OpSoftmax::OpSoftmax(const int axis, const bool log_softmax)
|
||||
{
|
||||
init(axis, log_softmax);
|
||||
type_ = "Softmax";
|
||||
}
|
||||
|
||||
OpSoftmax::~OpSoftmax()
|
||||
{
|
||||
if (max_tensor_)
|
||||
delete max_tensor_;
|
||||
if (sum_tensor_)
|
||||
delete sum_tensor_;
|
||||
}
|
||||
|
||||
void OpSoftmax::reshapeOutTensor(Tensor& in, Tensor& out)
|
||||
{
|
||||
Shape shape = in.getShape();
|
||||
out.reshape(NULL, shape);
|
||||
}
|
||||
|
||||
bool OpSoftmax::init(const int axis, const bool log_softmax)
|
||||
{
|
||||
axis_ = axis;
|
||||
log_softmax_ = log_softmax;
|
||||
max_tensor_ = NULL;
|
||||
sum_tensor_ = NULL;
|
||||
OpBase::initVulkanThing(4);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OpSoftmax::forward(std::vector<Tensor>& ins,
|
||||
std::vector<Tensor>& blobs,
|
||||
std::vector<Tensor>& outs)
|
||||
{
|
||||
return forward(ins[0], outs[0]);
|
||||
}
|
||||
|
||||
bool OpSoftmax::forward(Tensor& in, Tensor& out)
|
||||
{
|
||||
channels_ = in.dimSize(axis_);
|
||||
channel_size_ = in.count(axis_+1);
|
||||
outer_size_ = in.count(0, axis_);
|
||||
|
||||
if (pipeline_ == VK_NULL_HANDLE)
|
||||
{
|
||||
config_.local_size_x = LOCAL_SZ_X;
|
||||
config_.local_size_y = LOCAL_SZ_Y;
|
||||
config_.local_size_z = LOCAL_SZ_Z;
|
||||
config_.block_height = 1;
|
||||
config_.block_width = 1;
|
||||
config_.block_depth = 1;
|
||||
createShaderModule(softmax_spv, sizeof(softmax_spv));
|
||||
createPipeline(sizeof(SoftmaxParam));
|
||||
computeGroupCount();
|
||||
}
|
||||
|
||||
if (max_tensor_ == NULL || sum_tensor_ == NULL)
|
||||
{
|
||||
std::vector<int> shape = {outer_size_, channel_size_};
|
||||
max_tensor_ = new Tensor(NULL, shape);
|
||||
sum_tensor_ = new Tensor(NULL, shape);
|
||||
}
|
||||
bindTensor(device_, in, 0, descriptor_set_);
|
||||
bindTensor(device_, *max_tensor_, 1, descriptor_set_);
|
||||
bindTensor(device_, *sum_tensor_, 2, descriptor_set_);
|
||||
bindTensor(device_, out, 3, descriptor_set_);
|
||||
SoftmaxParam param = {channel_size_, outer_size_, channels_, log_softmax_ == true ? 1 : 0};
|
||||
recordCommandBuffer((void *)¶m, sizeof(SoftmaxParam));
|
||||
runCommandBuffer();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OpSoftmax::computeGroupCount()
|
||||
{
|
||||
group_x_ = alignSize(outer_size_, config_.local_size_x) / config_.local_size_x;
|
||||
group_y_ = 1;
|
||||
group_z_ = 1;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -0,0 +1,309 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
|
||||
/*
|
||||
The code has referenced MNN (https://github.com/alibaba/MNN/blob/2.4.0/source/backend/vulkan/component/VulkanPipeline.cpp)
|
||||
and adapted for OpenCV by Zihao Mu.
|
||||
Below is the original copyright:
|
||||
*/
|
||||
|
||||
//
|
||||
// VulkanPipeline.cpp
|
||||
// MNN
|
||||
//
|
||||
// Created by MNN on 2019/01/31.
|
||||
// Copyright © 2018, Alibaba Group Holding Limited
|
||||
//
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include "internal.hpp"
|
||||
#include "../include/pipeline.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
// *********************** Descriptor ********************
|
||||
Ptr<Descriptor> Descriptor::create(const VkDescriptorPool& pool, const VkDescriptorSet& set, Pipeline* pipeline)
|
||||
{
|
||||
return Ptr<Descriptor>(new Descriptor(pool, set, pipeline));
|
||||
}
|
||||
|
||||
Descriptor::Descriptor(const VkDescriptorPool& pool, const VkDescriptorSet& set, Pipeline* _pipeline)
|
||||
: desPool(pool), desSet(set), pipeline(_pipeline)
|
||||
{
|
||||
}
|
||||
|
||||
void Descriptor::writeTensor(Tensor tensor, int bindIndex)
|
||||
{
|
||||
writeBuffer(tensor.getBuffer()->getVkBuffer(), bindIndex, tensor.size()); // TODO, check if need the size in bit.
|
||||
}
|
||||
|
||||
void Descriptor::writeBuffer(VkBuffer buffer, int bindIndex, size_t size, VkDeviceSize offset)
|
||||
{
|
||||
CV_Assert(pipeline);
|
||||
VkWriteDescriptorSet writeSet = {};
|
||||
VkDescriptorBufferInfo sourceInfo;
|
||||
sourceInfo.buffer = buffer;
|
||||
sourceInfo.offset = offset;
|
||||
sourceInfo.range = size;
|
||||
|
||||
writeSet.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
|
||||
writeSet.descriptorCount = 1;
|
||||
|
||||
writeSet.descriptorType = pipeline->argType(bindIndex);
|
||||
writeSet.dstBinding = bindIndex;
|
||||
writeSet.pBufferInfo = &sourceInfo;
|
||||
writeSet.dstSet = desSet;
|
||||
|
||||
vkUpdateDescriptorSets(kDevice, 1, &writeSet, 0, nullptr);
|
||||
}
|
||||
|
||||
Descriptor::~Descriptor()
|
||||
{
|
||||
if (needRelease)
|
||||
{
|
||||
// destroy resource
|
||||
vkFreeDescriptorSets(kDevice, desPool, 1, &desSet);
|
||||
vkDestroyDescriptorPool(kDevice, desPool, nullptr);
|
||||
}
|
||||
else
|
||||
{
|
||||
CV_Assert(pipeline);
|
||||
pipeline->descriptorPairQueue.push(std::make_pair(desPool, desSet));
|
||||
}
|
||||
}
|
||||
|
||||
// *********************** Pipeline ********************
|
||||
|
||||
Pipeline::Pipeline(const uint32_t* spv, size_t length,
|
||||
const std::vector<VkDescriptorType>& _bufferTypes, VkPipelineCache& cache,
|
||||
const std::vector<uint32_t>& localSize) : bufferTypes(_bufferTypes)
|
||||
{
|
||||
// Step1: create Module from spv file.
|
||||
// TODO, add the local_size_x, local_size_y, and z at here.
|
||||
VkShaderModule shaderModule;
|
||||
VkShaderModuleCreateInfo shaderModuleCreateInfo
|
||||
{
|
||||
/* .sType = */ VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,
|
||||
/* .pNext = */ nullptr,
|
||||
/* .flags = */ 0,
|
||||
/* .codeSize = */ length * sizeof(uint32_t),
|
||||
/* .pCode = */ spv,
|
||||
};
|
||||
VK_CHECK_RESULT(vkCreateShaderModule(kDevice, &shaderModuleCreateInfo, nullptr, &shaderModule));
|
||||
|
||||
// Step2: according the bufferType info set the binding.
|
||||
std::vector<VkDescriptorSetLayoutBinding> bindings;
|
||||
std::map<VkDescriptorType, int> typeCount;
|
||||
|
||||
for (int i = 0; i < bufferTypes.size(); i++)
|
||||
{
|
||||
auto type = bufferTypes[i];
|
||||
if (typeCount.find(type) == typeCount.end())
|
||||
typeCount[type] = 1;
|
||||
else
|
||||
typeCount[type] += 1;
|
||||
|
||||
VkDescriptorSetLayoutBinding binding{(uint32_t)i, type, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr};
|
||||
bindings.emplace_back(binding);
|
||||
}
|
||||
|
||||
// Step3 : Create DescriptorSetLayout and PipelineLayout
|
||||
{
|
||||
// Create DescriptorSetLayout
|
||||
VkDescriptorSetLayoutCreateInfo setLayoutCreateInfo = {};
|
||||
setLayoutCreateInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
|
||||
setLayoutCreateInfo.bindingCount = bindings.size();
|
||||
setLayoutCreateInfo.pBindings = &bindings[0];
|
||||
VK_CHECK_RESULT(vkCreateDescriptorSetLayout(kDevice, &setLayoutCreateInfo, NULL, &setLayout));
|
||||
|
||||
// Create PipelineLayout
|
||||
VkPipelineLayoutCreateInfo pipeline_layout_create_info = {};
|
||||
pipeline_layout_create_info.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
|
||||
pipeline_layout_create_info.setLayoutCount = 1;
|
||||
pipeline_layout_create_info.pSetLayouts = &setLayout;
|
||||
VK_CHECK_RESULT(vkCreatePipelineLayout(kDevice, &pipeline_layout_create_info, NULL, &pipelineLayout));
|
||||
}
|
||||
|
||||
//Step: 4 create pipelineVk instance.
|
||||
VkPipelineShaderStageCreateInfo stageCreateInfo = {};
|
||||
stageCreateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
|
||||
stageCreateInfo.stage = VK_SHADER_STAGE_COMPUTE_BIT;
|
||||
stageCreateInfo.module = shaderModule;
|
||||
stageCreateInfo.pName = "main";
|
||||
|
||||
VkComputePipelineCreateInfo pipelineCreateInfo = {};
|
||||
pipelineCreateInfo.sType = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO;
|
||||
pipelineCreateInfo.stage = stageCreateInfo;
|
||||
pipelineCreateInfo.layout = pipelineLayout;
|
||||
|
||||
cv::AutoLock lock(kContextMtx);
|
||||
VK_CHECK_RESULT(vkCreateComputePipelines(kDevice, cache, 1, &pipelineCreateInfo, 0, &pipelineVK));
|
||||
|
||||
// Step5: destroy shaderModule
|
||||
vkDestroyShaderModule(kDevice, shaderModule, nullptr);
|
||||
|
||||
// Step6: add typeCount to desPoolSize
|
||||
for (auto& iter : typeCount)
|
||||
{
|
||||
VkDescriptorPoolSize s;
|
||||
s.descriptorCount = iter.second;
|
||||
s.type = iter.first;
|
||||
desPoolSize.emplace_back(s);
|
||||
}
|
||||
}
|
||||
|
||||
Ptr<Pipeline> Pipeline::create(const uint32_t* spv, size_t length, const std::vector<VkDescriptorType>& bufferTypes,
|
||||
VkPipelineCache& cache, const std::vector<uint32_t>& localSize)
|
||||
{
|
||||
return Ptr<Pipeline>(new Pipeline(spv, length, bufferTypes, cache, localSize));
|
||||
}
|
||||
|
||||
void Pipeline::bind(VkCommandBuffer cmdBuffer, VkDescriptorSet descriptorSet) const
|
||||
{
|
||||
vkCmdBindPipeline(cmdBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipelineVK);
|
||||
vkCmdBindDescriptorSets(cmdBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipelineLayout, 0, 1, &descriptorSet, 0, nullptr);
|
||||
}
|
||||
|
||||
Ptr<Descriptor> Pipeline::createSet()
|
||||
{
|
||||
// find unused DescriptorSet at descriptorSetList, if not, create new one and save it at that list.
|
||||
if (!descriptorPairQueue.empty())
|
||||
{
|
||||
auto iter = descriptorPairQueue.front();
|
||||
descriptorPairQueue.pop();
|
||||
|
||||
Ptr<Descriptor> des = Descriptor::create(iter.first, iter.second, this);
|
||||
des->needRelease = false; // Don't release and try to reuse it.
|
||||
return des;
|
||||
}
|
||||
|
||||
// create DescriptorPool
|
||||
VkDescriptorPool descriptorPool;
|
||||
VkDescriptorPoolCreateInfo info = {};
|
||||
info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
|
||||
info.maxSets = 1;
|
||||
info.poolSizeCount = desPoolSize.size();
|
||||
info.pPoolSizes = desPoolSize.data();
|
||||
info.flags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT;
|
||||
VK_CHECK_RESULT(vkCreateDescriptorPool(kDevice, &info, NULL, &descriptorPool));
|
||||
|
||||
// Create DescriptorSet
|
||||
VkDescriptorSet descriptorSet;
|
||||
VkDescriptorSetAllocateInfo allocate_info = {};
|
||||
allocate_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
|
||||
allocate_info.descriptorPool = descriptorPool;
|
||||
allocate_info.descriptorSetCount = 1;
|
||||
allocate_info.pSetLayouts = &setLayout;
|
||||
VK_CHECK_RESULT(vkAllocateDescriptorSets(kDevice, &allocate_info, &descriptorSet));
|
||||
|
||||
Ptr<Descriptor> descriptor = Descriptor::create(descriptorPool, descriptorSet, this);
|
||||
descriptor->needRelease = false; // Don't release and try to reuse it.
|
||||
return descriptor;
|
||||
}
|
||||
|
||||
Pipeline::~Pipeline()
|
||||
{
|
||||
// Step1: destroy all descriptors in descriptorSetList.
|
||||
while (!descriptorPairQueue.empty())
|
||||
{
|
||||
auto iter = descriptorPairQueue.front();
|
||||
descriptorPairQueue.pop();
|
||||
|
||||
CV_Assert(iter.first && iter.second);
|
||||
vkFreeDescriptorSets(kDevice, iter.first, 1, &iter.second);
|
||||
vkDestroyDescriptorPool(kDevice, iter.first, nullptr);
|
||||
}
|
||||
|
||||
// Step2: destroy other resources.
|
||||
vkDestroyPipelineLayout(kDevice, pipelineLayout, nullptr);
|
||||
vkDestroyDescriptorSetLayout(kDevice, setLayout, nullptr);
|
||||
vkDestroyPipeline(kDevice, pipelineVK, nullptr);
|
||||
}
|
||||
|
||||
// *********************** Pipeline Factory ********************
|
||||
|
||||
static VkResult createPipelineCache(VkPipelineCache& pipelineCache)
|
||||
{
|
||||
VkPipelineCacheCreateInfo pipelineCacheInfo {
|
||||
/* .sType = */ VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO,
|
||||
/* .pNext = */ nullptr,
|
||||
/* .flags = */ 0, // reserved, must be 0
|
||||
/* .initialDataSize = */ 0,
|
||||
/* .pInitialData = */ nullptr,
|
||||
};
|
||||
return vkCreatePipelineCache(kDevice, &pipelineCacheInfo, nullptr, &pipelineCache);
|
||||
}
|
||||
|
||||
PipelineFactory::PipelineFactory()
|
||||
{
|
||||
initSPVMaps(); // create maps from spv name to SPV file.
|
||||
// create PipelineCache
|
||||
VK_CHECK_RESULT(createPipelineCache(pipelineCache));
|
||||
}
|
||||
|
||||
PipelineFactory::~PipelineFactory()
|
||||
{
|
||||
pipelineCreated.clear();
|
||||
vkDestroyPipelineCache(kDevice, pipelineCache, nullptr);
|
||||
}
|
||||
|
||||
void PipelineFactory::reset()
|
||||
{
|
||||
// Step1: destroy old pipelineCache.
|
||||
vkDestroyPipelineCache(kDevice, pipelineCache, nullptr);
|
||||
|
||||
// Step2: create new PipelineCache
|
||||
VK_CHECK_RESULT(createPipelineCache(pipelineCache));
|
||||
|
||||
auto iter = pipelineCreated.begin();
|
||||
for (int i = 0; i < pipelineCreated.size(); i++, iter++)
|
||||
{
|
||||
iter->second.release();
|
||||
}
|
||||
|
||||
pipelineCreated.clear();
|
||||
}
|
||||
|
||||
Ptr<Pipeline> PipelineFactory::getPipeline(const std::string& key, const std::vector<VkDescriptorType>& types,
|
||||
const std::vector<uint32_t>& localSize)
|
||||
{
|
||||
auto iter = pipelineCreated.find(key);
|
||||
if (iter != pipelineCreated.end())
|
||||
{
|
||||
return iter->second;
|
||||
}
|
||||
|
||||
// retrieve spv from SPVMaps with given key
|
||||
auto iterSPV = SPVMaps.find(key);
|
||||
if (iterSPV == SPVMaps.end())
|
||||
CV_Error(CV_StsError, "Can not create SPV with the given name:"+key+"!");
|
||||
|
||||
const uint32_t* spv = iterSPV->second.first;
|
||||
size_t length = iterSPV->second.second;
|
||||
|
||||
Ptr<Pipeline> pipeline = Pipeline::create(spv, length, types, pipelineCache, localSize);
|
||||
|
||||
if (pipeline)
|
||||
{
|
||||
pipelineCreated.insert(std::make_pair(key, pipeline));
|
||||
}
|
||||
else
|
||||
{
|
||||
CV_Error(CV_StsError, "Can not Created the VkPipeline "+key);
|
||||
}
|
||||
|
||||
return pipeline;
|
||||
}
|
||||
|
||||
Ptr<PipelineFactory> PipelineFactory::create()
|
||||
{
|
||||
Ptr<PipelineFactory> pipelineFactory = Ptr<PipelineFactory>(new PipelineFactory());
|
||||
return pipelineFactory;
|
||||
}
|
||||
|
||||
#endif // HAVE_VULKAN
|
||||
|
||||
}}} // namespace cv::dnn::vkcom
|
||||
@@ -6,24 +6,19 @@
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
#include "../../precomp.hpp"
|
||||
#include "common.hpp"
|
||||
#include "internal.hpp"
|
||||
|
||||
namespace cv { namespace dnn { namespace vkcom {
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
|
||||
Tensor::Tensor(Format fmt) : size_in_byte_(0), format_(fmt)
|
||||
Tensor::Tensor(Format fmt, VkBufferUsageFlags usageFlag) : size_in_byte_(0), format_(fmt), usageFlag_(usageFlag)
|
||||
{
|
||||
createContext();
|
||||
device_ = kDevice;
|
||||
}
|
||||
|
||||
Tensor::Tensor(const char* data, std::vector<int>& shape, Format fmt)
|
||||
: size_in_byte_(0), format_(fmt)
|
||||
Tensor::Tensor(const char* data, std::vector<int>& shape, Format fmt, VkBufferUsageFlags usageFlag)
|
||||
: size_in_byte_(0), format_(fmt), usageFlag_(usageFlag)
|
||||
{
|
||||
createContext();
|
||||
device_ = kDevice;
|
||||
reshape(data, shape);
|
||||
}
|
||||
|
||||
@@ -31,7 +26,7 @@ void* Tensor::map()
|
||||
{
|
||||
void *p;
|
||||
|
||||
VK_CHECK_RESULT(vkMapMemory(device_, buffer_->getVkMemory(),
|
||||
VK_CHECK_RESULT(vkMapMemory(kDevice, buffer_->getVkMemory(),
|
||||
0, size_in_byte_, 0, (void **)&p));
|
||||
|
||||
return p;
|
||||
@@ -39,7 +34,7 @@ void* Tensor::map()
|
||||
|
||||
void Tensor::unMap()
|
||||
{
|
||||
vkUnmapMemory(device_, buffer_->getVkMemory());
|
||||
vkUnmapMemory(kDevice, buffer_->getVkMemory());
|
||||
}
|
||||
|
||||
Shape Tensor::getShape() const
|
||||
@@ -67,9 +62,9 @@ int Tensor::dimNum() const
|
||||
|
||||
Tensor Tensor::reshape(const char* data, const std::vector<int>& shape, bool alloc, Format fmt)
|
||||
{
|
||||
if (device_ == VK_NULL_HANDLE)
|
||||
if (kDevice == VK_NULL_HANDLE)
|
||||
{
|
||||
CV_Error(Error::StsError, "device is NULL");
|
||||
CV_Error(Error::StsError, "device is NULL!");
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -85,7 +80,7 @@ Tensor Tensor::reshape(const char* data, const std::vector<int>& shape, bool all
|
||||
|
||||
if (alloc)
|
||||
{
|
||||
buffer_.reset(new Buffer(device_, size_in_byte_, data));
|
||||
buffer_.reset(new Buffer(size_in_byte_, data, usageFlag_));
|
||||
}
|
||||
else if (data)
|
||||
{
|
||||
@@ -99,9 +94,9 @@ Tensor Tensor::reshape(const char* data, const std::vector<int>& shape, bool all
|
||||
|
||||
void Tensor::setTo(float val)
|
||||
{
|
||||
if (device_ == VK_NULL_HANDLE)
|
||||
if (kDevice == VK_NULL_HANDLE)
|
||||
{
|
||||
CV_Error(Error::StsError, "device is NULL");
|
||||
CV_Error(Error::StsError, "device is NULL!");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -25,13 +25,30 @@ typedef HMODULE VulkanHandle;
|
||||
#include <dlfcn.h>
|
||||
#include <stdio.h>
|
||||
typedef void* VulkanHandle;
|
||||
#define DEFAULT_VK_LIBRARY_PATH "libvulkan.so.1"
|
||||
#define DEFAULT_VK_LIBRARY_PATH "libvulkan.so"
|
||||
#define LOAD_VK_LIBRARY(path) dlopen(path, RTLD_LAZY | RTLD_GLOBAL)
|
||||
#define FREE_VK_LIBRARY(handle) dlclose(handle)
|
||||
#define GET_VK_ENTRY_POINT(handle) \
|
||||
(PFN_vkGetInstanceProcAddr)dlsym(handle, "vkGetInstanceProcAddr");
|
||||
#endif // __linux__
|
||||
|
||||
#if defined(__APPLE__)
|
||||
#include <dlfcn.h>
|
||||
#include <stdio.h>
|
||||
typedef void* VulkanHandle;
|
||||
|
||||
#if defined(__x86_64__)
|
||||
#define DEFAULT_VK_LIBRARY_PATH "libvulkan.dylib"
|
||||
#else // For Apple ARM chip, we use MoltenVK lib.
|
||||
#define DEFAULT_VK_LIBRARY_PATH "libMoltenVK.dylib"
|
||||
#endif
|
||||
|
||||
#define LOAD_VK_LIBRARY(path) dlopen(path, RTLD_LAZY | RTLD_GLOBAL)
|
||||
#define FREE_VK_LIBRARY(handle) dlclose(handle)
|
||||
#define GET_VK_ENTRY_POINT(handle) \
|
||||
(PFN_vkGetInstanceProcAddr)dlsym(handle, "vkGetInstanceProcAddr");
|
||||
#endif // Macos
|
||||
|
||||
#ifndef DEFAULT_VK_LIBRARY_PATH
|
||||
#define DEFAULT_VK_LIBRARY_PATH ""
|
||||
#define LOAD_VK_LIBRARY(path) nullptr
|
||||
@@ -113,6 +130,15 @@ bool loadVulkanLibrary()
|
||||
if( handle == nullptr )
|
||||
{
|
||||
fprintf(stderr, "Could not load Vulkan library: %s!\n", path);
|
||||
fprintf(stderr, "Please download the Vulkan SDK and set the environment variable of OPENCV_VULKAN_RUNTIME according "
|
||||
"to your system environment.\n");
|
||||
fprintf(stderr, "For M1 Mac and IOS, we use MoltenVK to map the Vulkan code to native apple Metal code.\n");
|
||||
fprintf(stderr, "You can download the SDK from https://vulkan.lunarg.com/sdk/home.\n");
|
||||
fprintf(stderr, "The following are some examples:\n");
|
||||
fprintf(stderr, "For Windows, OPENCV_VULKAN_RUNTIME=D:\\VulkanSDK\\1.3.236.0\\Bin\\vulkan-1.dll\n");
|
||||
fprintf(stderr, "For Linux, OPENCV_VULKAN_RUNTIME=/opt/vulkan/1.3.236.0/x86_64/libvulkan.so\n");
|
||||
fprintf(stderr, "For MacOS of x86, OPENCV_VULKAN_RUNTIME=/opt/vulkan/1.3.236.0/x86_64/libvulkan.dylib\n");
|
||||
fprintf(stderr, "For MacOS of M1 or IOS, OPENCV_VULKAN_RUNTIME=/opt/VulkanSDK/1.3.231.1/MoltenVK/dylib/macOS/libMoltenVK.dylib\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -545,6 +545,11 @@ TEST_P(DNNTestNetwork, FastNeuralStyle_eccv16)
|
||||
l1 = 0.4;
|
||||
lInf = 19.;
|
||||
}
|
||||
else if (target == DNN_TARGET_VULKAN)
|
||||
{
|
||||
l1 = 0.4;
|
||||
lInf = 7.46;
|
||||
}
|
||||
|
||||
#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2022010000)
|
||||
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL)
|
||||
|
||||
Reference in New Issue
Block a user