Wednesday, November 26, 2008

Yes, I can (not)!

หลังจากงมอยู่กับ streams มาเนิ่นนาน ในที่สุดเราก็เขียน array addition with streams ได้สำเร็จ
After I got confused with streams on CUDA for so long, I finally could debug my code of array addition with streams.

It was just the Grid size that made me got the wrong answers. It was different from the sample code called simpleStreams, that I tried to imitate, which the grid size was defined by (array_size / (nstreams * block_size)) because it was an array initialization. When I drew some pictures to express the idea behind it, I found that it should be different. In my code, it was supposed to be (array_size / block_size) because I put two arrays added together and I had already defined the position of each element as well.

Next step... try to measure the execution time. That would for sure not be as puzzle as this step. :)

อ้าว! เวงละ...พอเอาขึ้น 8800 กับ Tesla ดันไม่ได้ซะงั้น
เอาใหม่ๆ


Tuesday, November 25, 2008

Day 242...Season of Fall in Ruston

ตามสัญญากับเพื่อนๆ พี่ๆ น้องๆ ทั้งหลาย เอารูปใบไม้เปลี่ยนสีมาให้ยล แต่ภาพไม่ค่อยสวยนะ ถ่ายด้วยกล้องวิดีโอ


อันนี้หน้าบ้าน


นี่ก็หน้าบ้าน


นี่ก็หลิวหน้าบ้าน หลิวลู่ลม (ไม่รู้ใช่หลิวรึเปล่า แต่ทุกคนเรียกหลิว)


ขยับห่างบ้านมาหน่อยจะเห็นความแดง (กล้องไม่ค่อยดี มันเลยออกส้มๆ)


แดงมั้ยๆ พยายามปรับให้สีมันเข้มขึ้นแล้วนะเนี่ย


อันนี้ข้างๆ อพาร์ตเมนต์เก่า จะเห็นบางต้นโกร๋นแล้ว


ใกล้ๆ ตึกเรียน (มัวเชียว)


ต้นนี้อยู่หน้า Carson Taylor Hall เหลืองแจ่มมากๆ แต่ต้นคูนบ้านเราสวยกว่า อิอิ


ขยับออกมาอีกหน่อย ตรงหอนาฬิกา (ที่เดินไม่เคยตรง)


เดินกลับบ้านละ อันนี้ตรงทางรถไฟทีต้องผ่านประจำ


นี่ก็ทางรถไฟ หันมาอีกข้างนึง



หมดแล้ว พอดีช่วงนี้เป็น quarter break ก็เลยว่างถ่ายรูปได้นิดนึง ไว้ถ้าได้ถ่ายอีกจะเอามาให้ยล


Monday, November 24, 2008

Tesla C870 doesn't support streams

I have asked Paulius, who work for NVIDIA about what I have found out from running simpleStreams on GeForce 8800 and Tesla C870. He told me that the ability of overlapping memory copy with kernel execution is on GPUs with compute capability 1.1 and higher, but Tesla C870 is compute capability 1.0. Got it!

The information about compute capability is available in Programming Guide. Below was excerpted from Version 2.0.


The compute capability of a device is defined by a major revision number and a minor revision number.

Devices with the same major revision number are of the same core architecture. The devices listed in Appendix A are all of compute capability 1.x (Their major revision number is 1).

The minor revision number corresponds to an incremental improvement to the core architecture, possibly including new features. The technical specifications of the various compute capabilities are given in Appendix A.


Appendix A is about Technical Specifications and all those specifications of each revision of compute capability can be found there.


From the meeting with Dr. Box today, he told us that we are going to have a new GPU from AMD. So he told us to start looking at this. http://ati.amd.com/technology/streamcomputing/resources.html And I will have to work with Clayton and Himanshu to set up the system.

Data scheduling on GPGPU (CUDA) is the key word for my research. :) It might be extend into check point which is related to Mon's research in the future.


Friday, November 21, 2008

Day 238... Back Home

กลับมา Ruston แล้ว​ โดยปลอดภัย เมื่อเกือบๆ เที่ยงคืนของเมื่อวาน (ยังไม่เลยเที่ยงคืน นับเป็นเมื่อวานอยู่)
ไว้หาเน็ตดีๆ ก่อน แล้วจะมาแปะรูปให้ดูกัน

Sunday, November 16, 2008

Streams on Tesla C870

Since There was some odd issue with the results from running simpleStreams, this should be the answer to this issue.
http://forums.nvidia.com/index.php?showtopic=81335&st=0&p=461030
I have read but still do not understand. I might need to look over my SDK 2.0 if there is this deviceQuery and run it to see if I get the same output.

Came across this searching Tesla thing.
http://www.reviewlab.net/2007/11/10/ati-launches-firestream-9170-gpgpu-technology/
This ADI's FireStream was lunched last year in SC07 (Now, I am in SC08) to compete this NVIDIA's Tesla.


Day 233...SC08: First Day

มางาน SC08 ที่ Austin, TX

ตื่นแต่ตีห้า ทำอะไรเสร็จแล้วก็ไปรอพรรคพวกที่แลปตอน 6:30 นัดกันตอน 6:45 แต่ละคนก็ทยอยมา มี เอก มน James พี่นูน Clayton แล้ว Dr. Box ก็ขับรถมารับตอน 7:00 พอดี (นี่เขากะเวลากันไว้หมดแล้ว คือ เราเป็นพวกซื่ออะ บอกยังไง หนูก็มายังงั้น)

แล้วก็ออกเดินทาง ระหว่างนั้นก็หลับมั่ง แต่ไม่สนิท แต่ละคนสลับกันคุย ตอนแรกเจมส์มันเงียบ (Dr. Box แซวว่ามันยังไม่ตื่น) ซักพัก มันก็เริ่มคุย แล้วมันก็คุยยาว...

มีแวะซื้อของกินนิดหน่อย ระหว่างเติมน้ำมัน เผื่อบางคนยังไม่กินอะไรตอนเช้า เรากิน cereal ไปแล้ว แถมยังแบก cereal bars ไปอีก ประมาณว่า กองทัพเดินด้วยท้อง ก็เลยซื้อแต่น้ำเปล่าไปขวดนึง

ประมาณ 11 โมงก็แวะ Subway กินเที่ยง ใครๆ ก็รู้ว่า Subway มันเป็นแซนวิช วัดกันเป็นนิ้ว มีขนาด six-inched กับ foot-long แต่ไม่ว่าจะเป็นหกนิ้วหรือฟุตนึง ไอ้เอ๋ก็กินไม่หมด ก็เลยสั่ง mini bars ประมาณสี่นิ้วแทน (อันเล็กสุดอะ)

มาถึงออสตินประมาณบ่ายสองได้ ก็เช็คอิน แต่ Dr. Box กับ Clayton ไม่ได้พักด้วย (ก็ไม่ใช่ Student Volunteer นิ) เข้าไปในห้องยังไม่เจอรูมเมท เห็นแต่ของ (อ้อ ก่อนมา เขาแอด facebook เราไว้ด้วยแหละ อิอิ) แล้วก็เดินไปที่ convention center ระหว่างเดินไปก็เจอขบวนเรียกร้องการแต่งงานของเกย์ พร้อมธงสีรุ้ง

พอไปถึง venue ก็ไปเอาแจ็คเก็ตที่ออฟฟิศของ student volunteer ไป register เอากระเป๋า ฯลฯ ชอบแจ็คเก็ตอะ นิ่ม กันน้ำ และอุ่น เพียงแต่ ตอนแรกที่บอกขนาดเขาไปเป็น S พอจัดมา แขนยาวจังวุ้ย มือหนูหาย เลยลอง XS ก็ยังยาวไปอยู่ดี สุดท้ายลงที่ XXS... เฮ้ย! ตัวตูเล็กขนาดนั้นเชียว

แล้วก็เดินแก่วไปแก่วมา รอเวลา orientation ตอนนั้นแหละ ได้เห็นรูมเมท แต่ไม่แน่ใจ เลยไม่ได้ทัก แล้วก็ขึ้นรถไปกินข้าวต่อที่ D&B เป็นบุฟเฟ่ต์

ที่ D&B ฮามาก...เจมส์มันมุข ฮากระจายทั้งโต๊ะ แต่มุขมันเถื่อน เป็น dirty joke ไม่เล่าดีก่า ถึงมันเล่นแล้วจะไม่ได้ dirty เท่าไหร่ก็เหอะ

กินเสร็จก็ไปเล่นเกมส์ต่อ มีเกมส์เยอะ คล้ายๆ casino แต่เจมส์มันบอกว่าไม่ใช่ casino เอาน่ะ เล่นเกมส์ฟรี แล้วเอา tickets ไปแลกของได้ ก็เลยเล่นสนุกๆ แล้วก็เอา points ทุกคนมารวมกัน ได้ตุ๊กตา black spider man มาตัวนึง กับของจุกจิกอีกสองอย่าง ที่สำคัญ ไอ้แมงมุมเนี่ยะ ตัวโตกว่าเราอีก ไม่รู้ความคิดใคร จะเอาไอ้ตัวนี้ เจมส์บอกจะเอาไปไว้บน cluster (เอาเลยเจมส์ ก่อนอื่นหาทางหอบขึ้นรถ กลับ Ruston ให้ได้ก่อนเหอะ Dr. Box ยังไม่เห็นนะเนี่ย)

ไม่รู้คืนนี้ใครจะได้นอนกับไอ้แมงมุม ที่แน่ๆ เราง่วงละ ไปนอนดีก่า


Wednesday, November 12, 2008

Day 229...Wedding Fair in TH & End of Quarter

ได้ข่าวแต่งงานอีกคู่แล้ว ล่าสุดก็เพื่อนบุศ จะแต่งเดือนธันวานี้

เดือนนี้ก็แต่งกันไปกว่าห้าคู่แล้วมั้ง ย้ำ...เฉพาะเดือนนี้นะ สงสัยเข้าหน้าหนาวแล้ว อิอิ

เดี๋ยวจะรอนับว่าเดือนหน้าจะมีกี่คู่

ยังไงก็ขอให้เพื่อนๆ มีความสุขกันมากๆ อยู่กันไปนานๆ นิ

###

ว่ากันต่อด้วยเรื่องเรียน...

เพิ่งสอบเสร็จ ฮิ้ววววววว

รีวิวเปเปอร์ให้ Dr. Box เสร็จไปสองฉบับ

ตอนนี้ก็ สเบยเจย...เตรียมตัวไป Austin ละ

Tuesday, November 11, 2008

Day 228...Eat for Life 3

ยังคงอยู่ที่เรื่องกิน

พอดีกะว่าจะกำจัด แครอทกับหัวหอมให้หมดก่อนไปออสติน ก็เลยต้องหาเมนูใหม่

เมนูใหม่มากๆ คิดตั้งนานแหนะ (จริงๆ คือไม่รู้ว่าจะเรียกอะไร)

ประการแรก เอาข้าว หุงไว้ตั้งแต่เมื่อคืน ด้วยหม้อธรรมด๊าธรรมดา จับลงหม้อไปหนึ่งทัพพี แล้วใส่น้ำลงปาย แล้วก็ต้มๆ พอน้ำเดือดก็โยนทุกสิ่งทุกอย่างที่มีอยู่ในตู้เย็น นั่นคือ แครอท หัวหอม (หั่นแล้วนะ ไม่ใช่โยนไปทั้งหัว) ต้มๆ ไปแล้วก็นึกขึ้นได้ว่าควรมีโปรตีนด้วย ก็เลยเอาแฮมหั่นๆ แล้วโยนลงไป ตอกไข่ลงไปอีกฟอง คนๆๆ ใส่ซีอิ้วนิด พริกไทยหน่อย

แต่น แต๊น...มันคือ ข้าวต้มนั่นเอง เอ๊ะ หรือจะเรียกว่าโจ๊กดี คือมันเละๆ ชอบกล

เอาน่ะ กินๆ ไป กินเพื่ออยู่เฟ้ย


Saturday, November 08, 2008

Parameters Variation

When I was trying to vary number of streams on 8800 (number of integers in the data set is 16*1024*1024). The results were as follow:

------------------------------------------------------------------------------------
memcopy: 41.54
kernel: 39.56
non-streamed: 80.29 (81.09 expected)
1 streams: 82.42 (81.09 expected with compute capability 1.1 or later)
------------------------------------------------------------------------------------
memcopy: 41.55
kernel: 39.56
non-streamed: 80.29 (81.11 expected)
2 streams: 44.14 (60.33 expected with compute capability 1.1 or later)
------------------------------------------------------------------------------------
memcopy: 41.54
kernel: 39.55
non-streamed: 80.29 (81.09 expected)
4 streams: 43.12 (49.93 expected with compute capability 1.1 or later)
------------------------------------------------------------------------------------
memcopy: 41.55
kernel: 39.56
non-streamed: 80.32 (81.11 expected)
8 streams: 42.92 (44.75 expected with compute capability 1.1 or later)
------------------------------------------------------------------------------------
memcopy: 41.55
kernel: 39.54
non-streamed: 80.28 (81.09 expected)
16 streams: 45.32 (42.14 expected with compute capability 1.1 or later)
------------------------------------------------------------------------------------
memcopy: 41.54
kernel: 39.56
non-streamed: 80.28 (81.10 expected)
32 streams: 56.81 (40.85 expected with compute capability 1.1 or later)
------------------------------------------------------------------------------------
memcopy: 41.54
kernel: 39.56
non-streamed: 80.29 (81.10 expected)
64 streams: 71.08 (40.21 expected with compute capability 1.1 or later)
------------------------------------------------------------------------------------

Well...when too much streams were defined, the execution time was slow. The optimize value should be 8 streams.

Let's try on Tesla:

------------------------------------------------------------------------------------
memcopy: 20.64
kernel: 50.06
non-streamed: 70.68 (70.70 expected)
1 streams: 70.73 (70.70 expected with compute capability 1.1 or later)
------------------------------------------------------------------------------------
memcopy: 20.80
kernel: 50.07
non-streamed: 70.81 (70.87 expected)
2 streams: 71.02 (60.47 expected with compute capability 1.1 or later)
------------------------------------------------------------------------------------
memcopy: 20.67
kernel: 50.07
non-streamed: 70.68 (70.74 expected)
4 streams: 70.96 (55.24 expected with compute capability 1.1 or later)
------------------------------------------------------------------------------------
memcopy: 20.65
kernel: 50.07
non-streamed: 70.83 (70.72 expected)
8 streams: 71.17 (52.65 expected with compute capability 1.1 or later)
------------------------------------------------------------------------------------
memcopy: 20.84
kernel: 50.08
non-streamed: 70.81 (70.92 expected)
16 streams: 71.26 (51.38 expected with compute capability 1.1 or later)
------------------------------------------------------------------------------------
memcopy: 20.62
kernel: 50.07
non-streamed: 70.68 (70.68 expected)
32 streams: 71.29 (50.71 expected with compute capability 1.1 or later)
------------------------------------------------------------------------------------
memcopy: 20.61
kernel: 50.07
non-streamed: 70.69 (70.68 expected)
64 streams: 71.68 (50.39 expected with compute capability 1.1 or later)
------------------------------------------------------------------------------------

Seems like there was nothing different for all values. The number of streams took no effect on Tesla.

