Closed
Description
RC2
- Add naive implementations of
Add
,AddMultiply
,Cosh
,Divide
,Exp
,Log
,Multiply
,MultiplyAdd
,Negate
,Subtract
,Sinh
,Tanh
- @tannergooding - Add naive implementations of
CosineSimilarity
,Distance
,Dot
,Norm
,Sigmoid
,SoftMax
- @michaelgsharp - Add naive implementations of
Max/Min{Magnitude}
,IndexOfMax/Min{Magnitude}
,ConvertToHalf/Single
,Log2
- @stephentoub - Add vectorized implementations of
Abs
,Sum
,SumOfSquares
,SumOfMagnitudes
,Product
,ProductOfSums
,ProductOfDifferences
- @stephentoub - Vectorize
Add
,Subtract
,Multiply
,Divide
,Negate
,AddMultiply
,MultiplyAdd
- @stephentoub - Backport merged functionality to release/8.0-rc2 - @michaelgsharp
- Rename
L2Normalize
toNorm
? - @stephentoub
GA
- Consider source rename of
netcore.cs
andnetstandard.cs
since they don't only apply to those target framework identifiers? per @stephentoub it maps to our existing naming conventions - Ensure packages set up to ship XML docs correctly.
- Review/update XML comments for API docs - @stephentoub
- Update the API proposal issue to reflect the new APIs we added since that issue was approved - @stephentoub
- Add content to the RC2 release notes with call to action to try out preview package - @luisquintanilla
- Collect benchmarks to include in the post - @michaelgsharp
- Make it safe across all operations to use an input span as a destination, as well, test, and document - @stephentoub
- Update
CosineSimilarity
implementations to vectorize remainder processing - @stephentoub - Update
Aggregate
helper to vectorize remainder processing (Distance
,Dot
,Norm
,Sum
,SumOfSquares
,SumOfMagnitudes
,Product
,ProductOfSums
,ProductOfDifferences
) - @stephentoub - Vectorize
Exp
- @tannergooding - Vectorize
Softmax
- @stephentoub - Vectorize
Sigmoid
- @stephentoub - Vectorize
Log
- @tannergooding - Vectorize
Log2
- @tannergooding - Vectorize
Cosh
- @stephentoub - Vectorize
Sinh
- @stephentoub - Vectorize
Tanh
- @stephentoub - Vectorize
Max
- @stephentoub - Vectorize
Max
element-wise - @stephentoub - Vectorize
Min
- @stephentoub - Vectorize
Min
element-wise - @stephentoub - Vectorize
MaxMagnitude
- @stephentoub - Vectorize
MaxMagnitude
element-wise - @stephentoub - Vectorize
MinMagnitude
- @stephentoub - Vectorize
MinMagnitude
element-wise - @stephentoub - Vectorize
ConvertToHalf
- @stephentoub - Vectorize
ConvertToSingle
- @stephentoub - Determine if we want to revert or backport FMA commit - @tannergooding (partial revert by @stephentoub)
- Decide whether to throw for unsupported span overlaps (today it's just undefined behavior) - @stephentoub
- Fix functional correctness issues found during ML.NET adoption testing - @tannergooding (issues were due to in-place operations which weren't supported in RC2 but were since supported by @stephentoub)
- Assess
CpuMath
APIs for methods and update the backlog below - @michaelgsharp - Validate perf of APIs (e.g. vectorized speedups are reasonable, comparison of scalar against naive implementations make sense) - @michaelgsharp
- Vectorize
IndexOfMax
@michaelgsharp - Vectorize
IndexOfMin
@michaelgsharp - Vectorize
IndexOfMaxMagnitude
- @michaelgsharp - Vectorize
IndexOfMinMagnitude
- @michaelgsharp - Alignment review/guidance/updates to existing methods - @tannergooding
- Rerun perf comparisons to ensure this addresses performance penalities for small sets
- Unary methods
- Binary and ternary methods
- Aggregate and methods not using the shared helpers
- Moved to post-GA:
ConvertToHalf
,ConvertToSingle
,CosineSimilarity
,IndexOfMin
,IndexOfMax
,IndexOfMinMagnitude
,IndexOfMaxMagnitude
- Confirm required ordering semantics in
IndexOfXx
methods - @tannergooding - e.g. - Backport final functionality to release/8.0
- Adopt in ML.NET - @michaelgsharp
- Methods that use indices will remain in ML.NET but could go into the TensorPrimitives backlog below
- Methods that require composition will remain in ML.NET (for now), e.g. calculate max magnitude and subtract the mean
- Add
- AddScale
- AddScaleCopy
- Scale
- ScaleAdd (via composition, but could be improved) -- Added to backlog
- MulElementWise
- Sum
- SumSq
- SumAbs (via composition)
- MaxAbs
- MaxAbsDiff (via composition)
- DotProductDense
- L2DistSquared
- Add (with indices) -- Added to backlog
- AddScale (with indices) -- Added to backlog
- DotProductSparse -- Added to backlog
- MatrixTimesSource -- Added to backlog
- SdcaL1UpdateDense -- Added to backlog
- SdcaL1UpdateSparse -- Added to backlog
- ZeroMatrixItems -- Added to backlog
- Adopt in SemanticKernel once RC2 nuget package is available - @stephentoub