ucb-bar / cosa

A scheduler for spatial DNN accelerators that generate high-performance schedules in one shot using mixed integer programming (MIP)
BSD 2-Clause "Simplified" License
73 stars 17 forks source link

Output File Not Generated #10

Open piyumalranawaka opened 1 year ago

piyumalranawaka commented 1 year ago

When I run the command

osa -o /home/piyumal/cosa -ap /home/piyumal/cosa/cosa-main/src/cosa/configs/arch/simba.yaml -mp /home/piyumal/cosa/cosa-main/src/cosa/configs/mapspace/mapspace.yaml -pp /home/piyumal/cosa/cosa-main/src/cosa/configs/workloads/alexnet_graph/_outputs_input.4.yaml

The input files could be found here https://drive.google.com/drive/folders/1ftM5taTAAT_avwIPrEtAa2Svy4-qCzuK?usp=sharing

I get the following output in the terminal:

Set parameter Username INFO:gurobipy.gurobipy:Set parameter Username Academic license - for non-commercial use only - expires 2024-06-28 INFO:gurobipy.gurobipy:Academic license - for non-commercial use only - expires 2024-06-28 Gurobi Optimizer version 9.5.2 build v9.5.2rc0 (linux64) INFO:gurobipy.gurobipy:Gurobi Optimizer version 9.5.2 build v9.5.2rc0 (linux64) Thread count: 2 physical cores, 4 logical processors, using up to 4 threads INFO:gurobipy.gurobipy:Thread count: 2 physical cores, 4 logical processors, using up to 4 threads Optimize a model with 839 rows, 1262 columns and 7781 nonzeros INFO:gurobipy.gurobipy:Optimize a model with 839 rows, 1262 columns and 7781 nonzeros Model fingerprint: 0x8e76fc88 INFO:gurobipy.gurobipy:Model fingerprint: 0x8e76fc88 Model has 1490 quadratic objective terms INFO:gurobipy.gurobipy:Model has 1490 quadratic objective terms Model has 4 quadratic constraints INFO:gurobipy.gurobipy:Model has 4 quadratic constraints Model has 1 general constraint INFO:gurobipy.gurobipy:Model has 1 general constraint Variable types: 6 continuous, 1256 integer (1188 binary) INFO:gurobipy.gurobipy:Variable types: 6 continuous, 1256 integer (1188 binary) Coefficient statistics: INFO:gurobipy.gurobipy:Coefficient statistics: Matrix range [1e+00, 2e+00] INFO:gurobipy.gurobipy: Matrix range [1e+00, 2e+00] QMatrix range [1e+00, 2e+00] INFO:gurobipy.gurobipy: QMatrix range [1e+00, 2e+00] QLMatrix range [1e+00, 7e+00] INFO:gurobipy.gurobipy: QLMatrix range [1e+00, 7e+00] Objective range [1e+00, 3e+01] INFO:gurobipy.gurobipy: Objective range [1e+00, 3e+01] QObjective range [3e-01, 5e+00] INFO:gurobipy.gurobipy: QObjective range [3e-01, 5e+00] Bounds range [1e+00, 1e+00] INFO:gurobipy.gurobipy: Bounds range [1e+00, 1e+00] RHS range [1e+00, 2e+01] INFO:gurobipy.gurobipy: RHS range [1e+00, 2e+01] QRHS range [1e+01, 1e+01] INFO:gurobipy.gurobipy: QRHS range [1e+01, 1e+01] Presolve removed 650 rows and 152 columns INFO:gurobipy.gurobipy:Presolve removed 650 rows and 152 columns Presolve time: 0.01s INFO:gurobipy.gurobipy:Presolve time: 0.01s Presolved: 4643 rows, 2594 columns, 15781 nonzeros INFO:gurobipy.gurobipy:Presolved: 4643 rows, 2594 columns, 15781 nonzeros Variable types: 2 continuous, 2592 integer (2591 binary) INFO:gurobipy.gurobipy:Variable types: 2 continuous, 2592 integer (2591 binary)

INFO:gurobipy.gurobipy: Root relaxation: objective 2.241741e+02, 193 iterations, 0.00 seconds (0.00 work units) INFO:gurobipy.gurobipy:Root relaxation: objective 2.241741e+02, 193 iterations, 0.00 seconds (0.00 work units)

