Commit a0c0360c authored by rocking's avatar rocking
Browse files

Extract variable in example

parent 3af2e4c9
...@@ -35,6 +35,7 @@ static constexpr ck::index_t Hi = 71; // input H ...@@ -35,6 +35,7 @@ static constexpr ck::index_t Hi = 71; // input H
static constexpr ck::index_t Wi = 71; // input W static constexpr ck::index_t Wi = 71; // input W
static constexpr ck::index_t Ho = 36; // output H static constexpr ck::index_t Ho = 36; // output H
static constexpr ck::index_t Wo = 36; // output W static constexpr ck::index_t Wo = 36; // output W
static constexpr float requant_scale = 0.5f; // requantize qAcc to qz
struct SimpleDeviceMem struct SimpleDeviceMem
{ {
...@@ -103,7 +104,8 @@ int main(int argc, char* argv[]) ...@@ -103,7 +104,8 @@ int main(int argc, char* argv[])
for(int i = 0; i < op_ptrs.size(); ++i) for(int i = 0; i < op_ptrs.size(); ++i)
{ {
auto& op_ptr = op_ptrs[i]; auto& op_ptr = op_ptrs[i];
auto argument_ptr = op_ptr->MakeArgumentPointer(in.GetDeviceBuffer(), auto argument_ptr =
op_ptr->MakeArgumentPointer(in.GetDeviceBuffer(),
wei.GetDeviceBuffer(), wei.GetDeviceBuffer(),
{bias.GetDeviceBuffer()}, {bias.GetDeviceBuffer()},
out.GetDeviceBuffer(), out.GetDeviceBuffer(),
...@@ -121,7 +123,7 @@ int main(int argc, char* argv[]) ...@@ -121,7 +123,7 @@ int main(int argc, char* argv[])
in_right_pad, in_right_pad,
PassThrough{}, PassThrough{},
PassThrough{}, PassThrough{},
OutElementOp{0.5f, ActivationOp{}}); OutElementOp{requant_scale, ActivationOp{}});
auto invoker_ptr = op_ptr->MakeInvokerPointer(); auto invoker_ptr = op_ptr->MakeInvokerPointer();
std::string op_name = op_ptr->GetTypeString(); std::string op_name = op_ptr->GetTypeString();
...@@ -165,7 +167,8 @@ int main(int argc, char* argv[]) ...@@ -165,7 +167,8 @@ int main(int argc, char* argv[])
auto& op_ptr = op_ptrs[best_op_id]; auto& op_ptr = op_ptrs[best_op_id];
std::cout << "Run the best instance without timing: " << op_ptr->GetTypeString() std::cout << "Run the best instance without timing: " << op_ptr->GetTypeString()
<< std::endl; << std::endl;
auto argument_ptr = op_ptr->MakeArgumentPointer(in.GetDeviceBuffer(), auto argument_ptr =
op_ptr->MakeArgumentPointer(in.GetDeviceBuffer(),
wei.GetDeviceBuffer(), wei.GetDeviceBuffer(),
{bias.GetDeviceBuffer()}, {bias.GetDeviceBuffer()},
out.GetDeviceBuffer(), out.GetDeviceBuffer(),
...@@ -183,7 +186,7 @@ int main(int argc, char* argv[]) ...@@ -183,7 +186,7 @@ int main(int argc, char* argv[])
in_right_pad, in_right_pad,
PassThrough{}, PassThrough{},
PassThrough{}, PassThrough{},
OutElementOp{0.5f, ActivationOp{}}); OutElementOp{requant_scale, ActivationOp{}});
auto invoker_ptr = op_ptr->MakeInvokerPointer(); auto invoker_ptr = op_ptr->MakeInvokerPointer();
......
...@@ -33,6 +33,7 @@ static constexpr ck::index_t Hi = 71; // input H ...@@ -33,6 +33,7 @@ static constexpr ck::index_t Hi = 71; // input H
static constexpr ck::index_t Wi = 71; // input W static constexpr ck::index_t Wi = 71; // input W
static constexpr ck::index_t Ho = 36; // output H static constexpr ck::index_t Ho = 36; // output H
static constexpr ck::index_t Wo = 36; // output W static constexpr ck::index_t Wo = 36; // output W
static constexpr float requant_scale = 0.5f; // requantize qAcc to qY
struct SimpleDeviceMem struct SimpleDeviceMem
{ {
...@@ -97,7 +98,8 @@ int main(int argc, char* argv[]) ...@@ -97,7 +98,8 @@ int main(int argc, char* argv[])
for(int i = 0; i < op_ptrs.size(); ++i) for(int i = 0; i < op_ptrs.size(); ++i)
{ {
auto& op_ptr = op_ptrs[i]; auto& op_ptr = op_ptrs[i];
auto argument_ptr = op_ptr->MakeArgumentPointer(in.GetDeviceBuffer(), auto argument_ptr =
op_ptr->MakeArgumentPointer(in.GetDeviceBuffer(),
wei.GetDeviceBuffer(), wei.GetDeviceBuffer(),
{}, {},
out.GetDeviceBuffer(), out.GetDeviceBuffer(),
...@@ -115,7 +117,7 @@ int main(int argc, char* argv[]) ...@@ -115,7 +117,7 @@ int main(int argc, char* argv[])
in_right_pad, in_right_pad,
PassThrough{}, PassThrough{},
PassThrough{}, PassThrough{},
OutElementOp{0.5f, ActivationOp{}}); OutElementOp{requant_scale, ActivationOp{}});
auto invoker_ptr = op_ptr->MakeInvokerPointer(); auto invoker_ptr = op_ptr->MakeInvokerPointer();
std::string op_name = op_ptr->GetTypeString(); std::string op_name = op_ptr->GetTypeString();
...@@ -158,7 +160,8 @@ int main(int argc, char* argv[]) ...@@ -158,7 +160,8 @@ int main(int argc, char* argv[])
auto& op_ptr = op_ptrs[best_op_id]; auto& op_ptr = op_ptrs[best_op_id];
std::cout << "Run the best instance without timing: " << op_ptr->GetTypeString() std::cout << "Run the best instance without timing: " << op_ptr->GetTypeString()
<< std::endl; << std::endl;
auto argument_ptr = op_ptr->MakeArgumentPointer(in.GetDeviceBuffer(), auto argument_ptr =
op_ptr->MakeArgumentPointer(in.GetDeviceBuffer(),
wei.GetDeviceBuffer(), wei.GetDeviceBuffer(),
{}, {},
out.GetDeviceBuffer(), out.GetDeviceBuffer(),
...@@ -176,7 +179,7 @@ int main(int argc, char* argv[]) ...@@ -176,7 +179,7 @@ int main(int argc, char* argv[])
in_right_pad, in_right_pad,
PassThrough{}, PassThrough{},
PassThrough{}, PassThrough{},
OutElementOp{0.5f, ActivationOp{}}); OutElementOp{requant_scale, ActivationOp{}});
auto invoker_ptr = op_ptr->MakeInvokerPointer(); auto invoker_ptr = op_ptr->MakeInvokerPointer();
......
...@@ -78,6 +78,7 @@ using DeviceGroupedConvNDFwdInstance = ...@@ -78,6 +78,7 @@ using DeviceGroupedConvNDFwdInstance =
int main() int main()
{ {
const auto out_element_op = OutElementOp{0.5f, ActivationOp{}}; float requant_scale = 0.5f;
const auto out_element_op = OutElementOp{requant_scale, ActivationOp{}};
run_conv2d_fwd_bias_perlayer_quantization_example(out_element_op); run_conv2d_fwd_bias_perlayer_quantization_example(out_element_op);
} }
...@@ -81,6 +81,7 @@ using DeviceGroupedConvNDFwdInstance = ...@@ -81,6 +81,7 @@ using DeviceGroupedConvNDFwdInstance =
int main() int main()
{ {
const auto out_element_op = OutElementOp{0.5f, ActivationOp{}}; float scale_z_inv = 0.5f;
const auto out_element_op = OutElementOp{scale_z_inv, ActivationOp{}};
run_conv2d_fwd_bias_perchannel_quantization_example(out_element_op); run_conv2d_fwd_bias_perchannel_quantization_example(out_element_op);
}; };
...@@ -78,6 +78,8 @@ using DeviceGroupedConvNDFwdInstance = ...@@ -78,6 +78,8 @@ using DeviceGroupedConvNDFwdInstance =
int main() int main()
{ {
const auto out_element_op = OutElementOp{0.5f, 0.5f, ActivationOp{}}; float scale_acc = 0.5f;
float scale_z_inv = 0.5f;
const auto out_element_op = OutElementOp{scale_z_inv, scale_acc, ActivationOp{}};
run_conv2d_fwd_bias_perlayer_quantization_example(out_element_op); run_conv2d_fwd_bias_perlayer_quantization_example(out_element_op);
} }
...@@ -73,6 +73,7 @@ using DeviceGroupedConvNDFwdInstance = ...@@ -73,6 +73,7 @@ using DeviceGroupedConvNDFwdInstance =
int main() int main()
{ {
const auto out_element_op = OutElementOp{0.5f, ActivationOp{}}; float requant_scale = 0.5f;
const auto out_element_op = OutElementOp{requant_scale, ActivationOp{}};
run_conv2d_fwd_perlayer_quantization_example(out_element_op); run_conv2d_fwd_perlayer_quantization_example(out_element_op);
} }
...@@ -82,6 +82,7 @@ using DeviceGroupedConvNDFwdInstance = ...@@ -82,6 +82,7 @@ using DeviceGroupedConvNDFwdInstance =
int main() int main()
{ {
const auto out_element_op = OutElementOp{0.5f, ActivationOp{}}; float requant_scale = 0.5f;
const auto out_element_op = OutElementOp{requant_scale, ActivationOp{}};
run_conv2d_fwd_bias_perlayer_quantization_example(out_element_op); run_conv2d_fwd_bias_perlayer_quantization_example(out_element_op);
} }
...@@ -77,6 +77,7 @@ using DeviceGroupedConvNDFwdInstance = ...@@ -77,6 +77,7 @@ using DeviceGroupedConvNDFwdInstance =
int main() int main()
{ {
const auto out_element_op = OutElementOp{0.5f, ActivationOp{}}; float requant_scale = 0.5f;
const auto out_element_op = OutElementOp{requant_scale, ActivationOp{}};
run_conv2d_fwd_perlayer_quantization_example(out_element_op); run_conv2d_fwd_perlayer_quantization_example(out_element_op);
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment