phanerozoic commited on
Commit
8d2b743
·
verified ·
1 Parent(s): 2a0906d

Add CMP circuit (compare with flags) - 168 tensors, 65536/65536 tests pass

Browse files
Files changed (3) hide show
  1. neural_computer.safetensors +2 -2
  2. tensors.txt +169 -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:19bdb469f994ce852f85d894d8c2a4db4b690ff2a4ae8397364002f5bb9cebae
3
- size 407640
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2950a1fa08aecbcd2336cb8ae636b33e15ab85f5e8fb882f4c9edb4114debdd4
3
+ size 425220
tensors.txt CHANGED
@@ -1,5 +1,5 @@
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]
@@ -203,6 +203,174 @@ arithmetic.adc8bit.fa7.xor2.layer1.or.bias: shape=[1], values=[-1.0]
203
  arithmetic.adc8bit.fa7.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
204
  arithmetic.adc8bit.fa7.xor2.layer2.bias: shape=[1], values=[-2.0]
205
  arithmetic.adc8bit.fa7.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
206
  arithmetic.decrementer8bit.adder: shape=[8], values=[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
207
  arithmetic.decrementer8bit.neg_one: shape=[8], values=[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
208
  arithmetic.equality8bit.final_and.bias: shape=[1], values=[-8.0]
 
1
  # Tensor Manifest
2
+ # Total: 3832 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]
 
203
  arithmetic.adc8bit.fa7.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
204
  arithmetic.adc8bit.fa7.xor2.layer2.bias: shape=[1], values=[-2.0]
205
  arithmetic.adc8bit.fa7.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
206
+ arithmetic.cmp8bit.fa0.and1.bias: shape=[1], values=[-2.0]
207
+ arithmetic.cmp8bit.fa0.and1.weight: shape=[2], values=[1.0, 1.0]
208
+ arithmetic.cmp8bit.fa0.and2.bias: shape=[1], values=[-2.0]
209
+ arithmetic.cmp8bit.fa0.and2.weight: shape=[2], values=[1.0, 1.0]
210
+ arithmetic.cmp8bit.fa0.or_carry.bias: shape=[1], values=[-1.0]
211
+ arithmetic.cmp8bit.fa0.or_carry.weight: shape=[2], values=[1.0, 1.0]
212
+ arithmetic.cmp8bit.fa0.xor1.layer1.nand.bias: shape=[1], values=[1.0]
213
+ arithmetic.cmp8bit.fa0.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
214
+ arithmetic.cmp8bit.fa0.xor1.layer1.or.bias: shape=[1], values=[-1.0]
215
+ arithmetic.cmp8bit.fa0.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
216
+ arithmetic.cmp8bit.fa0.xor1.layer2.bias: shape=[1], values=[-2.0]
217
+ arithmetic.cmp8bit.fa0.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
218
+ arithmetic.cmp8bit.fa0.xor2.layer1.nand.bias: shape=[1], values=[1.0]
219
+ arithmetic.cmp8bit.fa0.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
220
+ arithmetic.cmp8bit.fa0.xor2.layer1.or.bias: shape=[1], values=[-1.0]
221
+ arithmetic.cmp8bit.fa0.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
222
+ arithmetic.cmp8bit.fa0.xor2.layer2.bias: shape=[1], values=[-2.0]
223
+ arithmetic.cmp8bit.fa0.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
224
+ arithmetic.cmp8bit.fa1.and1.bias: shape=[1], values=[-2.0]
225
+ arithmetic.cmp8bit.fa1.and1.weight: shape=[2], values=[1.0, 1.0]
226
+ arithmetic.cmp8bit.fa1.and2.bias: shape=[1], values=[-2.0]
227
+ arithmetic.cmp8bit.fa1.and2.weight: shape=[2], values=[1.0, 1.0]
228
+ arithmetic.cmp8bit.fa1.or_carry.bias: shape=[1], values=[-1.0]
229
+ arithmetic.cmp8bit.fa1.or_carry.weight: shape=[2], values=[1.0, 1.0]
230
+ arithmetic.cmp8bit.fa1.xor1.layer1.nand.bias: shape=[1], values=[1.0]
231
+ arithmetic.cmp8bit.fa1.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
232
+ arithmetic.cmp8bit.fa1.xor1.layer1.or.bias: shape=[1], values=[-1.0]
233
+ arithmetic.cmp8bit.fa1.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
234
+ arithmetic.cmp8bit.fa1.xor1.layer2.bias: shape=[1], values=[-2.0]
235
+ arithmetic.cmp8bit.fa1.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
236
+ arithmetic.cmp8bit.fa1.xor2.layer1.nand.bias: shape=[1], values=[1.0]
237
+ arithmetic.cmp8bit.fa1.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
238
+ arithmetic.cmp8bit.fa1.xor2.layer1.or.bias: shape=[1], values=[-1.0]
239
+ arithmetic.cmp8bit.fa1.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
240
+ arithmetic.cmp8bit.fa1.xor2.layer2.bias: shape=[1], values=[-2.0]
241
+ arithmetic.cmp8bit.fa1.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
242
+ arithmetic.cmp8bit.fa2.and1.bias: shape=[1], values=[-2.0]
243
+ arithmetic.cmp8bit.fa2.and1.weight: shape=[2], values=[1.0, 1.0]
244
+ arithmetic.cmp8bit.fa2.and2.bias: shape=[1], values=[-2.0]
245
+ arithmetic.cmp8bit.fa2.and2.weight: shape=[2], values=[1.0, 1.0]
246
+ arithmetic.cmp8bit.fa2.or_carry.bias: shape=[1], values=[-1.0]
247
+ arithmetic.cmp8bit.fa2.or_carry.weight: shape=[2], values=[1.0, 1.0]
248
+ arithmetic.cmp8bit.fa2.xor1.layer1.nand.bias: shape=[1], values=[1.0]
249
+ arithmetic.cmp8bit.fa2.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
250
+ arithmetic.cmp8bit.fa2.xor1.layer1.or.bias: shape=[1], values=[-1.0]
251
+ arithmetic.cmp8bit.fa2.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
252
+ arithmetic.cmp8bit.fa2.xor1.layer2.bias: shape=[1], values=[-2.0]
253
+ arithmetic.cmp8bit.fa2.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
254
+ arithmetic.cmp8bit.fa2.xor2.layer1.nand.bias: shape=[1], values=[1.0]
255
+ arithmetic.cmp8bit.fa2.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
256
+ arithmetic.cmp8bit.fa2.xor2.layer1.or.bias: shape=[1], values=[-1.0]
257
+ arithmetic.cmp8bit.fa2.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
258
+ arithmetic.cmp8bit.fa2.xor2.layer2.bias: shape=[1], values=[-2.0]
259
+ arithmetic.cmp8bit.fa2.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
260
+ arithmetic.cmp8bit.fa3.and1.bias: shape=[1], values=[-2.0]
261
+ arithmetic.cmp8bit.fa3.and1.weight: shape=[2], values=[1.0, 1.0]
262
+ arithmetic.cmp8bit.fa3.and2.bias: shape=[1], values=[-2.0]
263
+ arithmetic.cmp8bit.fa3.and2.weight: shape=[2], values=[1.0, 1.0]
264
+ arithmetic.cmp8bit.fa3.or_carry.bias: shape=[1], values=[-1.0]
265
+ arithmetic.cmp8bit.fa3.or_carry.weight: shape=[2], values=[1.0, 1.0]
266
+ arithmetic.cmp8bit.fa3.xor1.layer1.nand.bias: shape=[1], values=[1.0]
267
+ arithmetic.cmp8bit.fa3.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
268
+ arithmetic.cmp8bit.fa3.xor1.layer1.or.bias: shape=[1], values=[-1.0]
269
+ arithmetic.cmp8bit.fa3.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
270
+ arithmetic.cmp8bit.fa3.xor1.layer2.bias: shape=[1], values=[-2.0]
271
+ arithmetic.cmp8bit.fa3.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
272
+ arithmetic.cmp8bit.fa3.xor2.layer1.nand.bias: shape=[1], values=[1.0]
273
+ arithmetic.cmp8bit.fa3.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
274
+ arithmetic.cmp8bit.fa3.xor2.layer1.or.bias: shape=[1], values=[-1.0]
275
+ arithmetic.cmp8bit.fa3.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
276
+ arithmetic.cmp8bit.fa3.xor2.layer2.bias: shape=[1], values=[-2.0]
277
+ arithmetic.cmp8bit.fa3.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
278
+ arithmetic.cmp8bit.fa4.and1.bias: shape=[1], values=[-2.0]
279
+ arithmetic.cmp8bit.fa4.and1.weight: shape=[2], values=[1.0, 1.0]
280
+ arithmetic.cmp8bit.fa4.and2.bias: shape=[1], values=[-2.0]
281
+ arithmetic.cmp8bit.fa4.and2.weight: shape=[2], values=[1.0, 1.0]
282
+ arithmetic.cmp8bit.fa4.or_carry.bias: shape=[1], values=[-1.0]
283
+ arithmetic.cmp8bit.fa4.or_carry.weight: shape=[2], values=[1.0, 1.0]
284
+ arithmetic.cmp8bit.fa4.xor1.layer1.nand.bias: shape=[1], values=[1.0]
285
+ arithmetic.cmp8bit.fa4.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
286
+ arithmetic.cmp8bit.fa4.xor1.layer1.or.bias: shape=[1], values=[-1.0]
287
+ arithmetic.cmp8bit.fa4.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
288
+ arithmetic.cmp8bit.fa4.xor1.layer2.bias: shape=[1], values=[-2.0]
289
+ arithmetic.cmp8bit.fa4.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
290
+ arithmetic.cmp8bit.fa4.xor2.layer1.nand.bias: shape=[1], values=[1.0]
291
+ arithmetic.cmp8bit.fa4.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
292
+ arithmetic.cmp8bit.fa4.xor2.layer1.or.bias: shape=[1], values=[-1.0]
293
+ arithmetic.cmp8bit.fa4.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
294
+ arithmetic.cmp8bit.fa4.xor2.layer2.bias: shape=[1], values=[-2.0]
295
+ arithmetic.cmp8bit.fa4.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
296
+ arithmetic.cmp8bit.fa5.and1.bias: shape=[1], values=[-2.0]
297
+ arithmetic.cmp8bit.fa5.and1.weight: shape=[2], values=[1.0, 1.0]
298
+ arithmetic.cmp8bit.fa5.and2.bias: shape=[1], values=[-2.0]
299
+ arithmetic.cmp8bit.fa5.and2.weight: shape=[2], values=[1.0, 1.0]
300
+ arithmetic.cmp8bit.fa5.or_carry.bias: shape=[1], values=[-1.0]
301
+ arithmetic.cmp8bit.fa5.or_carry.weight: shape=[2], values=[1.0, 1.0]
302
+ arithmetic.cmp8bit.fa5.xor1.layer1.nand.bias: shape=[1], values=[1.0]
303
+ arithmetic.cmp8bit.fa5.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
304
+ arithmetic.cmp8bit.fa5.xor1.layer1.or.bias: shape=[1], values=[-1.0]
305
+ arithmetic.cmp8bit.fa5.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
306
+ arithmetic.cmp8bit.fa5.xor1.layer2.bias: shape=[1], values=[-2.0]
307
+ arithmetic.cmp8bit.fa5.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
308
+ arithmetic.cmp8bit.fa5.xor2.layer1.nand.bias: shape=[1], values=[1.0]
309
+ arithmetic.cmp8bit.fa5.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
310
+ arithmetic.cmp8bit.fa5.xor2.layer1.or.bias: shape=[1], values=[-1.0]
311
+ arithmetic.cmp8bit.fa5.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
312
+ arithmetic.cmp8bit.fa5.xor2.layer2.bias: shape=[1], values=[-2.0]
313
+ arithmetic.cmp8bit.fa5.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
314
+ arithmetic.cmp8bit.fa6.and1.bias: shape=[1], values=[-2.0]
315
+ arithmetic.cmp8bit.fa6.and1.weight: shape=[2], values=[1.0, 1.0]
316
+ arithmetic.cmp8bit.fa6.and2.bias: shape=[1], values=[-2.0]
317
+ arithmetic.cmp8bit.fa6.and2.weight: shape=[2], values=[1.0, 1.0]
318
+ arithmetic.cmp8bit.fa6.or_carry.bias: shape=[1], values=[-1.0]
319
+ arithmetic.cmp8bit.fa6.or_carry.weight: shape=[2], values=[1.0, 1.0]
320
+ arithmetic.cmp8bit.fa6.xor1.layer1.nand.bias: shape=[1], values=[1.0]
321
+ arithmetic.cmp8bit.fa6.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
322
+ arithmetic.cmp8bit.fa6.xor1.layer1.or.bias: shape=[1], values=[-1.0]
323
+ arithmetic.cmp8bit.fa6.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
324
+ arithmetic.cmp8bit.fa6.xor1.layer2.bias: shape=[1], values=[-2.0]
325
+ arithmetic.cmp8bit.fa6.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
326
+ arithmetic.cmp8bit.fa6.xor2.layer1.nand.bias: shape=[1], values=[1.0]
327
+ arithmetic.cmp8bit.fa6.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
328
+ arithmetic.cmp8bit.fa6.xor2.layer1.or.bias: shape=[1], values=[-1.0]
329
+ arithmetic.cmp8bit.fa6.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
330
+ arithmetic.cmp8bit.fa6.xor2.layer2.bias: shape=[1], values=[-2.0]
331
+ arithmetic.cmp8bit.fa6.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
332
+ arithmetic.cmp8bit.fa7.and1.bias: shape=[1], values=[-2.0]
333
+ arithmetic.cmp8bit.fa7.and1.weight: shape=[2], values=[1.0, 1.0]
334
+ arithmetic.cmp8bit.fa7.and2.bias: shape=[1], values=[-2.0]
335
+ arithmetic.cmp8bit.fa7.and2.weight: shape=[2], values=[1.0, 1.0]
336
+ arithmetic.cmp8bit.fa7.or_carry.bias: shape=[1], values=[-1.0]
337
+ arithmetic.cmp8bit.fa7.or_carry.weight: shape=[2], values=[1.0, 1.0]
338
+ arithmetic.cmp8bit.fa7.xor1.layer1.nand.bias: shape=[1], values=[1.0]
339
+ arithmetic.cmp8bit.fa7.xor1.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
340
+ arithmetic.cmp8bit.fa7.xor1.layer1.or.bias: shape=[1], values=[-1.0]
341
+ arithmetic.cmp8bit.fa7.xor1.layer1.or.weight: shape=[2], values=[1.0, 1.0]
342
+ arithmetic.cmp8bit.fa7.xor1.layer2.bias: shape=[1], values=[-2.0]
343
+ arithmetic.cmp8bit.fa7.xor1.layer2.weight: shape=[2], values=[1.0, 1.0]
344
+ arithmetic.cmp8bit.fa7.xor2.layer1.nand.bias: shape=[1], values=[1.0]
345
+ arithmetic.cmp8bit.fa7.xor2.layer1.nand.weight: shape=[2], values=[-1.0, -1.0]
346
+ arithmetic.cmp8bit.fa7.xor2.layer1.or.bias: shape=[1], values=[-1.0]
347
+ arithmetic.cmp8bit.fa7.xor2.layer1.or.weight: shape=[2], values=[1.0, 1.0]
348
+ arithmetic.cmp8bit.fa7.xor2.layer2.bias: shape=[1], values=[-2.0]
349
+ arithmetic.cmp8bit.fa7.xor2.layer2.weight: shape=[2], values=[1.0, 1.0]
350
+ arithmetic.cmp8bit.flags.carry.bias: shape=[1], values=[-0.5]
351
+ arithmetic.cmp8bit.flags.carry.weight: shape=[1], values=[1.0]
352
+ arithmetic.cmp8bit.flags.negative.bias: shape=[1], values=[-0.5]
353
+ arithmetic.cmp8bit.flags.negative.weight: shape=[1], values=[1.0]
354
+ arithmetic.cmp8bit.flags.zero.bias: shape=[1], values=[0.0]
355
+ arithmetic.cmp8bit.flags.zero.weight: shape=[1], values=[-1.0]
356
+ arithmetic.cmp8bit.flags.zero_or.bias: shape=[1], values=[-1.0]
357
+ arithmetic.cmp8bit.flags.zero_or.weight: shape=[8], values=[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
358
+ arithmetic.cmp8bit.notb0.bias: shape=[1], values=[0.0]
359
+ arithmetic.cmp8bit.notb0.weight: shape=[1], values=[-1.0]
360
+ arithmetic.cmp8bit.notb1.bias: shape=[1], values=[0.0]
361
+ arithmetic.cmp8bit.notb1.weight: shape=[1], values=[-1.0]
362
+ arithmetic.cmp8bit.notb2.bias: shape=[1], values=[0.0]
363
+ arithmetic.cmp8bit.notb2.weight: shape=[1], values=[-1.0]
364
+ arithmetic.cmp8bit.notb3.bias: shape=[1], values=[0.0]
365
+ arithmetic.cmp8bit.notb3.weight: shape=[1], values=[-1.0]
366
+ arithmetic.cmp8bit.notb4.bias: shape=[1], values=[0.0]
367
+ arithmetic.cmp8bit.notb4.weight: shape=[1], values=[-1.0]
368
+ arithmetic.cmp8bit.notb5.bias: shape=[1], values=[0.0]
369
+ arithmetic.cmp8bit.notb5.weight: shape=[1], values=[-1.0]
370
+ arithmetic.cmp8bit.notb6.bias: shape=[1], values=[0.0]
371
+ arithmetic.cmp8bit.notb6.weight: shape=[1], values=[-1.0]
372
+ arithmetic.cmp8bit.notb7.bias: shape=[1], values=[0.0]
373
+ arithmetic.cmp8bit.notb7.weight: shape=[1], values=[-1.0]
374
  arithmetic.decrementer8bit.adder: shape=[8], values=[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
375
  arithmetic.decrementer8bit.neg_one: shape=[8], values=[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
376
  arithmetic.equality8bit.final_and.bias: shape=[1], values=[-8.0]
todo.md CHANGED
@@ -27,7 +27,7 @@
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
33
 
 
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) | DONE - 168 tensors, 65536/65536 tests pass |
31
 
32
  ## System
33