Feature/gem5 (#1157)

* layernrom and conv2d support float16
* update pip in ci
fix/transpose_default_perm
huochenghai 2024-01-18 09:58:42 +08:00 committed by GitHub
parent aa69f576ce
commit 3331d2d84d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 16 additions and 6 deletions

View File

@ -245,7 +245,9 @@ jobs:
cache-dependency-path: '**/requirements.test.txt'
- name: Install Python Packages
run: pip install -r requirements.test.txt
run:
python -m pip install --upgrade pip
pip install -r requirements.test.txt
- name: Create Test Environment
run: mkdir test_results

View File

@ -74,6 +74,7 @@
<PackageVersion Include="Xunit.DependencyInjection" Version="8.3.0" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.5.0" />
<PackageVersion Include="xunit.v3.assert" Version="0.1.1-pre.239" />
<PackageVersion Include="Razor.Templating.Core" Version="1.9.0" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="StyleCop.Analyzers">

View File

@ -56,7 +56,7 @@ public sealed partial class Conv2D : Op
/// <summary>
/// Gets FusedClamp.
/// </summary>
public static readonly ParameterInfo FusedClamp = new(typeof(Conv2D), 7, "fused_clamp", HasShape(new Shape(2)) & HasDataType(DataTypes.Float32));
public static readonly ParameterInfo FusedClamp = new(typeof(Conv2D), 7, "fused_clamp", HasShape(new Shape(2)) & IsFloat());
public PadMode PadMode { get; }

View File

@ -42,7 +42,8 @@ public class Conv2DEvaluator : IEvaluator<Conv2D>, ITypeInferencer<Conv2D>, ICos
new long[] { kernelShape[2], kernelShape[3] },
ToOnnxPadFormat(pad),
stride);
return OrtKI.Clip(result, fusedClamp[0], fusedClamp[1]).ToValue();
var outType = input.ToTensor().ElementType;
return Value.FromTensor(OrtKI.Clip(result.ToTensor().Cast<float>().ToOrtTensor(), fusedClamp[0], fusedClamp[1]).ToTensor().CastTo(outType));
}
/// <inheritdoc/>

View File

@ -214,7 +214,13 @@ public class LayerNormEvaluator : IEvaluator<LayerNorm>, ITypeInferencer<LayerNo
}
}
return new Tensor<float>(outputArray, input.Shape);
var ret = new Tensor<float>(outputArray, input.Shape);
return input.ElementType switch
{
Float32Type => ret,
Float16Type => ret.Cast<Half>(CastMode.KDefault),
_ => throw new NotSupportedException("Not Supported Type of Layernorm!"),
};
}
#endif
}

View File

@ -25,5 +25,5 @@ set(ENABLE_VULKAN OFF)
set(ENABLE_HALIDE OFF)
set(BUILD_PYTHON_BINDING OFF)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=rv64gv")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=rv64gv")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=rv64gvzfh")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=rv64gvzfh")