INTAI / multicore.py
Factor Studios
Upload 35 files
0a735c8 verified
raw
history blame
1.58 kB
"""
Multicore system simulation for virtual GPU v2.
Simulates 50,000 identical AdvancedCore instances in parallel.
"""
from core import AdvancedCore
class MultiCoreSystem:
def __init__(self, num_cores=50000, bits=2, num_registers=2):
self.cores = [AdvancedCore(bits=bits, num_registers=num_registers) for _ in range(num_cores)]
self.num_cores = num_cores
def step_all(self, a, b, cin, opcode, reg_sel):
"""
Steps all cores in parallel with the same input.
a, b: lists of voltages (length 2)
cin: carry in
opcode: ALU operation
reg_sel: register select
Returns: list of results from all cores
"""
return [core.step(a, b, cin, opcode, reg_sel) for core in self.cores]
def step_all_custom(self, inputs):
"""
Steps all cores in parallel with custom input for each core.
inputs: list of dicts with keys 'a', 'b', 'cin', 'opcode', 'reg_sel'
Returns: list of results from all cores
"""
return [core.step(inp['a'], inp['b'], inp['cin'], inp['opcode'], inp['reg_sel']) for core, inp in zip(self.cores, inputs)]
if __name__ == "__main__":
print("\n--- MultiCore System Simulation (50,000 cores) ---")
system = MultiCoreSystem(num_cores=50000, bits=2, num_registers=2)
# Example: Step all cores with the same ADD operation
results = system.step_all([0.7, 0.0], [0.7, 0.7], 0.0, 0b10, 0)
print(f"First core result: {results[0]}")
print(f"Total cores simulated: {len(results)}")