phanerozoic commited on
Commit
2a0906d
·
verified ·
1 Parent(s): 701e4d2

Add SBC circuit (subtract with borrow) - 160 tensors, 131072/131072 tests pass

Browse files
Files changed (3) hide show
  1. neural_computer.safetensors +2 -2
  2. tensors.txt +161 -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:1b659d80e24aada592a634cbdc34dbe4ba2ae716f7deb4a8b9d4221af90c16cd
3
- size 390888
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:19bdb469f994ce852f85d894d8c2a4db4b690ff2a4ae8397364002f5bb9cebae
3
+ size 407640
tensors.txt CHANGED
@@ -1,5 +1,5 @@
1
  # Tensor Manifest
2
- # Total: 3504 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]
@@ -2265,6 +2265,166 @@ arithmetic.ripplecarry8bit.fa7.ha2.sum.layer1.or.bias: shape=[1], values=[-1.0]
2265
  arithmetic.ripplecarry8bit.fa7.ha2.sum.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2266
  arithmetic.ripplecarry8bit.fa7.ha2.sum.layer2.bias: shape=[1], values=[-2.0]
2267
  arithmetic.ripplecarry8bit.fa7.ha2.sum.layer2.weight: shape=[2], values=[1.0, 1.0]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2268
  arithmetic.sub8bit.carry_in.bias: shape=[1], values=[0.0]
2269
  arithmetic.sub8bit.carry_in.weight: shape=[1], values=[1.0]
2270
  arithmetic.sub8bit.fa0.and1.bias: shape=[1], values=[-2.0]
 
1
  # Tensor Manifest
2
+ # Total: 3664 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]
 
2265
  arithmetic.ripplecarry8bit.fa7.ha2.sum.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2266
  arithmetic.ripplecarry8bit.fa7.ha2.sum.layer2.bias: shape=[1], values=[-2.0]
2267
  arithmetic.ripplecarry8bit.fa7.ha2.sum.layer2.weight: shape=[2], values=[1.0, 1.0]
