"cacheflow/vscode:/vscode.git/clone" did not exist on "c9d5b6d4a8b3f51ff6c9eee7eb52bb5149d89b6a"
Unverified Commit 018b2356 authored by Kirthi Shankar Sivamani's avatar Kirthi Shankar Sivamani Committed by GitHub
Browse files

Fix segfault during onnx export (#126)



* Fix segfault during GeLU export
Signed-off-by: default avatarKirthi Shankar Sivamani <ksivamani@nvidia.com>

* address review comments
Signed-off-by: default avatarKirthi Shankar Sivamani <ksivamani@nvidia.com>

---------
Signed-off-by: default avatarKirthi Shankar Sivamani <ksivamani@nvidia.com>
parent 80542a0a
...@@ -82,13 +82,21 @@ def compute_in_fp32(g, inp, subgraph, cast_outp): ...@@ -82,13 +82,21 @@ def compute_in_fp32(g, inp, subgraph, cast_outp):
If `inp` data type is not FP32, add a cast of `inp` to FP32 and feed that into `subgraph`. If `inp` data type is not FP32, add a cast of `inp` to FP32 and feed that into `subgraph`.
Then, if `cast_output` is true, cast subgraphs's output back to `inp` data type. Then, if `cast_output` is true, cast subgraphs's output back to `inp` data type.
""" """
inp_dtype = _type_utils.JitScalarType.from_value(inp) try:
inp_dtype = {
"Float": _C_onnx.TensorProtoDataType.FLOAT,
"Half": _C_onnx.TensorProtoDataType.FLOAT16,
"BFloat16": _C_onnx.TensorProtoDataType.BFLOAT16,
}[inp.type().scalarType()]
except KeyError as e:
raise TypeError(f"Onnx export for dtype {inp.type().scalarType()} not supported.") from e
is_fp32 = inp_dtype == _type_utils.JitScalarType.FLOAT is_fp32 = inp_dtype == _type_utils.JitScalarType.FLOAT
if not is_fp32: if not is_fp32:
inp = g.op("Cast", inp, to_i=_C_onnx.TensorProtoDataType.FLOAT) inp = g.op("Cast", inp, to_i=_C_onnx.TensorProtoDataType.FLOAT)
sg_out = subgraph(inp) sg_out = subgraph(inp)
if not is_fp32 and cast_outp: if not is_fp32 and cast_outp:
sg_out = g.op("Cast", sg_out, to_i=_type_utils.JitScalarType(inp_dtype).onnx_type()) sg_out = g.op("Cast", sg_out, to_i=inp_dtype)
return sg_out return sg_out
......
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