aboutsummaryrefslogtreecommitdiffstats
path: root/buch/papers/multiplikation/code/MM
diff options
context:
space:
mode:
authorAndreas Müller <andreas.mueller@ost.ch>2021-08-06 17:57:32 +0200
committerGitHub <noreply@github.com>2021-08-06 17:57:32 +0200
commit4ba09c5b219213e7a4f4a3c1d99790398f34b053 (patch)
treef7bc19eb5039e8a152914fca9b0522205b335d74 /buch/papers/multiplikation/code/MM
parentMerge pull request #74 from NaoPross/master (diff)
parentMerge branch 'AndreasFMueller:master' into master (diff)
downloadSeminarMatrizen-4ba09c5b219213e7a4f4a3c1d99790398f34b053.tar.gz
SeminarMatrizen-4ba09c5b219213e7a4f4a3c1d99790398f34b053.zip
Merge pull request #75 from Nunigan/master
Multiplikation #3
Diffstat (limited to '')
-rw-r--r--buch/papers/multiplikation/code/MM.py46
1 files changed, 25 insertions, 21 deletions
diff --git a/buch/papers/multiplikation/code/MM.py b/buch/papers/multiplikation/code/MM.py
index 47bd6ab..7220ae1 100644
--- a/buch/papers/multiplikation/code/MM.py
+++ b/buch/papers/multiplikation/code/MM.py
@@ -226,28 +226,28 @@ def plot_c_res(ave, num):
MM_t = MM[:,0]
MM_n = MM[:,1]
- MM_t = np.mean(MM_t.reshape(-1,ave),axis=1)
- MM_n = np.mean(MM_n.reshape(-1,ave),axis=1)
+ # MM_t = np.mean(MM_t.reshape(-1,ave),axis=1)
+ # MM_n = np.mean(MM_n.reshape(-1,ave),axis=1)
MM_dc_t = MM_dc[:,0]
MM_dc_n = MM_dc[:,1]
- MM_dc_t = np.mean(MM_dc_t.reshape(-1,ave),axis=1)
- MM_dc_n = np.mean(MM_dc_n.reshape(-1,ave),axis=1)
+ # MM_dc_t = np.mean(MM_dc_t.reshape(-1,ave),axis=1)
+ # MM_dc_n = np.mean(MM_dc_n.reshape(-1,ave),axis=1)
strassen_t = strassen[:,0]
strassen_n = strassen[:,1]
- strassen_t = np.mean(strassen_t.reshape(-1,ave),axis=1)
- strassen_n = np.mean(strassen_n.reshape(-1,ave),axis=1)
+ # strassen_t = np.mean(strassen_t.reshape(-1,ave),axis=1)
+ # strassen_n = np.mean(strassen_n.reshape(-1,ave),axis=1)
winograd_t = winograd[:,0]
winograd_n = winograd[:,1]
- winograd_t = np.mean(winograd_t.reshape(-1,ave),axis=1)
- winograd_n = np.mean(winograd_n.reshape(-1,ave),axis=1)
+ # winograd_t = np.mean(winograd_t.reshape(-1,ave),axis=1)
+ # winograd_n = np.mean(winograd_n.reshape(-1,ave),axis=1)
blas_t = blas[:,0]
blas_n = blas[:,1]
- blas_t = np.mean(blas_t.reshape(-1,ave),axis=1)
- blas_n = np.mean(blas_n.reshape(-1,ave),axis=1)
+ # blas_t = np.mean(blas_t.reshape(-1,ave),axis=1)
+ # blas_n = np.mean(blas_n.reshape(-1,ave),axis=1)
def func(x, a,b):
return b*x**a
@@ -261,14 +261,16 @@ def plot_c_res(ave, num):
plt.rc('axes', labelsize=23)
plt.rc('xtick', labelsize=23)
plt.rc('ytick', labelsize=23)
- plt.plot(MM_n, MM_t, label='3 For Loops', lw=5)
- plt.plot(winograd_n, winograd_t, label='Winograd MM', lw=5)
- plt.plot(blas_n, blas_t, label='Blas', lw=5)
- plt.plot(strassen_n, strassen_t, label='Strassen', lw=5)
- plt.plot(MM_dc_n, MM_dc_t, label='Divide and Conquer', lw=5)
+ plt.loglog(MM_n, MM_t, label='3 For Loops', lw=5)
+ plt.loglog(winograd_n, winograd_t, label='Winograd MM', lw=5)
+ plt.loglog(blas_n, blas_t, label='Blas', lw=5)
+ plt.loglog(strassen_n, strassen_t, label='Strassen', lw=5)
+ plt.loglog(MM_dc_n, MM_dc_t, label='Divide and Conquer', lw=5)
plt.xlabel("n")
+ # plt.yscale('log', base=10)
+ # plt.xscale('log', base=2)
plt.ylabel("time (s)")
- plt.grid(True)
+ plt.grid(True, which="both", ls="-")
plt.tight_layout()
plt.legend(fontsize=19)
plt.savefig('c_meas_' + str(num)+ '.pdf')
@@ -278,15 +280,17 @@ def plot_c_res(ave, num):
# plt.plot(blas_n, func(blas_n, *popt2), 'r-', label='fit MM: a=%5.5f, b=%5.10f' % tuple(popt2))
plt.legend()
-
+ # return [MM_n,winograd_n,blas_n,strassen_n,MM_dc_n]
+ return [MM_t,winograd_t,blas_t,strassen_t,MM_dc_t]
+
# test%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if __name__ == '__main__':
- # plot_c_res(1, 4096)
+ # A = plot_c_res(1, 4096)
- # arr = plot(1024)
- n = np.logspace(1,12,12,base=2,dtype=(np.int))
+ arr = plot(1024)
+ # n = np.logspace(1,12,12,base=2,dtype=(np.int))
# n = np.arange(1,50,2)
# A = np.random.randint(-10, 6, (5,3))
# B = np.random.randint(-10, 6, (3,5))
@@ -297,7 +301,7 @@ if __name__ == '__main__':
# print(C_test)
# print(np.equal(C, C_test))
- t_np = test_perfomance(n)
+ # t_np = test_perfomance(n)
# C = strassen(A, B)
# C_test = A@B