Interesting Issue

ไหนๆ ก็ไหนๆ เอางาน research มาแปะแถวนี้ด้วยเลยดีกว่า เป็นการบันทึกงานตัวเองไปด้วย

หลังจากเล่นกับ simpleStreams มาพักหนึ่ง ลองบน GeForce 8800 GT ผลมันเป็นอย่างงี้

running on: GeForce 8800 GT

memcopy: 41.54
kernel: 39.55
non-streamed: 80.34 (81.09 expected)
4 streams: 43.12 (49.94 expected with compute capability 1.1 or later)
-------------------------------
Test PASSED

แต่เมื่อวันก่อนโน้น 8800 มันเป็นด็องอะไรก็ไม่รู้ ก็เลยเอาไปเล่นบน Tesla C870 ปรากฏว่า ผลมันต่างกันแฮะ

running on: Tesla C870

memcopy: 20.84
kernel: 50.08
non-streamed: 70.88 (70.92 expected)
4 streams: 71.16 (55.29 expected with compute capability 1.1 or later)
-------------------------------
Test PASSED

ประหลาดมาก เอาไปรายงาน Dr. Box ดีกว่า...

Friday, November 07, 2008

Day 224...Eat for Life 2

หลังจากเรื่องกิน ก็มาต่อที่เรื่องกิน

พอดีวันนี้เห็นในตู้เย็นมีกะหล่ำกับเห็ดเหลืออยู่ มันเริ่มดำๆ ละ กลัวจะเสียก็เลยเอามาทำกิน มองซ้ายมองขวา ไม่รู้จะทำอะไรกิน ก็เลยผัดมาม่าซะเลย ทำซะสองห่อ ผัดสองกะทะ เพราะผักเหลือเยอะ

ยัง...ยังก่อน ในตู้ยังมีพริกแกงอีกกระป๋องหนึ่ง เปิดแล้ว แต่ยังใช้ไม่หมด กลัวมันขึ้นรา เลยเอามาใส่ด้วย กลายเป็นมาม่าผัดพริกแกง

ตอนแรกก็ต้มน้ำลวกเส้น ก็ลวกแบบสามนาที พอดีกิน เหมือนเวลาลวกมาม่าเฉยๆ ปรากฏว่า พอเอาไปผัด เส้นมันเลยเละไปหน่อย

และด้วยความอ่อนประสบการณ์ นอกจากพริกแกงแล้ว ก็เลยใส่ผงมาม่าลงไปด้วย กลัวมันไม่อาหย่อย ผลสุดท้ายก็เลยเค็ม - -'

ระหว่างที่ผัดมาม่าอยู่นั่นเอง ก็ถือโอกาสอบหมูแดงที่หมักไว้ไปพร้อมกันเลย ไม่เสียเวลา แต่อย่าคิดว่าทำไมไอ้นี่มันเก่งจัง ทำหมูแดงเป็นด้วย คือ มันมีผงโลโบสำเร็จอยู่น่ะ เอาไปละลายๆ แล้วก็หมักทิ้งๆ ไว้ แล้วก็อบ เสร็จละ (ขอบคุณโลโบ)

สรุป อาทิตย์หน้านี้ก็มีมาม่า กับหมูแดงให้กินอีกสี่ชิ้นโตๆ รอดตายละ

อ้อ ยังไม่หมด ยังมีหมูหมักซีอิ้วไว้ ยังไม่ได้อบอีก แล้วก็ผักสลัด (แบบเป็นถุงสำเร็จน่ะ) สงสัยกลับจากออสตินก็ยังกินไม่หมดแน่ๆ

Monday, November 03, 2008

Day 220...Eat for Life

หลังจากพี่จ๋ากับพี่นูนไม่อยู่ เราอยู่คนเดียว ทำเองกินเอง ดังนั้นจึงทำทิ้งไว้กินหลายๆ มื้อ

และอาหารหลักช่วงนี้ก็คือ...

