import random BASE=""" salloc -N {nodes} --exclusive \\ mpirun --bind-to none -mca btl ^openib -npernode 1 \\ numactl --physcpubind 0-39 \\ ./main -v -p {padding} -d {dilation} -s {stride} {N} {C} {H} {W} {K} {R} {S} \\ """ for i in range(10): nodes=random.randint(1,2) padding=random.randint(0,10) stride=random.randint(1,5) dilation=random.randint(1,5) N=random.randint(1,128) C=random.randint(1,128) H=random.randint(1,128) W=random.randint(1,128) K=random.randint(1,128) R=random.randint(1,128) S=random.randint(1,128) OH = (H + 2 * padding - dilation * (R - 1) - 1) // stride + 1 OW = (W + 2 * padding - dilation * (S - 1) - 1) // stride + 1 FLOPS = 2 * N * K * OH * OW * C * R * S while not(OH > 0 and OW > 0 and FLOPS < 100 * 1e9): padding=random.randint(0,10) stride=random.randint(1,5) dilation=random.randint(1,5) N=random.randint(1,128) C=random.randint(1,128) H=random.randint(1,128) W=random.randint(1,128) K=random.randint(1,128) R=random.randint(1,128) S=random.randint(1,128) OH = (H + 2 * padding - dilation * (R - 1) - 1) // stride + 1 OW = (W + 2 * padding - dilation * (S - 1) - 1) // stride + 1 FLOPS = 2 * N * K * OH * OW * C * R * S print(BASE.format( nodes=nodes, padding=padding, stride=stride, dilation=dilation, N=N, C=C, H=H, W=W, K=K, R=R, S=S, ))