2268
+ arithmetic.sbc8bit.fa0.and1.bias: shape=[1], values=[-2.0]
2269
+ arithmetic.sbc8bit.fa0.and1.weight: shape=[2], values=[1.0, 1.0]
2270
+ arithmetic.sbc8bit.fa0.and2.bias: shape=[1], values=[-2.0]
2271
+ arithmetic.sbc8bit.fa0.and2.weight: shape=[2], values=[1.0, 1.0]
2272
+ arithmetic.sbc8bit.fa0.or_carry.bias: shape=[1], values=[-1.0]
2273
+ arithmetic.sbc8bit.fa0.or_carry.weight: shape=[2], values=[1.0, 1.0]
2274
+ arithmetic.sbc8bit.fa0.xor1.layer1.nand.bias: shape=[1], values=[1.0]
2275
+ arithmetic.sbc8bit.fa0.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2276
+ arithmetic.sbc8bit.fa0.xor1.layer1.or.bias: shape=[1], values=[-1.0]
2277
+ arithmetic.sbc8bit.fa0.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2278
+ arithmetic.sbc8bit.fa0.xor1.layer2.bias: shape=[1], values=[-2.0]
2279
+ arithmetic.sbc8bit.fa0.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
2280
+ arithmetic.sbc8bit.fa0.xor2.layer1.nand.bias: shape=[1], values=[1.0]
2281
+ arithmetic.sbc8bit.fa0.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2282
+ arithmetic.sbc8bit.fa0.xor2.layer1.or.bias: shape=[1], values=[-1.0]
2283
+ arithmetic.sbc8bit.fa0.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2284
+ arithmetic.sbc8bit.fa0.xor2.layer2.bias: shape=[1], values=[-2.0]
2285
+ arithmetic.sbc8bit.fa0.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
2286
+ arithmetic.sbc8bit.fa1.and1.bias: shape=[1], values=[-2.0]
2287
+ arithmetic.sbc8bit.fa1.and1.weight: shape=[2], values=[1.0, 1.0]
2288
+ arithmetic.sbc8bit.fa1.and2.bias: shape=[1], values=[-2.0]
2289
+ arithmetic.sbc8bit.fa1.and2.weight: shape=[2], values=[1.0, 1.0]
2290
+ arithmetic.sbc8bit.fa1.or_carry.bias: shape=[1], values=[-1.0]
2291
+ arithmetic.sbc8bit.fa1.or_carry.weight: shape=[2], values=[1.0, 1.0]
2292
+ arithmetic.sbc8bit.fa1.xor1.layer1.nand.bias: shape=[1], values=[1.0]
2293
+ arithmetic.sbc8bit.fa1.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2294
+ arithmetic.sbc8bit.fa1.xor1.layer1.or.bias: shape=[1], values=[-1.0]
2295
+ arithmetic.sbc8bit.fa1.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2296
+ arithmetic.sbc8bit.fa1.xor1.layer2.bias: shape=[1], values=[-2.0]
2297
+ arithmetic.sbc8bit.fa1.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
2298
+ arithmetic.sbc8bit.fa1.xor2.layer1.nand.bias: shape=[1], values=[1.0]
2299
+ arithmetic.sbc8bit.fa1.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2300
+ arithmetic.sbc8bit.fa1.xor2.layer1.or.bias: shape=[1], values=[-1.0]
2301
+ arithmetic.sbc8bit.fa1.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2302
+ arithmetic.sbc8bit.fa1.xor2.layer2.bias: shape=[1], values=[-2.0]
2303
+ arithmetic.sbc8bit.fa1.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
2304
+ arithmetic.sbc8bit.fa2.and1.bias: shape=[1], values=[-2.0]
2305
+ arithmetic.sbc8bit.fa2.and1.weight: shape=[2], values=[1.0, 1.0]
2306
+ arithmetic.sbc8bit.fa2.and2.bias: shape=[1], values=[-2.0]
2307
+ arithmetic.sbc8bit.fa2.and2.weight: shape=[2], values=[1.0, 1.0]
2308
+ arithmetic.sbc8bit.fa2.or_carry.bias: shape=[1], values=[-1.0]
2309
+ arithmetic.sbc8bit.fa2.or_carry.weight: shape=[2], values=[1.0, 1.0]
2310
+ arithmetic.sbc8bit.fa2.xor1.layer1.nand.bias: shape=[1], values=[1.0]
2311
+ arithmetic.sbc8bit.fa2.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2312
+ arithmetic.sbc8bit.fa2.xor1.layer1.or.bias: shape=[1], values=[-1.0]
2313
+ arithmetic.sbc8bit.fa2.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2314
+ arithmetic.sbc8bit.fa2.xor1.layer2.bias: shape=[1], values=[-2.0]
2315
+ arithmetic.sbc8bit.fa2.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
2316
+ arithmetic.sbc8bit.fa2.xor2.layer1.nand.bias: shape=[1], values=[1.0]
2317
+ arithmetic.sbc8bit.fa2.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2318
+ arithmetic.sbc8bit.fa2.xor2.layer1.or.bias: shape=[1], values=[-1.0]
2319
+ arithmetic.sbc8bit.fa2.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2320
+ arithmetic.sbc8bit.fa2.xor2.layer2.bias: shape=[1], values=[-2.0]
2321
+ arithmetic.sbc8bit.fa2.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
2322
+ arithmetic.sbc8bit.fa3.and1.bias: shape=[1], values=[-2.0]
2323
+ arithmetic.sbc8bit.fa3.and1.weight: shape=[2], values=[1.0, 1.0]
2324
+ arithmetic.sbc8bit.fa3.and2.bias: shape=[1], values=[-2.0]
2325
+ arithmetic.sbc8bit.fa3.and2.weight: shape=[2], values=[1.0, 1.0]
2326
+ arithmetic.sbc8bit.fa3.or_carry.bias: shape=[1], values=[-1.0]
2327
+ arithmetic.sbc8bit.fa3.or_carry.weight: shape=[2], values=[1.0, 1.0]
2328
+ arithmetic.sbc8bit.fa3.xor1.layer1.nand.bias: shape=[1], values=[1.0]
2329
+ arithmetic.sbc8bit.fa3.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2330
+ arithmetic.sbc8bit.fa3.xor1.layer1.or.bias: shape=[1], values=[-1.0]
2331
+ arithmetic.sbc8bit.fa3.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2332
+ arithmetic.sbc8bit.fa3.xor1.layer2.bias: shape=[1], values=[-2.0]
2333
+ arithmetic.sbc8bit.fa3.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
2334
+ arithmetic.sbc8bit.fa3.xor2.layer1.nand.bias: shape=[1], values=[1.0]
2335
+ arithmetic.sbc8bit.fa3.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2336
+ arithmetic.sbc8bit.fa3.xor2.layer1.or.bias: shape=[1], values=[-1.0]
2337
+ arithmetic.sbc8bit.fa3.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2338
+ arithmetic.sbc8bit.fa3.xor2.layer2.bias: shape=[1], values=[-2.0]
2339
+ arithmetic.sbc8bit.fa3.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
2340
+ arithmetic.sbc8bit.fa4.and1.bias: shape=[1], values=[-2.0]
2341
+ arithmetic.sbc8bit.fa4.and1.weight: shape=[2], values=[1.0, 1.0]
2342
+ arithmetic.sbc8bit.fa4.and2.bias: shape=[1], values=[-2.0]
2343
+ arithmetic.sbc8bit.fa4.and2.weight: shape=[2], values=[1.0, 1.0]
2344
+ arithmetic.sbc8bit.fa4.or_carry.bias: shape=[1], values=[-1.0]
2345
+ arithmetic.sbc8bit.fa4.or_carry.weight: shape=[2], values=[1.0, 1.0]
2346
+ arithmetic.sbc8bit.fa4.xor1.layer1.nand.bias: shape=[1], values=[1.0]
2347
+ arithmetic.sbc8bit.fa4.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2348
+ arithmetic.sbc8bit.fa4.xor1.layer1.or.bias: shape=[1], values=[-1.0]
2349
+ arithmetic.sbc8bit.fa4.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2350
+ arithmetic.sbc8bit.fa4.xor1.layer2.bias: shape=[1], values=[-2.0]
2351
+ arithmetic.sbc8bit.fa4.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
2352
+ arithmetic.sbc8bit.fa4.xor2.layer1.nand.bias: shape=[1], values=[1.0]
2353
+ arithmetic.sbc8bit.fa4.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2354
+ arithmetic.sbc8bit.fa4.xor2.layer1.or.bias: shape=[1], values=[-1.0]
2355
+ arithmetic.sbc8bit.fa4.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2356
+ arithmetic.sbc8bit.fa4.xor2.layer2.bias: shape=[1], values=[-2.0]
2357
+ arithmetic.sbc8bit.fa4.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
2358
+ arithmetic.sbc8bit.fa5.and1.bias: shape=[1], values=[-2.0]
2359
+ arithmetic.sbc8bit.fa5.and1.weight: shape=[2], values=[1.0, 1.0]
2360
+ arithmetic.sbc8bit.fa5.and2.bias: shape=[1], values=[-2.0]
2361
+ arithmetic.sbc8bit.fa5.and2.weight: shape=[2], values=[1.0, 1.0]
2362
+ arithmetic.sbc8bit.fa5.or_carry.bias: shape=[1], values=[-1.0]
2363
+ arithmetic.sbc8bit.fa5.or_carry.weight: shape=[2], values=[1.0, 1.0]
2364
+ arithmetic.sbc8bit.fa5.xor1.layer1.nand.bias: shape=[1], values=[1.0]
2365
+ arithmetic.sbc8bit.fa5.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2366
+ arithmetic.sbc8bit.fa5.xor1.layer1.or.bias: shape=[1], values=[-1.0]
2367
+ arithmetic.sbc8bit.fa5.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2368
+ arithmetic.sbc8bit.fa5.xor1.layer2.bias: shape=[1], values=[-2.0]
2369
+ arithmetic.sbc8bit.fa5.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
2370
+ arithmetic.sbc8bit.fa5.xor2.layer1.nand.bias: shape=[1], values=[1.0]
2371
+ arithmetic.sbc8bit.fa5.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2372
+ arithmetic.sbc8bit.fa5.xor2.layer1.or.bias: shape=[1], values=[-1.0]
2373
+ arithmetic.sbc8bit.fa5.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2374
+ arithmetic.sbc8bit.fa5.xor2.layer2.bias: shape=[1], values=[-2.0]
2375
+ arithmetic.sbc8bit.fa5.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
2376
+ arithmetic.sbc8bit.fa6.and1.bias: shape=[1], values=[-2.0]
2377
+ arithmetic.sbc8bit.fa6.and1.weight: shape=[2], values=[1.0, 1.0]
2378
+ arithmetic.sbc8bit.fa6.and2.bias: shape=[1], values=[-2.0]
2379
+ arithmetic.sbc8bit.fa6.and2.weight: shape=[2], values=[1.0, 1.0]
2380
+ arithmetic.sbc8bit.fa6.or_carry.bias: shape=[1], values=[-1.0]
2381
+ arithmetic.sbc8bit.fa6.or_carry.weight: shape=[2], values=[1.0, 1.0]
2382
+ arithmetic.sbc8bit.fa6.xor1.layer1.nand.bias: shape=[1], values=[1.0]
2383
+ arithmetic.sbc8bit.fa6.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2384
+ arithmetic.sbc8bit.fa6.xor1.layer1.or.bias: shape=[1], values=[-1.0]
2385
+ arithmetic.sbc8bit.fa6.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2386
+ arithmetic.sbc8bit.fa6.xor1.layer2.bias: shape=[1], values=[-2.0]
2387
+ arithmetic.sbc8bit.fa6.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
2388
+ arithmetic.sbc8bit.fa6.xor2.layer1.nand.bias: shape=[1], values=[1.0]
2389
+ arithmetic.sbc8bit.fa6.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2390
+ arithmetic.sbc8bit.fa6.xor2.layer1.or.bias: shape=[1], values=[-1.0]
2391
+ arithmetic.sbc8bit.fa6.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2392
+ arithmetic.sbc8bit.fa6.xor2.layer2.bias: shape=[1], values=[-2.0]
2393
+ arithmetic.sbc8bit.fa6.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
2394
+ arithmetic.sbc8bit.fa7.and1.bias: shape=[1], values=[-2.0]
2395
+ arithmetic.sbc8bit.fa7.and1.weight: shape=[2], values=[1.0, 1.0]
2396
+ arithmetic.sbc8bit.fa7.and2.bias: shape=[1], values=[-2.0]
2397
+ arithmetic.sbc8bit.fa7.and2.weight: shape=[2], values=[1.0, 1.0]
2398
+ arithmetic.sbc8bit.fa7.or_carry.bias: shape=[1], values=[-1.0]
2399
+ arithmetic.sbc8bit.fa7.or_carry.weight: shape=[2], values=[1.0, 1.0]
2400
+ arithmetic.sbc8bit.fa7.xor1.layer1.nand.bias: shape=[1], values=[1.0]
2401
+ arithmetic.sbc8bit.fa7.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2402
+ arithmetic.sbc8bit.fa7.xor1.layer1.or.bias: shape=[1], values=[-1.0]
2403
+ arithmetic.sbc8bit.fa7.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2404
+ arithmetic.sbc8bit.fa7.xor1.layer2.bias: shape=[1], values=[-2.0]
2405
+ arithmetic.sbc8bit.fa7.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
2406
+ arithmetic.sbc8bit.fa7.xor2.layer1.nand.bias: shape=[1], values=[1.0]
2407
+ arithmetic.sbc8bit.fa7.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
2408
+ arithmetic.sbc8bit.fa7.xor2.layer1.or.bias: shape=[1], values=[-1.0]
2409
+ arithmetic.sbc8bit.fa7.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
2410
+ arithmetic.sbc8bit.fa7.xor2.layer2.bias: shape=[1], values=[-2.0]
2411
+ arithmetic.sbc8bit.fa7.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
2412
+ arithmetic.sbc8bit.notb0.bias: shape=[1], values=[0.0]
2413
+ arithmetic.sbc8bit.notb0.weight: shape=[1], values=[-1.0]
2414
+ arithmetic.sbc8bit.notb1.bias: shape=[1], values=[0.0]
2415
+ arithmetic.sbc8bit.notb1.weight: shape=[1], values=[-1.0]
2416
+ arithmetic.sbc8bit.notb2.bias: shape=[1], values=[0.0]
2417
+ arithmetic.sbc8bit.notb2.weight: shape=[1], values=[-1.0]
2418
+ arithmetic.sbc8bit.notb3.bias: shape=[1], values=[0.0]
2419
+ arithmetic.sbc8bit.notb3.weight: shape=[1], values=[-1.0]
2420
+ arithmetic.sbc8bit.notb4.bias: shape=[1], values=[0.0]
2421
+ arithmetic.sbc8bit.notb4.weight: shape=[1], values=[-1.0]
2422
+ arithmetic.sbc8bit.notb5.bias: shape=[1], values=[0.0]
2423
+ arithmetic.sbc8bit.notb5.weight: shape=[1], values=[-1.0]
2424
+ arithmetic.sbc8bit.notb6.bias: shape=[1], values=[0.0]
2425
+ arithmetic.sbc8bit.notb6.weight: shape=[1], values=[-1.0]
2426
+ arithmetic.sbc8bit.notb7.bias: shape=[1], values=[0.0]
2427
+ arithmetic.sbc8bit.notb7.weight: shape=[1], values=[-1.0]
2428
  arithmetic.sub8bit.carry_in.bias: shape=[1], values=[0.0]
2429
  arithmetic.sub8bit.carry_in.weight: shape=[1], values=[1.0]
2430
  arithmetic.sub8bit.fa0.and1.bias: shape=[1], values=[-2.0]
todo.md CHANGED
@@ -26,7 +26,7 @@
26
  | ROR | Rotate right through carry | Missing |
27
  | ASR | Arithmetic shift right (sign-extend) | Missing |
28
  | ADC | Add with carry input | DONE - 144 tensors, 131072/131072 tests pass |
29
- | SBC | Subtract with borrow | Missing |
30
  | CMP | Compare (SUB without writeback) | Missing (comparators exist but not via subtraction) |
31
 
32
  ## System
 
26
  | ROR | Rotate right through carry | Missing |
27
  | ASR | Arithmetic shift right (sign-extend) | Missing |
28
  | ADC | Add with carry input | DONE - 144 tensors, 131072/131072 tests pass |
29
+ | SBC | Subtract with borrow | DONE - 160 tensors, 131072/131072 tests pass |
30
  | CMP | Compare (SUB without writeback) | Missing (comparators exist but not via subtraction) |
31
 
32
  ## System