Please use this identifier to cite or link to this item: https://cuir.car.chula.ac.th/handle/123456789/77616
Title: Adaptive matrix multiplication for various degree of sparsity using tensorflow
Other Titles: การคูณเมทริกซ์ที่ปรับได้สำหรับความว่างระดับต่างๆ โดยใช้เทนเซอร์-โฟลว
Authors: Siraphob Theeracheep
Advisors: Jaruloj Chongstitvatana
Other author: Chulalongkorn University. Faculty of Science
Advisor's Email: Jaruloj.C@Chula.ac.th,jaruloj@gmail.com
Subjects: Computer arithmetic
Matrices
การคำนวณของคอมพิวเตอร์
เมทริกซ์
Issue Date: 2019
Publisher: Chulalongkorn University
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: การคูณเมทริกซ์เป็นการดำเนินการทางคณิตศาสตร์ที่นำไปประยุกต์ใช้แก้ไขปัญหาหลายประเภทและมีการนำเสนอขั้นตอนวิธีการคูณเมทริกซ์สำหรับหลายแพลตฟอร์ม เทนเซอร์โฟลว เป็นแพลทฟอร์มสำหรับการเรียนรู้ด้วยเครื่องที่ประกอบด้วยชุดคำสั่งทางคณิตศาสตร์หลายคำสั่ง รวมถึงคำสั่งการคูณเมทริกซ์ เทนเซอร์โฟลวมีคำสั่งพื้นฐานสำหรับคูณเมทริกซ์สองคำสั่งคือ 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
Description: Thesis (M.Sc.)--Chulalongkorn University, 2019
Degree Name: Master of Science
Degree Level: Master's Degree
Degree Discipline: Computer Science
URI: http://cuir.car.chula.ac.th/handle/123456789/77616
URI: http://doi.org/10.58837/CHULA.THE.2019.166
metadata.dc.identifier.DOI: 10.58837/CHULA.THE.2019.166
Type: Thesis
Appears in Collections:Sci - Theses

Files in This Item:
File Description SizeFormat 
5972633323.pdf809.52 kBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.