แต่น แตน แต๊น... (จะแต๊นไปทำไม)

...ผักต้มกับหมูอบ

คือ มีหมูสับที่พี่นูนกับพี่จ๋าทิ้งไว้อยู่แพ็คนึง ก็เลยเอามาหมักๆ กับซ๊อส กระเทียม พริกไทย แหมะในถาดเป็นก้อนๆ แล้วเข้าเตาอบ แล้วก็เก็บใส่กล่อง แช่ตู้เย็น เวลาจะกินที ก็แบ่งมาเข้าไมโครเวฟ ก็ไม่เลวอยู่นะ

ส่วนผักต้มนี่คือ มีสารพัดผักมากมายที่พี่นูนกับพี่จ๋าทิ้งไว้เป็นมรดก ไม่รู้จะทำอะไร ก็เลยเอาทั้งหมดมาหั่นๆ แล้วโยนโครมลงในน้ำเดือดๆ ใส่ซีอิ้วนิด เกลือหน่อย พริกไทยเยอะๆ แต่ก็ยังออกมาจืด และที่สำคัญ ไม่มีไขมัน เพราะไม่มีเนื้อสัตว์เลย

เวลาจะกินที ก็ตั้งหม้อต้มให้เดือด แล้วตักใส่ชาม บางทีก็ตักใส่ข้าว เป็นข้าวต้มไปเลย ที่สำคัญ ยิ่งต้มยิ่งเละ คล้ายๆ จับฉ่ายจืดๆ ต้มจนไฟเบอร์ใกล้จะละลายหายไปในน้ำซุปอยู่แล้ว

ส่วนข้าวสวยนี่ พี่จ๋าสอนไว้ก่อนไป คือหม้อหุงข้าว พี่นูนแฮปไปแล้ว (แบ่งๆ กันตะหาก เราได้เยอะแล้วนิ) ก็เลยหุงด้วยหม้อต้ม หลักการเดียวกับหม้อหุงข้าวแหละ เพียงแต่ต้องคอยดูมันหน่อย เดี๋ยวมันจะแห้ง ส่วนน้ำก็กะๆ เอา ชิมแล้วแข็งๆ ก็เติมน้ำอีกหน่อย ถ้าน้ำเยอะไปก็ได้ข้าวต้มแหละ

เอาน่า กินๆ ไป มีกินก็ดีแล้วนิ

Sunday, November 02, 2008

Day 219...Daylight Savings Times Ends

เมื่อเช้าตื่นขึ้นมา เปิดคอมด้วยความงวยงง ทำไมเราตื่นเช้าจังฟะ มองดูนาฬิกาปลุก ก็ปกตินิ จะเชื่อเครื่องไหนดีเนี่ยะ

แล้วก็มานึกขึ้นได้ Daylight saving นี่หว่า (แล้วก็ปรับนาฬิกาปลุก)

เปิดปฏิทินในคอม มันบอกว่า วันนี้เป็น Daylight savings time ends ทำไม end หว่า ก็เลยไปค้น มันบอกว่า ช่วงตั้งแต่ spring จนถึงสิ้นตุลา เวลาช่วงเช้ามันยาว ก็เลยปรับเวลาซะ เรียกว่า spring forward คือปรับเวลาเพิ่ม 1 ชั่วโมง พอเข้าหนาว เวลาช่วงเช้ามันสั้นลง ก็ปรับเวลาถอยหลังคืน 1 ชั่วโมง เรียกว่า fall back

daylight savings จะเริ่มทุกๆ วันอาทิตย์ที่สองของเดือนมีนา จนถึงวันอาทิตย์แรกของเดือนพฤศจิกา

รายละเอียด...ขี้เกียจเล่า อ่านเองละกัน Daylight Saving Time

ว่าไป เพิ่งเจอกะตัวครั้งแรก จะปรับนาฬิกาในตัวยังไงดีหว่า...ตื่นซะเช้า