Adaptive matrix multiplication for various degree of sparsity using tensorflow - Siraphob Theeracheep (Chulalongkorn University, 2019)
การคูณเมทริกซ์เป็นการดำเนินการทางคณิตศาสตร์ที่นำไปประยุกต์ใช้แก้ไขปัญหาหลายประเภทและมีการนำเสนอขั้นตอนวิธีการคูณเมทริกซ์สำหรับหลายแพลตฟอร์ม เทนเซอร์โฟลว เป็นแพลทฟอร์มสำหรับการเรียนรู้ด้วยเครื่องที่ประกอบด้วยชุดคำสั่งทางคณิตศาสตร์หลายคำสั่ง รวมถึงคำสั่งการคูณเมทริกซ์ เทนเซอร์โฟลวมีคำสั่งพื้นฐานสำหรับคูณเมทริกซ์สองคำสั่งคือ 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