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
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Recommended Citation
Theeracheep, Siraphob, "Adaptive matrix multiplication for various degree of sparsity using tensorflow" (2019). Chulalongkorn University Theses and Dissertations (Chula ETD). 8542.
https://digital.car.chula.ac.th/chulaetd/8542