INFO:gurobipy.gurobipy: Nodes | Current Node | Objective Bounds | Work INFO:gurobipy.gurobipy: Nodes | Current Node | Objective Bounds | Work Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time INFO:gurobipy.gurobipy: Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time

INFO:gurobipy.gurobipy: 0 0 224.17410 0 8 - 224.17410 - - 0s INFO:gurobipy.gurobipy: 0 0 224.17410 0 8 - 224.17410 - - 0s H 0 0 234.9708346 224.17410 4.59% - 0s INFO:gurobipy.gurobipy:H 0 0 234.9708346 224.17410 4.59% - 0s H 0 0 232.9582244 224.17410 3.77% - 0s INFO:gurobipy.gurobipy:H 0 0 232.9582244 224.17410 3.77% - 0s 0 0 224.28806 0 13 232.95822 224.28806 3.72% - 0s INFO:gurobipy.gurobipy: 0 0 224.28806 0 13 232.95822 224.28806 3.72% - 0s H 0 0 230.3380479 224.28806 2.63% - 0s INFO:gurobipy.gurobipy:H 0 0 230.3380479 224.28806 2.63% - 0s H 0 0 227.3074593 224.28806 1.33% - 0s INFO:gurobipy.gurobipy:H 0 0 227.3074593 224.28806 1.33% - 0s H 0 0 225.5274472 224.28806 0.55% - 0s INFO:gurobipy.gurobipy:H 0 0 225.5274472 224.28806 0.55% - 0s 0 0 224.32156 0 21 225.52745 224.32156 0.53% - 0s INFO:gurobipy.gurobipy: 0 0 224.32156 0 21 225.52745 224.32156 0.53% - 0s 0 0 224.33077 0 10 225.52745 224.33077 0.53% - 0s INFO:gurobipy.gurobipy: 0 0 224.33077 0 10 225.52745 224.33077 0.53% - 0s 0 0 224.33528 0 11 225.52745 224.33528 0.53% - 0s INFO:gurobipy.gurobipy: 0 0 224.33528 0 11 225.52745 224.33528 0.53% - 0s 0 0 224.37845 0 16 225.52745 224.37845 0.51% - 0s INFO:gurobipy.gurobipy: 0 0 224.37845 0 16 225.52745 224.37845 0.51% - 0s 0 0 224.66952 0 6 225.52745 224.66952 0.38% - 0s INFO:gurobipy.gurobipy: 0 0 224.66952 0 6 225.52745 224.66952 0.38% - 0s H 0 0 224.7522820 224.66952 0.04% - 0s INFO:gurobipy.gurobipy:H 0 0 224.7522820 224.66952 0.04% - 0s 0 0 224.70836 0 4 224.75228 224.70836 0.02% - 0s INFO:gurobipy.gurobipy: 0 0 224.70836 0 4 224.75228 224.70836 0.02% - 0s 0 0 cutoff 0 224.75228 224.75228 0.00% - 0s INFO:gurobipy.gurobipy: 0 0 cutoff 0 224.75228 224.75228 0.00% - 0s

INFO:gurobipy.gurobipy: Explored 1 nodes (763 simplex iterations) in 0.16 seconds (0.13 work units) INFO:gurobipy.gurobipy:Explored 1 nodes (763 simplex iterations) in 0.16 seconds (0.13 work units) Thread count was 4 (of 4 available processors) INFO:gurobipy.gurobipy:Thread count was 4 (of 4 available processors)

INFO:gurobipy.gurobipy: Solution count 9: 224.752 224.983 224.983 ... 234.971 INFO:gurobipy.gurobipy:Solution count 9: 224.752 224.983 224.983 ... 234.971

INFO:gurobipy.gurobipy: Optimal solution found (tolerance 1.00e-04) INFO:gurobipy.gurobipy:Optimal solution found (tolerance 1.00e-04) Best objective 2.247522819817e+02, best bound 2.247522819817e+02, gap 0.0000% INFO:gurobipy.gurobipy:Best objective 2.247522819817e+02, best bound 2.247522819817e+02, gap 0.0000%

Then in the output folder I have specified I get the following folder chain but it is empty at the end: /cosa/output/simba/5_5_27_27_64_192_1_1_1_1_1/1_1_1_1_1_1_1-1_1_1_1_4_2_1-1_1_1_1_1_1_1-1_1_1_1_1_8_1-1_1_1_1_16_1_1-1_1_1_1_1_1_1+0123456-0123456-0123456-0123456-0123456-0123456

