จุดประสงค์ของสคริปต์ Spirals คือการสร้างภาพที่สร้างโดยคอมพิวเตอร์ ภาพแผนที่ไปยัง GPU ด้วยการสนับสนุน CUDA
ต่อไปนี้เป็นตัวอย่างของภาพที่สร้างขึ้นด้วยสคริปต์ Python รายละเอียดการกำหนดค่าของพวกเขาสามารถพบได้ในโฟลเดอร์ตัวอย่างพร้อมตัวอย่างอื่น ๆ
ในการเรียกใช้สคริปต์ Python จำเป็นต้องติดตั้งการพึ่งพาต่อไปนี้:
เมื่อวิ่งตามลำดับบน Intel i7-9700K แต่ละภาพจะใช้เวลาประมาณ 23.5877081 วินาที
ขั้นตอนแรกในการเพิ่มประสิทธิภาพอัลกอริทึม CGI คือการสร้างอัลกอริทึมใหม่สำหรับการใช้งานแบบขนานบน GPU สิ่งนี้ทำโดยใช้ @cuda.jit มัณฑนากรซึ่งต้องใช้การเรียกใช้เคอร์เนล ก่อนที่อัลกอริทึมจะดำเนินการโค้ดจะกำหนดวิธีการแมปอาร์เรย์พิกเซลลงบนฮาร์ดแวร์ GPU ในอัลกอริทึมลูปเพื่อคำนวณแต่ละพิกเซลจะถูกแทนที่ด้วย i, j = cuda.grid(2) ถ้า i และ j อยู่ในขอบเขตของภาพฟังก์ชั่นจะคำนวณสีพิกเซลของดัชนี ไม่มีลูป การเร่งความเร็วของการขนานอยู่ที่ประมาณ 1,072 โดยใช้เวลาประมาณ 22.1124 มิลลิวินาที
ตามเครื่องมือ nvprof CLI (ในการเพิ่มประสิทธิภาพ TXT) [CUDA memcpy HtoD] คิดเป็นประมาณ 36.09% ของการดำเนินการ เพื่อข้ามสิ่งนี้อาร์เรย์พิกเซลสามารถสร้างและเริ่มต้นบนอุปกรณ์โดยไม่ต้องเพิ่มในหน่วยความจำด้าน CPU numba.cuda จัดเตรียมฟังก์ชัน device_array ให้ทำเช่นนั้น การเร่งความเร็วของการลดการถ่ายโอนโฮสต์ไปยังอุปกรณ์อยู่ที่ประมาณ 1.38 โดยใช้เวลาประมาณ 15.9563 มิลลิวินาที
การเพิ่มประสิทธิภาพครั้งต่อไปใช้ประโยชน์จากหน่วยความจำที่ใช้ร่วมกันหน่วยความจำที่บล็อกของเธรดแชร์ เนื่องจากหน่วยความจำเป็นบล็อกที่เฉพาะเจาะจงการอ่านและความเร็วในการเขียนจึงเร็วขึ้น ดังนั้นการดำเนินการเข้าถึงหน่วยความจำสามารถคำนวณได้ในหน่วยความจำที่ใช้ร่วมกัน การดำเนินการตามมาการเข้าถึงหนึ่งครั้งอย่างช้าๆไปยังอาร์เรย์พิกเซลทั่วโลกทำให้การคำนวณแบบขนานเสร็จสมบูรณ์ การเร่งความเร็วของการใช้หน่วยความจำที่ใช้ร่วมกันอยู่ที่ประมาณ 1.068 โดยใช้เวลาประมาณ 14.9425 มิลลิวินาที
การเร่งความเร็วทั้งหมดจากอัลกอริทึม CPU ไปยังอัลกอริทึม GPU ที่ปรับให้เหมาะสมคือประมาณ 1,578