Chulalongkorn University Theses and Dissertations (Chula ETD)

Other Title (Parallel Title in Other Language of ETD)

การคูณเมทริกซ์ที่ปรับได้สำหรับความว่างระดับต่างๆ โดยใช้เทนเซอร์-โฟลว

Year (A.D.)

2019

Document Type

Thesis

First Advisor

Jaruloj Chongstitvatana

Faculty/College

Faculty of Science (คณะวิทยาศาสตร์)

Degree Name

Master of Science

Degree Level

Master's Degree

Degree Discipline

Computer Science

DOI

10.58837/CHULA.THE.2019.166

Abstract

Matrix multiplication is a fundamental operation used in many problems, and many matrix multiplication algorithms are proposed for many computing environments. TensorFlow is a machine learning platform with many mathematic library functions including matrix multiplication. TensorFlow provides two methods, tf.matmul and tf.sparse_matmul, for matrix multiplication. It is suggested that tf.matmul should be used for dense matrices, and tf.sparse_matmul should be used for sparse matrices. In this work, an approach is proposed to improve the efficiency of matrix multiplication in TensorFlow. The proposed approach divides each matrix into four submatrices, and chooses either tf.matmul or tf.sparse_matmul for the multiplication of each pair of submatrices, based on the density of the submatrices. We found that it is faster than both tf.matmul and tf.sparse_matmul for input matrices that have uneven distribution of non-zero values. For other inputs, it is almost as fast as the faster one between tf.matmul and tf.sparse_matmul. However, this approach can only be used for CPUs because tf.sparse_matmul is supported only on CPUs but not GPUs.

Other Abstract (Other language abstract of ETD)

การคูณเมทริกซ์เป็นการดำเนินการทางคณิตศาสตร์ที่นำไปประยุกต์ใช้แก้ไขปัญหาหลายประเภทและมีการนำเสนอขั้นตอนวิธีการคูณเมทริกซ์สำหรับหลายแพลตฟอร์ม เทนเซอร์โฟลว เป็นแพลทฟอร์มสำหรับการเรียนรู้ด้วยเครื่องที่ประกอบด้วยชุดคำสั่งทางคณิตศาสตร์หลายคำสั่ง รวมถึงคำสั่งการคูณเมทริกซ์ เทนเซอร์โฟลวมีคำสั่งพื้นฐานสำหรับคูณเมทริกซ์สองคำสั่งคือ tf.matmul และ tf.sparse_matmul ซึ่งแนะนำให้ใช้กับเมทริกซ์ที่มีเลขศูนย์น้อยและเมทริกซ์ที่มีเลขศูนย์มาก ตามลำดับ วิทยานิพนธ์ฉบับนี้นำวิธีปรับปรุงประสิทธิภาพของการคูณเมทริกซ์บนแพลตฟอร์มเทนเซอร์โฟลว วิธึการคูณเมทริกซ์ที่นำเสนอจะแบ่งแต่ละเมทริกซ์เป็นสี่เมทริกซ์ย่อย จากนั้นจึงเลือกระหว่าง tf.matmul และ tf.sparse_matmul ที่เป็นคำสั่งพื้นฐานสำหรับคูณเมทริกซ์ เพื่อคูณคู่ของเมทริกซ์ย่อยแต่ละคู่ ตามความหนาแน่นของเมทริกซ์ย่อย เราพบว่าคำสั่งการคูณเมทริกซ์ที่นำเสนอนี้สามารถคูณเมทริกซ์ได้เร็วกว่า tf.matmul และ tf.sparse_matmul ในกรณีที่เมทริกซ์มีการกระจายตัวของค่าที่ไม่ใช่ศูนย์ไม่สม่ำเสมอ สำหรับกรณีอื่นๆคำสั่งการคูณเมทริกซ์ดังกล่าวสามารถคูณเมทริกซ์ได้ช้ากว่าคำสั่งที่พื้นฐานที่เร็วที่สุดระหว่าง tf.matmul หรือ tf.sparse_matmul เล็กน้อย อย่างไรก็ตาม คำสั่งการคูณเมทริกซ์ดังกล่าวใช้ได้เฉพาะบน CPU เนื่องจาก tf.sparse_matmul รองรับการทำงานเฉพาะบน CPU ไม่รองรับการทำงานบน GPU

Share

COinS
 
 

To view the content in your browser, please download Adobe Reader or, alternately,
you may Download the file to your hard drive.

NOTE: The latest versions of Adobe Reader do not support viewing PDF files within Firefox on Mac OS and if you are using a modern (Intel) Mac, there is no official plugin for viewing PDF files within the browser window.