phanerozoic commited on
Commit
775d314
·
verified ·
1 Parent(s): ab4f6ec

Add SUB circuit (subtraction) - 162 tensors, 65536/65536 tests pass

Browse files
Files changed (3) hide show
  1. neural_computer.safetensors +2 -2
  2. tensors.txt +163 -1
  3. todo.md +1 -1
neural_computer.safetensors CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:ec37339654639ab0a16a32fe5324f6bc1ed02d457d0936383ea9993c19edc92a
3
- size 358696
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:df8eff4c1e0100e587cb723bb22597954bf2f1f511ddbf4d68d5fe159ba06c61
3
+ size 375640
tensors.txt CHANGED
@@ -1,5 +1,5 @@
1
  # Tensor Manifest
2
- # Total: 3198 tensors
3
 
4
  alu.alu8bit.add.bias: shape=[1], values=[0.0]
5
  alu.alu8bit.add.weight: shape=[16], values=[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
@@ -2121,6 +2121,168 @@ arithmetic.ripplecarry8bit.fa7.ha2.sum.layer1.or.bias: shape=[1], values=[-1.0]
2121
  arithmetic.ripplecarry8bit.fa7.ha2.sum.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2122
  arithmetic.ripplecarry8bit.fa7.ha2.sum.layer2.bias: shape=[1], values=[-2.0]
2123
  arithmetic.ripplecarry8bit.fa7.ha2.sum.layer2.weight: shape=[2], values=[1.0, 1.0]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2124
  boolean.and.bias: shape=[1], values=[-2.0]
2125
  boolean.and.weight: shape=[2], values=[1.0, 1.0]
2126
  boolean.biimplies.layer1.neuron1.bias: shape=[1], values=[0.0]
 
1
  # Tensor Manifest
2
+ # Total: 3360 tensors
3
 
4
  alu.alu8bit.add.bias: shape=[1], values=[0.0]
5
  alu.alu8bit.add.weight: shape=[16], values=[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
 
2121
  arithmetic.ripplecarry8bit.fa7.ha2.sum.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2122
  arithmetic.ripplecarry8bit.fa7.ha2.sum.layer2.bias: shape=[1], values=[-2.0]
2123
  arithmetic.ripplecarry8bit.fa7.ha2.sum.layer2.weight: shape=[2], values=[1.0, 1.0]
2124
+ arithmetic.sub8bit.carry_in.bias: shape=[1], values=[0.0]
2125
+ arithmetic.sub8bit.carry_in.weight: shape=[1], values=[1.0]
2126
+ arithmetic.sub8bit.fa0.and1.bias: shape=[1], values=[-2.0]
2127
+ arithmetic.sub8bit.fa0.and1.weight: shape=[2], values=[1.0, 1.0]
2128
+ arithmetic.sub8bit.fa0.and2.bias: shape=[1], values=[-2.0]
2129
+ arithmetic.sub8bit.fa0.and2.weight: shape=[2], values=[1.0, 1.0]
2130
+ arithmetic.sub8bit.fa0.or_carry.bias: shape=[1], values=[-1.0]
2131
+ arithmetic.sub8bit.fa0.or_carry.weight: shape=[2], values=[1.0, 1.0]
2132
+ arithmetic.sub8bit.fa0.xor1.layer1.nand.bias: shape=[1], values=[1.0]
2133
+ arithmetic.sub8bit.fa0.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2134
+ arithmetic.sub8bit.fa0.xor1.layer1.or.bias: shape=[1], values=[-1.0]
2135
+ arithmetic.sub8bit.fa0.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2136
+ arithmetic.sub8bit.fa0.xor1.layer2.bias: shape=[1], values=[-2.0]
2137
+ arithmetic.sub8bit.fa0.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
2138
+ arithmetic.sub8bit.fa0.xor2.layer1.nand.bias: shape=[1], values=[1.0]
2139
+ arithmetic.sub8bit.fa0.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2140
+ arithmetic.sub8bit.fa0.xor2.layer1.or.bias: shape=[1], values=[-1.0]
2141
+ arithmetic.sub8bit.fa0.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2142
+ arithmetic.sub8bit.fa0.xor2.layer2.bias: shape=[1], values=[-2.0]
2143
+ arithmetic.sub8bit.fa0.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
2144
+ arithmetic.sub8bit.fa1.and1.bias: shape=[1], values=[-2.0]
2145
+ arithmetic.sub8bit.fa1.and1.weight: shape=[2], values=[1.0, 1.0]
2146
+ arithmetic.sub8bit.fa1.and2.bias: shape=[1], values=[-2.0]
2147
+ arithmetic.sub8bit.fa1.and2.weight: shape=[2], values=[1.0, 1.0]
2148
+ arithmetic.sub8bit.fa1.or_carry.bias: shape=[1], values=[-1.0]
2149
+ arithmetic.sub8bit.fa1.or_carry.weight: shape=[2], values=[1.0, 1.0]
2150
+ arithmetic.sub8bit.fa1.xor1.layer1.nand.bias: shape=[1], values=[1.0]
2151
+ arithmetic.sub8bit.fa1.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2152
+ arithmetic.sub8bit.fa1.xor1.layer1.or.bias: shape=[1], values=[-1.0]
2153
+ arithmetic.sub8bit.fa1.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2154
+ arithmetic.sub8bit.fa1.xor1.layer2.bias: shape=[1], values=[-2.0]
2155
+ arithmetic.sub8bit.fa1.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
2156
+ arithmetic.sub8bit.fa1.xor2.layer1.nand.bias: shape=[1], values=[1.0]
2157
+ arithmetic.sub8bit.fa1.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2158
+ arithmetic.sub8bit.fa1.xor2.layer1.or.bias: shape=[1], values=[-1.0]
2159
+ arithmetic.sub8bit.fa1.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2160
+ arithmetic.sub8bit.fa1.xor2.layer2.bias: shape=[1], values=[-2.0]
2161
+ arithmetic.sub8bit.fa1.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
2162
+ arithmetic.sub8bit.fa2.and1.bias: shape=[1], values=[-2.0]
2163
+ arithmetic.sub8bit.fa2.and1.weight: shape=[2], values=[1.0, 1.0]
2164
+ arithmetic.sub8bit.fa2.and2.bias: shape=[1], values=[-2.0]
2165
+ arithmetic.sub8bit.fa2.and2.weight: shape=[2], values=[1.0, 1.0]
2166
+ arithmetic.sub8bit.fa2.or_carry.bias: shape=[1], values=[-1.0]
2167
+ arithmetic.sub8bit.fa2.or_carry.weight: shape=[2], values=[1.0, 1.0]
2168
+ arithmetic.sub8bit.fa2.xor1.layer1.nand.bias: shape=[1], values=[1.0]
2169
+ arithmetic.sub8bit.fa2.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2170
+ arithmetic.sub8bit.fa2.xor1.layer1.or.bias: shape=[1], values=[-1.0]
2171
+ arithmetic.sub8bit.fa2.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2172
+ arithmetic.sub8bit.fa2.xor1.layer2.bias: shape=[1], values=[-2.0]
2173
+ arithmetic.sub8bit.fa2.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
2174
+ arithmetic.sub8bit.fa2.xor2.layer1.nand.bias: shape=[1], values=[1.0]
2175
+ arithmetic.sub8bit.fa2.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2176
+ arithmetic.sub8bit.fa2.xor2.layer1.or.bias: shape=[1], values=[-1.0]
2177
+ arithmetic.sub8bit.fa2.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2178
+ arithmetic.sub8bit.fa2.xor2.layer2.bias: shape=[1], values=[-2.0]
2179
+ arithmetic.sub8bit.fa2.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
2180
+ arithmetic.sub8bit.fa3.and1.bias: shape=[1], values=[-2.0]
2181
+ arithmetic.sub8bit.fa3.and1.weight: shape=[2], values=[1.0, 1.0]
2182
+ arithmetic.sub8bit.fa3.and2.bias: shape=[1], values=[-2.0]
2183
+ arithmetic.sub8bit.fa3.and2.weight: shape=[2], values=[1.0, 1.0]
2184
+ arithmetic.sub8bit.fa3.or_carry.bias: shape=[1], values=[-1.0]
2185
+ arithmetic.sub8bit.fa3.or_carry.weight: shape=[2], values=[1.0, 1.0]
2186
+ arithmetic.sub8bit.fa3.xor1.layer1.nand.bias: shape=[1], values=[1.0]
2187
+ arithmetic.sub8bit.fa3.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2188
+ arithmetic.sub8bit.fa3.xor1.layer1.or.bias: shape=[1], values=[-1.0]
2189
+ arithmetic.sub8bit.fa3.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2190
+ arithmetic.sub8bit.fa3.xor1.layer2.bias: shape=[1], values=[-2.0]
2191
+ arithmetic.sub8bit.fa3.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
2192
+ arithmetic.sub8bit.fa3.xor2.layer1.nand.bias: shape=[1], values=[1.0]
2193
+ arithmetic.sub8bit.fa3.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2194
+ arithmetic.sub8bit.fa3.xor2.layer1.or.bias: shape=[1], values=[-1.0]
2195
+ arithmetic.sub8bit.fa3.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2196
+ arithmetic.sub8bit.fa3.xor2.layer2.bias: shape=[1], values=[-2.0]
2197
+ arithmetic.sub8bit.fa3.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
2198
+ arithmetic.sub8bit.fa4.and1.bias: shape=[1], values=[-2.0]
2199
+ arithmetic.sub8bit.fa4.and1.weight: shape=[2], values=[1.0, 1.0]
2200
+ arithmetic.sub8bit.fa4.and2.bias: shape=[1], values=[-2.0]
2201
+ arithmetic.sub8bit.fa4.and2.weight: shape=[2], values=[1.0, 1.0]
2202
+ arithmetic.sub8bit.fa4.or_carry.bias: shape=[1], values=[-1.0]
2203
+ arithmetic.sub8bit.fa4.or_carry.weight: shape=[2], values=[1.0, 1.0]
2204
+ arithmetic.sub8bit.fa4.xor1.layer1.nand.bias: shape=[1], values=[1.0]
2205
+ arithmetic.sub8bit.fa4.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2206
+ arithmetic.sub8bit.fa4.xor1.layer1.or.bias: shape=[1], values=[-1.0]
2207
+ arithmetic.sub8bit.fa4.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2208
+ arithmetic.sub8bit.fa4.xor1.layer2.bias: shape=[1], values=[-2.0]
2209
+ arithmetic.sub8bit.fa4.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
2210
+ arithmetic.sub8bit.fa4.xor2.layer1.nand.bias: shape=[1], values=[1.0]
2211
+ arithmetic.sub8bit.fa4.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2212
+ arithmetic.sub8bit.fa4.xor2.layer1.or.bias: shape=[1], values=[-1.0]
2213
+ arithmetic.sub8bit.fa4.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2214
+ arithmetic.sub8bit.fa4.xor2.layer2.bias: shape=[1], values=[-2.0]
2215
+ arithmetic.sub8bit.fa4.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
2216
+ arithmetic.sub8bit.fa5.and1.bias: shape=[1], values=[-2.0]
2217
+ arithmetic.sub8bit.fa5.and1.weight: shape=[2], values=[1.0, 1.0]
2218
+ arithmetic.sub8bit.fa5.and2.bias: shape=[1], values=[-2.0]
2219
+ arithmetic.sub8bit.fa5.and2.weight: shape=[2], values=[1.0, 1.0]
2220
+ arithmetic.sub8bit.fa5.or_carry.bias: shape=[1], values=[-1.0]
2221
+ arithmetic.sub8bit.fa5.or_carry.weight: shape=[2], values=[1.0, 1.0]
2222
+ arithmetic.sub8bit.fa5.xor1.layer1.nand.bias: shape=[1], values=[1.0]
2223
+ arithmetic.sub8bit.fa5.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2224
+ arithmetic.sub8bit.fa5.xor1.layer1.or.bias: shape=[1], values=[-1.0]
2225
+ arithmetic.sub8bit.fa5.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2226
+ arithmetic.sub8bit.fa5.xor1.layer2.bias: shape=[1], values=[-2.0]
2227
+ arithmetic.sub8bit.fa5.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
2228
+ arithmetic.sub8bit.fa5.xor2.layer1.nand.bias: shape=[1], values=[1.0]
2229
+ arithmetic.sub8bit.fa5.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2230
+ arithmetic.sub8bit.fa5.xor2.layer1.or.bias: shape=[1], values=[-1.0]
2231
+ arithmetic.sub8bit.fa5.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2232
+ arithmetic.sub8bit.fa5.xor2.layer2.bias: shape=[1], values=[-2.0]
2233
+ arithmetic.sub8bit.fa5.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
2234
+ arithmetic.sub8bit.fa6.and1.bias: shape=[1], values=[-2.0]
2235
+ arithmetic.sub8bit.fa6.and1.weight: shape=[2], values=[1.0, 1.0]
2236
+ arithmetic.sub8bit.fa6.and2.bias: shape=[1], values=[-2.0]
2237
+ arithmetic.sub8bit.fa6.and2.weight: shape=[2], values=[1.0, 1.0]
2238
+ arithmetic.sub8bit.fa6.or_carry.bias: shape=[1], values=[-1.0]
2239
+ arithmetic.sub8bit.fa6.or_carry.weight: shape=[2], values=[1.0, 1.0]
2240
+ arithmetic.sub8bit.fa6.xor1.layer1.nand.bias: shape=[1], values=[1.0]
2241
+ arithmetic.sub8bit.fa6.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2242
+ arithmetic.sub8bit.fa6.xor1.layer1.or.bias: shape=[1], values=[-1.0]
2243
+ arithmetic.sub8bit.fa6.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2244
+ arithmetic.sub8bit.fa6.xor1.layer2.bias: shape=[1], values=[-2.0]
2245
+ arithmetic.sub8bit.fa6.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
2246
+ arithmetic.sub8bit.fa6.xor2.layer1.nand.bias: shape=[1], values=[1.0]
2247
+ arithmetic.sub8bit.fa6.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2248
+ arithmetic.sub8bit.fa6.xor2.layer1.or.bias: shape=[1], values=[-1.0]
2249
+ arithmetic.sub8bit.fa6.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2250
+ arithmetic.sub8bit.fa6.xor2.layer2.bias: shape=[1], values=[-2.0]
2251
+ arithmetic.sub8bit.fa6.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
2252
+ arithmetic.sub8bit.fa7.and1.bias: shape=[1], values=[-2.0]
2253
+ arithmetic.sub8bit.fa7.and1.weight: shape=[2], values=[1.0, 1.0]
2254
+ arithmetic.sub8bit.fa7.and2.bias: shape=[1], values=[-2.0]
2255
+ arithmetic.sub8bit.fa7.and2.weight: shape=[2], values=[1.0, 1.0]
2256
+ arithmetic.sub8bit.fa7.or_carry.bias: shape=[1], values=[-1.0]
2257
+ arithmetic.sub8bit.fa7.or_carry.weight: shape=[2], values=[1.0, 1.0]
2258
+ arithmetic.sub8bit.fa7.xor1.layer1.nand.bias: shape=[1], values=[1.0]
2259
+ arithmetic.sub8bit.fa7.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2260
+ arithmetic.sub8bit.fa7.xor1.layer1.or.bias: shape=[1], values=[-1.0]
2261
+ arithmetic.sub8bit.fa7.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2262
+ arithmetic.sub8bit.fa7.xor1.layer2.bias: shape=[1], values=[-2.0]
2263
+ arithmetic.sub8bit.fa7.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
2264
+ arithmetic.sub8bit.fa7.xor2.layer1.nand.bias: shape=[1], values=[1.0]
2265
+ arithmetic.sub8bit.fa7.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2266
+ arithmetic.sub8bit.fa7.xor2.layer1.or.bias: shape=[1], values=[-1.0]
2267
+ arithmetic.sub8bit.fa7.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2268
+ arithmetic.sub8bit.fa7.xor2.layer2.bias: shape=[1], values=[-2.0]
2269
+ arithmetic.sub8bit.fa7.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
2270
+ arithmetic.sub8bit.notb0.bias: shape=[1], values=[0.0]
2271
+ arithmetic.sub8bit.notb0.weight: shape=[1], values=[-1.0]
2272
+ arithmetic.sub8bit.notb1.bias: shape=[1], values=[0.0]
2273
+ arithmetic.sub8bit.notb1.weight: shape=[1], values=[-1.0]
2274
+ arithmetic.sub8bit.notb2.bias: shape=[1], values=[0.0]
2275
+ arithmetic.sub8bit.notb2.weight: shape=[1], values=[-1.0]
2276
+ arithmetic.sub8bit.notb3.bias: shape=[1], values=[0.0]
2277
+ arithmetic.sub8bit.notb3.weight: shape=[1], values=[-1.0]
2278
+ arithmetic.sub8bit.notb4.bias: shape=[1], values=[0.0]
2279
+ arithmetic.sub8bit.notb4.weight: shape=[1], values=[-1.0]
2280
+ arithmetic.sub8bit.notb5.bias: shape=[1], values=[0.0]
2281
+ arithmetic.sub8bit.notb5.weight: shape=[1], values=[-1.0]
2282
+ arithmetic.sub8bit.notb6.bias: shape=[1], values=[0.0]
2283
+ arithmetic.sub8bit.notb6.weight: shape=[1], values=[-1.0]
2284
+ arithmetic.sub8bit.notb7.bias: shape=[1], values=[0.0]
2285
+ arithmetic.sub8bit.notb7.weight: shape=[1], values=[-1.0]
2286
  boolean.and.bias: shape=[1], values=[-2.0]
2287
  boolean.and.weight: shape=[2], values=[1.0, 1.0]
2288
  boolean.biimplies.layer1.neuron1.bias: shape=[1], values=[0.0]
todo.md CHANGED
@@ -4,7 +4,7 @@
4
 
5
  | Component | Description | Status |
6
  |-------------------------|-----------------------------|--------------------------------|
7
- | SUB | Subtraction circuit | Missing - need NOT(B)+1+A path |
8
  | DIV | Division circuit | Missing |
9
  | NEG | Two's complement negate | DONE - 76 tensors, 256/256 tests pass |
10
  | Program Counter | PC register + increment | Missing |
 
4
 
5
  | Component | Description | Status |
6
  |-------------------------|-----------------------------|--------------------------------|
7
+ | SUB | Subtraction circuit | DONE - 162 tensors, 65536/65536 tests pass |
8
  | DIV | Division circuit | Missing |
9
  | NEG | Two's complement negate | DONE - 76 tensors, 256/256 tests pass |
10
  | Program Counter | PC register + increment | Missing |