Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V0.10.0 working #69

Draft
wants to merge 203 commits into
base: master
Choose a base branch
from
Draft

V0.10.0 working #69

wants to merge 203 commits into from

Conversation

chewxy
Copy link
Member

@chewxy chewxy commented Jun 18, 2020

No description provided.

chewxy and others added 30 commits December 10, 2017 12:40
Committing changes made by @siquus in gorgornia : siquus/gorgonia@403…
…d to inplace) transpose.

The old transpose has been placed behind a build tag
Added tests to test for all the things
Pulled iterator_native from the upcoming v0.9.0 update.
Couldn't cherry pick commits from v0.9.0 to move over, so decided to checkout individual files instead
Native iterators go into their own package now
Remove Go <1.8
Improved multi arch support
# v0.9.0 #

The changes made in this PR is aimed at better supporting v0.9.0 of Gorgonia itself.  Along the way there are some new features and optimizations, as well as some bug fixes. 

The majority of the work in supporting v0.9.0 of Gorgonia is to shore up the underlying architecture to support CUDA related engines. This means moving more things to rely on `Engine` while keeping the engine interface overheads low.  Additionally this also means better support for column major data layouts. 


* Heavier reliance on `Engine` for most functions. This allows for extensibility on the data structure.
* Long standing bugbear - concepts of `RowVec` and `ColVec` has been removed (thanks to @matdodgson)
    - Touch points: `ap.go`, `iterator.go`,  `iterator_mult.go`.`shape.go`, and the tests that were correct prior to this change have semantic meaning changes too. 
    - **POTENTIAL TECH DEBT**: `iterator_mult.go` - the solution of filling with ones is a little too dodgy for my liking. The alternative would be to change `BroadcastStrides` which will change even more things (`Concat`, `Stack` etc)
