|
|
import torch |
|
|
import time |
|
|
import os |
|
|
import argparse |
|
|
import shutil |
|
|
import sys |
|
|
|
|
|
def parse_args(): |
|
|
parser = argparse.ArgumentParser(description='Matrix multiplication') |
|
|
parser.add_argument('--gpus', help='gpu amount',default = 1, type=int) |
|
|
parser.add_argument('--size', help='matrix size', default =2000, type=int) |
|
|
parser.add_argument('--interval', help='sleep interval', default = 0.01, type=float) |
|
|
args = parser.parse_args() |
|
|
return args |
|
|
|
|
|
|
|
|
def matrix_multiplication(args): |
|
|
|
|
|
a_list, b_list, result = [], [], [] |
|
|
size = (args.size, args.size) |
|
|
|
|
|
for i in range(args.gpus): |
|
|
a_list.append(torch.rand(size, device=i)) |
|
|
b_list.append(torch.rand(size, device=i)) |
|
|
result.append(torch.rand(size, device=i)) |
|
|
|
|
|
while True: |
|
|
for i in range(args.gpus): |
|
|
result[i] = a_list[i] * b_list[i] |
|
|
time.sleep(args.interval) |
|
|
|
|
|
if __name__ == "__main__": |
|
|
|
|
|
args = parse_args() |
|
|
matrix_multiplication(args) |