Any help to find the output mapping would be extreamly appreciated and a great help indeed.

Thank You & Warm Regards, Piyumal

hqjenny commented 1 year ago

Hi Piyumal,

I copied your files over and they seem to work fine using the CoSA on the main branch for me. Please let me know if it still does not work with your setup.

Here is the generated output mapping arch/5_5_27_27_64_192_1_1_1_1_1/1_1_1_1_1_1_1-1_1_1_1_4_2_1-1_1_1_1_1_1_1-1_1_1_1_2_4_1-1_1_1_1_4_4_1-1_1_1_1_1_1_1+0123456-0123456-0123456-0123456-0123456-0123456

 2 DRAM [ Weights:307200 Inputs:61504 Outputs:139968 ]
  3 ---------------------------------------------------
  4 | for K in [0:2)
  5 |   for P in [0:3)
  6 |     for S in [0:5)
  7 |       for R in [0:5)
  8
  9 GlobalBuffer [ Inputs:15552 Outputs:23328 ]
 10 -------------------------------------------
 11 |         for N in [0:1)
 12 |           for K in [0:4) (Spatial-X)
 13 |             for C in [0:4) (Spatial-X)
 14
 15 InputBuffer [ Inputs:3888 ]
 16 ---------------------------
 17 |               for N in [0:1)
 18 |                 for K in [0:4) (Spatial-X)
 19 |                   for C in [0:2) (Spatial-X)
 20
 21 WeightBuffer [ Weights:48 ]
 22 ---------------------------
 23 |                     for K in [0:3)
 24 |                       for P in [0:9)
 25
 26 AccumulationBuffer [ Outputs:54 ]
 27 ---------------------------------
 28 |                         for C in [0:2)
 29 |                           for K in [0:2) (Spatial-X)
 30 |                             for C in [0:4) (Spatial-X)
 31
 32 Registers [ Weights:1 ]
 33 -----------------------
 34 |                               for Q in [0:27)
piyumalranawaka commented 1 year ago

Hi Jenny,

I'm sorry I could not check it since I was on vacation, I will check it and let you. Thanks a lot indeed for your kind support.

Warm Regards, Piyumal

On Sat, Aug 12, 2023 at 9:09 AM hqjenny @.***> wrote:

Hi Piyumal,

I copied your files over and they seem to work fine using the CoSA on the main branch for me. Please let me know if it still does not work with your setup.

Here is the generated output mapping

arch/5_5_27_27_64_192_1_1_1_1_1/1_1_1_1_1_1_1-1_1_1_1_4_2_1-1_1_1_1_1_1_1-1_1_1_1_2_4_1-1_1_1_1_4_4_1-1_1_1_1_1_1_1+0123456-0123456-0123456-0123456-0123456-0123456

2 DRAM [ Weights:307200 Inputs:61504 Outputs:139968 ] 3 --------------------------------------------------- 4 | for K in [0:2) 5 | for P in [0:3) 6 | for S in [0:5) 7 | for R in [0:5) 8 9 GlobalBuffer [ Inputs:15552 Outputs:23328 ] 10 ------------------------------------------- 11 | for N in [0:1) 12 | for K in [0:4) (Spatial-X) 13 | for C in [0:4) (Spatial-X) 14 15 InputBuffer [ Inputs:3888 ] 16 --------------------------- 17 | for N in [0:1) 18 | for K in [0:4) (Spatial-X) 19 | for C in [0:2) (Spatial-X) 20 21 WeightBuffer [ Weights:48 ] 22 --------------------------- 23 | for K in [0:3) 24 | for P in [0:9) 25 26 AccumulationBuffer [ Outputs:54 ] 27 --------------------------------- 28 | for C in [0:2) 29 | for K in [0:2) (Spatial-X) 30 | for C in [0:4) (Spatial-X) 31 32 Registers [ Weights:1 ] 33 ----------------------- 34 | for Q in [0:27)

— Reply to this email directly, view it on GitHub https://github.com/ucb-bar/cosa/issues/10#issuecomment-1675754865, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOSZ5TZRE7IIWKOIYACBCVLXU4TZFANCNFSM6AAAAAAZ6RATNU . You are receiving this because you authored the thread.Message ID: @.***>

iboxl commented 1 month ago

same problem by"pip install cosa-scheduler" I fixed it in run_config.py adding "import cosa.utils as utils" Maybe using sys.path.append(base_path) is a more correct approach