* **Optimization**:
    -  `AP` has been depointerized in `*Dense` (thanks to @docmerlin). This reduces *some* amount of GC pointer chasing, but not all
    - allocation is slightly improved. (`(array).fromSliceOrArrayer`, `(array).fix()` and `(array).forcefix()` are part of the improvement around the logic of allocating data.
* **Bug fixes**:
    - Fixes subtle errors in linear algebra functions. The result is a slightly longer function but easier to reason with.
    - Fixes some subtle bugs in `Concat` - see also gorgonia/gorgonia#218
    - Fixed some small bugs with regards to `SampleIndex` that only show up when the slices have extreme lengths. This API should have been deprecated 2 years ago, but eh... it touched a lot of external projects.
* **API changes**:
    - `Diag` is made available. Relies heavily on an `Engine`'s implementation
    - `NewFlatIterator` is unexported.
    - `NewAP` is unexported.
    - `MakeAP` is used instead.
    - `(Tensor).DataOrder()` is added to the definiiton of what a `Tensor` is. 
    - `(Shape).IsScalarEquiv()`  is a new method. This corresponds to the change of semantics of what a `Shape` should be.
    - `(Shape).CalcStrides()` is exported now. This enables users to correctly calculate strides that are consistent to what the package expects.
    - `(Shape).CalcStridesColMajor()` is exported as the method to calculate the strides of a Col-Major `*Dense`. 
* **New Interfaces**:
    - `NonStdEngine` is an `Engine that does not allocate using the default allocator. This allows for both embedding a `DefaultEngine` while overriding the allocation behaviour.
    - `Diager` - any engine that can return a tensor that only contains the diagonal values of the input
    - `NaNChecker` and `InfChecker` - engines that can check a tensor for NaN and Inf
* **New Features**:
   * Added full support for colmajor tensors. (fixes #10)
        - TODO: colmajor iterator's prev() method (see #34)
   - Added serialization to Protobuf and Flatbuffers
        * TODO: Add example for serialization (see #35 and #36)
   - Added more support for sparse CS tensors.
* **New Subpackages**:
    * `native` is a subpackage that essentially gives users a native, Go-based iterator. Basically the ability to go from a `*Dense` to a `[][]T` or `[][][]T` **without extra allocations** (for the data). This was pulled into `master` earlier, but as of v0.9.0, the generic version is available too.
* **Semantic Changes**:
    - `Shape` has semantic changes regarding whether or not a shape is scalar. A scalar shape is defined to be `Shape{}` or `Shape{1}` only. Formerly, `Shape{1,1}` was also considered to be scalar. Now they're considered to be `ScalarEquivalent` (along with `Shape{1, 1, .... , 1}`)
    - A `Dtype` that is is orderable is also now comparable for equality. If `RegisterOrd` is called with a new `Dtype`, it is also automatically registered as `Eq`.  
* **Cosmetic Changes**:
    - README has been updated to point to correct doc pages
* chore: change the name of the receiver for coherency

* fix: wrong formating for the error message

* chore: fix error formating and unreachable code

* chore: error formatting

* chore: error formatting

* fix: expected output of the readnumpy test

* fix: replace the string equal by a regexp

the test will not fail in case of a change of the formatting directive

* feat: doing lazy initialization of the underlying value of an array

The value is populated on a call to Data()
* Fixed Travis

* Fixed reflect type issue per golang/go#32303
* feat: enhance the performances of the Repeat operator

If possible, avoid the use of the copyDenseSlice function to be able to
reuse the source slice.

* feat: add some bench for the Repeat operation

* fix: use named subbenchmark for clarity on the output

* Moved "fastCopy" of repeat to a new method.
Added tests for slow path (by creating masked copies)

* Moved benchmarks out to a separate file
* Updated gomod and deleted Gopkg

* Updated gomod and go sum
* Fix typo

stucture -> structure
obiviating -> obviating

* Fix typo (initalizes -> initializes)

initalizes -> initializes

* Fix typo (inaccessble -> inaccessible)

inaccessble -> inaccessible

* Fix typo (occured -> occurred)

occured -> occurred
… 1 to account for prior reductions, no matter how many reductions had occurred. (#48)

* Factor out common code for the Max, Min, and Sum reductions.
* Include tests for 4D tensors for complete as well as partial reduction across all 3 reduction methods.

Closes #47
* Fix typo

abstrations -> abstractions

* Fix typo

Simliarly -> Similarly
chewxy and others added 29 commits October 19, 2021 04:57
* Implement the Narrow operation for Dense tensors.

Also, implemented a default slicer

* Added a new failing test.

This seems like a bug with the non contiguous View implementation

* Fixed the test. The test was correct

* Added a package level API for Narrow

Co-authored-by: David Cuadrado <[email protected]>
… reduce allocations

Results vs prev:

benchmark                                              old ns/op     new ns/op     delta
BenchmarkSoftmax/(3,4)_Float64_axis_0-20               2237          2057          -8.05%
BenchmarkSoftmax/(3,4)_Float32_axis_0-20               2138          1920          -10.20%
BenchmarkSoftmax/(3,4)_Float64_axis_1-20               2112          1798          -14.87%
BenchmarkSoftmax/(3,4)_Float32_axis_1-20               2123          1844          -13.14%
BenchmarkSoftmax/(2,3,2)_Float64_axis_0-20             2236          1937          -13.37%
BenchmarkSoftmax/(2,3,2)_Float32_axis_0-20             2305          2040          -11.50%
BenchmarkSoftmax/(2,3,2)_Float64_axis_1-20             2167          1931          -10.89%
BenchmarkSoftmax/(2,3,2)_Float32_axis_1-20             2261          1884          -16.67%
BenchmarkSoftmax/(2,3,2)_Float64_axis_2-20             2119          2035          -3.96%
BenchmarkSoftmax/(2,3,2)_Float32_axis_2-20             2143          1846          -13.86%
BenchmarkSoftmax/(2,3,2)_Float64_axis_-1-20            2212          1821          -17.68%
BenchmarkSoftmax/(2,3,2)_Float32_axis_-1-20            2164          1930          -10.81%
BenchmarkSoftmax/(641,19,199)_Float64_axis_-1-20       36898948      36137745      -2.06%
BenchmarkSoftmax/(641,_19,_199)_Float32_axis_-1-20     35541861      35019509      -1.47%

benchmark                                              old allocs     new allocs     delta
BenchmarkSoftmax/(3,4)_Float64_axis_0-20               16             12             -25.00%
BenchmarkSoftmax/(3,4)_Float32_axis_0-20               16             12             -25.00%
BenchmarkSoftmax/(3,4)_Float64_axis_1-20               16             12             -25.00%
BenchmarkSoftmax/(3,4)_Float32_axis_1-20               16             12             -25.00%
BenchmarkSoftmax/(2,3,2)_Float64_axis_0-20             16             12             -25.00%
BenchmarkSoftmax/(2,3,2)_Float32_axis_0-20             16             12             -25.00%
BenchmarkSoftmax/(2,3,2)_Float64_axis_1-20             16             12             -25.00%
BenchmarkSoftmax/(2,3,2)_Float32_axis_1-20             16             12             -25.00%
BenchmarkSoftmax/(2,3,2)_Float64_axis_2-20             16             12             -25.00%
BenchmarkSoftmax/(2,3,2)_Float32_axis_2-20             16             12             -25.00%
BenchmarkSoftmax/(2,3,2)_Float64_axis_-1-20            16             12             -25.00%
BenchmarkSoftmax/(2,3,2)_Float32_axis_-1-20            16             12             -25.00%
BenchmarkSoftmax/(641,19,199)_Float64_axis_-1-20       17             13             -23.53%
BenchmarkSoftmax/(641,_19,_199)_Float32_axis_-1-20     17             13             -23.53%

benchmark                                              old bytes     new bytes     delta
BenchmarkSoftmax/(3,4)_Float64_axis_0-20               664           568           -14.46%
BenchmarkSoftmax/(3,4)_Float32_axis_0-20               616           520           -15.58%
BenchmarkSoftmax/(3,4)_Float64_axis_1-20               664           568           -14.46%
BenchmarkSoftmax/(3,4)_Float32_axis_1-20               616           520           -15.58%
BenchmarkSoftmax/(2,3,2)_Float64_axis_0-20             696           600           -13.79%
BenchmarkSoftmax/(2,3,2)_Float32_axis_0-20             648           552           -14.81%
BenchmarkSoftmax/(2,3,2)_Float64_axis_1-20             696           600           -13.79%
BenchmarkSoftmax/(2,3,2)_Float32_axis_1-20             648           552           -14.81%
BenchmarkSoftmax/(2,3,2)_Float64_axis_2-20             696           600           -13.79%
BenchmarkSoftmax/(2,3,2)_Float32_axis_2-20             648           552           -14.81%
BenchmarkSoftmax/(2,3,2)_Float64_axis_-1-20            696           600           -13.79%
BenchmarkSoftmax/(2,3,2)_Float32_axis_-1-20            648           552           -14.81%
BenchmarkSoftmax/(641,19,199)_Float64_axis_-1-20       19392926      19392912      -0.00%
BenchmarkSoftmax/(641,_19,_199)_Float32_axis_-1-20     9701448       9701351       -0.00%
…ocs. Results:

```
benchmark                                              old ns/op     new ns/op     delta
BenchmarkSoftmax/(3,4)_Float64_axis_0-20               2057          1619          -21.29%
BenchmarkSoftmax/(3,4)_Float32_axis_0-20               1920          1563          -18.59%
BenchmarkSoftmax/(3,4)_Float64_axis_1-20               1798          1508          -16.13%
BenchmarkSoftmax/(3,4)_Float32_axis_1-20               1844          1575          -14.59%
BenchmarkSoftmax/(2,3,2)_Float64_axis_0-20             1937          1836          -5.21%
BenchmarkSoftmax/(2,3,2)_Float32_axis_0-20             2040          1672          -18.04%
BenchmarkSoftmax/(2,3,2)_Float64_axis_1-20             1931          1704          -11.76%
BenchmarkSoftmax/(2,3,2)_Float32_axis_1-20             1884          1542          -18.15%
BenchmarkSoftmax/(2,3,2)_Float64_axis_2-20             2035          1558          -23.44%
BenchmarkSoftmax/(2,3,2)_Float32_axis_2-20             1846          1626          -11.92%
BenchmarkSoftmax/(2,3,2)_Float64_axis_-1-20            1821          1552          -14.77%
BenchmarkSoftmax/(2,3,2)_Float32_axis_-1-20            1930          1499          -22.33%
BenchmarkSoftmax/(641,19,199)_Float64_axis_-1-20       36137745      36795574      +1.82%
BenchmarkSoftmax/(641,_19,_199)_Float32_axis_-1-20     35019509      34759423      -0.74%

benchmark                                              old allocs     new allocs     delta
BenchmarkSoftmax/(3,4)_Float64_axis_0-20               12             10             -16.67%
BenchmarkSoftmax/(3,4)_Float32_axis_0-20               12             10             -16.67%
BenchmarkSoftmax/(3,4)_Float64_axis_1-20               12             10             -16.67%
BenchmarkSoftmax/(3,4)_Float32_axis_1-20               12             10             -16.67%
BenchmarkSoftmax/(2,3,2)_Float64_axis_0-20             12             10             -16.67%
BenchmarkSoftmax/(2,3,2)_Float32_axis_0-20             12             10             -16.67%
BenchmarkSoftmax/(2,3,2)_Float64_axis_1-20             12             10             -16.67%
BenchmarkSoftmax/(2,3,2)_Float32_axis_1-20             12             10             -16.67%
BenchmarkSoftmax/(2,3,2)_Float64_axis_2-20             12             10             -16.67%
BenchmarkSoftmax/(2,3,2)_Float32_axis_2-20             12             10             -16.67%
BenchmarkSoftmax/(2,3,2)_Float64_axis_-1-20            12             10             -16.67%
BenchmarkSoftmax/(2,3,2)_Float32_axis_-1-20            12             10             -16.67%
BenchmarkSoftmax/(641,19,199)_Float64_axis_-1-20       13             11             -15.38%
BenchmarkSoftmax/(641,_19,_199)_Float32_axis_-1-20     13             11             -15.38%

benchmark                                              old bytes     new bytes     delta
BenchmarkSoftmax/(3,4)_Float64_axis_0-20               568           528           -7.04%
BenchmarkSoftmax/(3,4)_Float32_axis_0-20               520           480           -7.69%
BenchmarkSoftmax/(3,4)_Float64_axis_1-20               568           528           -7.04%
BenchmarkSoftmax/(3,4)_Float32_axis_1-20               520           480           -7.69%
BenchmarkSoftmax/(2,3,2)_Float64_axis_0-20             600           552           -8.00%
BenchmarkSoftmax/(2,3,2)_Float32_axis_0-20             552           504           -8.70%
BenchmarkSoftmax/(2,3,2)_Float64_axis_1-20             600           552           -8.00%
BenchmarkSoftmax/(2,3,2)_Float32_axis_1-20             552           504           -8.70%
BenchmarkSoftmax/(2,3,2)_Float64_axis_2-20             600           552           -8.00%
BenchmarkSoftmax/(2,3,2)_Float32_axis_2-20             552           504           -8.70%
BenchmarkSoftmax/(2,3,2)_Float64_axis_-1-20            600           552           -8.00%
BenchmarkSoftmax/(2,3,2)_Float32_axis_-1-20            552           504           -8.70%
BenchmarkSoftmax/(641,19,199)_Float64_axis_-1-20       19392912      19392892      -0.00%
BenchmarkSoftmax/(641,_19,_199)_Float32_axis_-1-20     9701351       9701312       -0.00%
```
* fix a bug in ByIdx

* Added comments and documentation to softmax

* Renamed the variables in SelectByIndicesB and SelectByIndices for better clarity.

* Added example of ByIndices

* Removed the allocation in `SoftMax` and `SoftMaxB` as suggested by @dcu

* Switch to using `getFloat64s` and `getFloat32s` (new utility func) to reduce allocations

```
Results vs prev:

benchmark                                              old ns/op     new ns/op     delta
BenchmarkSoftmax/(3,4)_Float64_axis_0-20               2237          2057          -8.05%
BenchmarkSoftmax/(3,4)_Float32_axis_0-20               2138          1920          -10.20%
BenchmarkSoftmax/(3,4)_Float64_axis_1-20               2112          1798          -14.87%
BenchmarkSoftmax/(3,4)_Float32_axis_1-20               2123          1844          -13.14%
BenchmarkSoftmax/(2,3,2)_Float64_axis_0-20             2236          1937          -13.37%
BenchmarkSoftmax/(2,3,2)_Float32_axis_0-20             2305          2040          -11.50%
BenchmarkSoftmax/(2,3,2)_Float64_axis_1-20             2167          1931          -10.89%
BenchmarkSoftmax/(2,3,2)_Float32_axis_1-20             2261          1884          -16.67%
BenchmarkSoftmax/(2,3,2)_Float64_axis_2-20             2119          2035          -3.96%
BenchmarkSoftmax/(2,3,2)_Float32_axis_2-20             2143          1846          -13.86%
BenchmarkSoftmax/(2,3,2)_Float64_axis_-1-20            2212          1821          -17.68%
BenchmarkSoftmax/(2,3,2)_Float32_axis_-1-20            2164          1930          -10.81%
BenchmarkSoftmax/(641,19,199)_Float64_axis_-1-20       36898948      36137745      -2.06%
BenchmarkSoftmax/(641,_19,_199)_Float32_axis_-1-20     35541861      35019509      -1.47%

benchmark                                              old allocs     new allocs     delta
BenchmarkSoftmax/(3,4)_Float64_axis_0-20               16             12             -25.00%
BenchmarkSoftmax/(3,4)_Float32_axis_0-20               16             12             -25.00%
BenchmarkSoftmax/(3,4)_Float64_axis_1-20               16             12             -25.00%
BenchmarkSoftmax/(3,4)_Float32_axis_1-20               16             12             -25.00%
BenchmarkSoftmax/(2,3,2)_Float64_axis_0-20             16             12             -25.00%
BenchmarkSoftmax/(2,3,2)_Float32_axis_0-20             16             12             -25.00%
BenchmarkSoftmax/(2,3,2)_Float64_axis_1-20             16             12             -25.00%
BenchmarkSoftmax/(2,3,2)_Float32_axis_1-20             16             12             -25.00%
BenchmarkSoftmax/(2,3,2)_Float64_axis_2-20             16             12             -25.00%
BenchmarkSoftmax/(2,3,2)_Float32_axis_2-20             16             12             -25.00%
BenchmarkSoftmax/(2,3,2)_Float64_axis_-1-20            16             12             -25.00%
BenchmarkSoftmax/(2,3,2)_Float32_axis_-1-20            16             12             -25.00%
BenchmarkSoftmax/(641,19,199)_Float64_axis_-1-20       17             13             -23.53%
BenchmarkSoftmax/(641,_19,_199)_Float32_axis_-1-20     17             13             -23.53%

benchmark                                              old bytes     new bytes     delta
BenchmarkSoftmax/(3,4)_Float64_axis_0-20               664           568           -14.46%
BenchmarkSoftmax/(3,4)_Float32_axis_0-20               616           520           -15.58%
BenchmarkSoftmax/(3,4)_Float64_axis_1-20               664           568           -14.46%
BenchmarkSoftmax/(3,4)_Float32_axis_1-20               616           520           -15.58%
BenchmarkSoftmax/(2,3,2)_Float64_axis_0-20             696           600           -13.79%
BenchmarkSoftmax/(2,3,2)_Float32_axis_0-20             648           552           -14.81%
BenchmarkSoftmax/(2,3,2)_Float64_axis_1-20             696           600           -13.79%
BenchmarkSoftmax/(2,3,2)_Float32_axis_1-20             648           552           -14.81%
BenchmarkSoftmax/(2,3,2)_Float64_axis_2-20             696           600           -13.79%
BenchmarkSoftmax/(2,3,2)_Float32_axis_2-20             648           552           -14.81%
BenchmarkSoftmax/(2,3,2)_Float64_axis_-1-20            696           600           -13.79%
BenchmarkSoftmax/(2,3,2)_Float32_axis_-1-20            648           552           -14.81%
BenchmarkSoftmax/(641,19,199)_Float64_axis_-1-20       19392926      19392912      -0.00%
BenchmarkSoftmax/(641,_19,_199)_Float32_axis_-1-20     9701448       9701351       -0.00%
```

* `SoftMax` and `SoftMaxB` optimization: Removed unnecessary calls to .Clone() which reduces the number of allocs. Results:

```
benchmark                                              old ns/op     new ns/op     delta
BenchmarkSoftmax/(3,4)_Float64_axis_0-20               2057          1619          -21.29%
BenchmarkSoftmax/(3,4)_Float32_axis_0-20               1920          1563          -18.59%
BenchmarkSoftmax/(3,4)_Float64_axis_1-20               1798          1508          -16.13%
BenchmarkSoftmax/(3,4)_Float32_axis_1-20               1844          1575          -14.59%
BenchmarkSoftmax/(2,3,2)_Float64_axis_0-20             1937          1836          -5.21%
BenchmarkSoftmax/(2,3,2)_Float32_axis_0-20             2040          1672          -18.04%
BenchmarkSoftmax/(2,3,2)_Float64_axis_1-20             1931          1704          -11.76%
BenchmarkSoftmax/(2,3,2)_Float32_axis_1-20             1884          1542          -18.15%
BenchmarkSoftmax/(2,3,2)_Float64_axis_2-20             2035          1558          -23.44%
BenchmarkSoftmax/(2,3,2)_Float32_axis_2-20             1846          1626          -11.92%
BenchmarkSoftmax/(2,3,2)_Float64_axis_-1-20            1821          1552          -14.77%
BenchmarkSoftmax/(2,3,2)_Float32_axis_-1-20            1930          1499          -22.33%
BenchmarkSoftmax/(641,19,199)_Float64_axis_-1-20       36137745      36795574      +1.82%
BenchmarkSoftmax/(641,_19,_199)_Float32_axis_-1-20     35019509      34759423      -0.74%

benchmark                                              old allocs     new allocs     delta
BenchmarkSoftmax/(3,4)_Float64_axis_0-20               12             10             -16.67%
BenchmarkSoftmax/(3,4)_Float32_axis_0-20               12             10             -16.67%
BenchmarkSoftmax/(3,4)_Float64_axis_1-20               12             10             -16.67%
BenchmarkSoftmax/(3,4)_Float32_axis_1-20               12             10             -16.67%
BenchmarkSoftmax/(2,3,2)_Float64_axis_0-20             12             10             -16.67%
BenchmarkSoftmax/(2,3,2)_Float32_axis_0-20             12             10             -16.67%
BenchmarkSoftmax/(2,3,2)_Float64_axis_1-20             12             10             -16.67%
BenchmarkSoftmax/(2,3,2)_Float32_axis_1-20             12             10             -16.67%
BenchmarkSoftmax/(2,3,2)_Float64_axis_2-20             12             10             -16.67%
BenchmarkSoftmax/(2,3,2)_Float32_axis_2-20             12             10             -16.67%
BenchmarkSoftmax/(2,3,2)_Float64_axis_-1-20            12             10             -16.67%
BenchmarkSoftmax/(2,3,2)_Float32_axis_-1-20            12             10             -16.67%
BenchmarkSoftmax/(641,19,199)_Float64_axis_-1-20       13             11             -15.38%
BenchmarkSoftmax/(641,_19,_199)_Float32_axis_-1-20     13             11             -15.38%

benchmark                                              old bytes     new bytes     delta
BenchmarkSoftmax/(3,4)_Float64_axis_0-20               568           528           -7.04%
BenchmarkSoftmax/(3,4)_Float32_axis_0-20               520           480           -7.69%
BenchmarkSoftmax/(3,4)_Float64_axis_1-20               568           528           -7.04%
BenchmarkSoftmax/(3,4)_Float32_axis_1-20               520           480           -7.69%
BenchmarkSoftmax/(2,3,2)_Float64_axis_0-20             600           552           -8.00%
BenchmarkSoftmax/(2,3,2)_Float32_axis_0-20             552           504           -8.70%
BenchmarkSoftmax/(2,3,2)_Float64_axis_1-20             600           552           -8.00%
BenchmarkSoftmax/(2,3,2)_Float32_axis_1-20             552           504           -8.70%
BenchmarkSoftmax/(2,3,2)_Float64_axis_2-20             600           552           -8.00%
BenchmarkSoftmax/(2,3,2)_Float32_axis_2-20             552           504           -8.70%
BenchmarkSoftmax/(2,3,2)_Float64_axis_-1-20            600           552           -8.00%
BenchmarkSoftmax/(2,3,2)_Float32_axis_-1-20            552           504           -8.70%
BenchmarkSoftmax/(641,19,199)_Float64_axis_-1-20       19392912      19392892      -0.00%
BenchmarkSoftmax/(641,_19,_199)_Float32_axis_-1-20     9701351       9701312       -0.00%
```

* Parallelized the softmax code
Bumps [github.com/gogo/protobuf](https://github.com/gogo/protobuf) from 1.3.1 to 1.3.2.
- [Release notes](https://github.com/gogo/protobuf/releases)
- [Commits](gogo/protobuf@v1.3.1...v1.3.2)

---
updated-dependencies:
- dependency-name: github.com/gogo/protobuf
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Fixed the main bug where a reuse tensor is the same as one of the operands.
This was fixed by means of generating new internal generic functions

* Added more tests, which found more issues which is now fixed

* Because Pow is such a PITA, I'm removing it from the generated tests
Fixed a bunch of errors related stufff
* Upgrade asume-no-moving-gc.

* Updated versions to run thests for

* Fixed so govet won't mistaken the format vebs in the templates for actual format verbs

Co-authored-by: wisse <[email protected]>
Co-authored-by: chewxy <[email protected]>
@chewxy chewxy force-pushed the v0.10.0-working branch from da1342f to 21ee6b1 Compare April 4, 2025 00:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.