SSE vs 3DNOW?....

MotiAd

New member
SSE vs 3DNOW?....

hey guys, sorry for the english. is there that AMD processor doesn't support SSe and SSE2 and just 3DNOW? and vice versa? ( i mean intel doesn't support 3DNOW?) yours, Moti.
 

erezsh

New member
מן הסתם יש

אבל כיום כבר כמעט ואין. SSE2 כמובן תמצא רק במעבדים החדשים ביותר, אבל קשה מאוד למצוא היום מעבדים שלא תומכים ב-SSE ו-3dNow! - שנראים מבוססים בתעשייה כבר כמעט כמו MMX.
 

MotiAd

New member
לא הבנתי בדיוק...

מן הסתם ברור לי ש-SSE היה קיים כבר מאיזור הפנטיום 3 ו-SSE2 כבר מהפנטיום 4 (ווילמייט איזה יופי אפשר לעוות את השם הזה). בכל אופן ו-3dnow שיך למעבדי AMD. שאלתי אם אני אכתוב תוכנית שחלק מהקוד שלה הוא פקודות SSE או SSE2 היא תרוץ במלואה על מעבד AMD? ואם אני אכתוב תוכנית עם 3dnow היא תרוץ בכלל על אינטל? זו שאלתי. ברור לי שרק ממעבד מסויים אבל זה מראש לא קריטי. רק לדעת שמעבדי AMD תומכים בסט פקודות SSE ו-SSE2. שלך, מוטי.
 

voguemaster

New member
אולי אני לא מעודכן...

אבל SSE ו-SSE2 יש *רק* באינטל. המקבילות הן 3DNOW ו-3DNOW2 לדעתי. אני לא סגור על זה אבל נדמה לי שסט הפקודות פשוט שונה ויש אופטימיזציות עבור כל ארכיטקטורה בנפרד.
 

eyalbd

New member
יש SSE באתלון XP והלאה

אז ככה כולם תומכים בMMX כל האתלונים תומכים ב 3dnow אתלון XP תומך ב-SSE אתלון 64 תומך ב-SSE2 המכנה המשותף הוא MMX - נתמך בכולם. אפשרות נוספת היא לכתוב קוד עבור כל אחת מהאפשרויות
 

MotiAd

New member
באמת?...

לא ידעתי. זאת אומרת שגם Athlon XP-M כלומר זה שבניידים? מעניין מאוד. אני מניח שאינטל לא תומכת ב-3dnow. זה שווה בדיקה תודה רבה לך. לגבי MMX ידעתי את זה ונכון, אבל מדובר במשהו פרימיטיבי יחסית ל-SSE בכלל. לגבי כתיבה של קוד לכל אחד - חחח (אין לי כוח במילים אחרות). תודה רבה רבה.
 

אלדד28

New member
מה הבעיה בקוד כפול?

אתה יכול לממש פונקציות שונות לכל אחד מהמקרים, אח"כ לברר מול ה-CPU שלך במה הוא תומך ולהשתמש בסט הפונקציות הנכון. ככה תבטיח ניצולת מקסימלית על כל פלטפורמה, ויפסיק לעניין אותך מי תומך במה ולמה.
 

MotiAd

New member
כן אבל זה משתנה...

ברגע שזה מגיע ל-Low Level. אפשר בשפת C להשתשמש ב-#if וכו. אבל באסמבלי מדובר בדבר שונה לגמרי כי עצם העבודה ברמה נכומה שונה. למשל לשמירה של אוגרים מסויימים צריך להגדיר דברים אחרים. (למשל למעבר בין ביצוע של FPU ל-MMX או SSE צריך להשתמש בפקודה EMMS (אם אני לא טועה) וכן האלה. ואני לא מכיר את המקבילות על AMD. ואני גם אצטרך שתי פלטפורמות לבדיקה (עוד כסף)) לא יודע. אני אישית כמה שאני מתעב את אינטל מעדיף להשאר נאמן להם (לא מאמין שאני אומר את זה) אבל אולי דברים ישתנו. חוץ מזה. ברגע שעובדים עם הרבה פונקציות, נניח פונקציה אחת ל-AMD ופונקציה אחרת שעושה בדיוק את אותו הדבר על אינטל הקטע שזה עניין של עיקרון. בסוף Cyrix ואלוהים יודע מי עוד יתחיל להפליץ מעבדים של X86 אבל עם סט פקודות דומה (שזה רק חיבור חיסור ופעולות אריתמטיות אחרות (שיפטים)) ובסוף נגיע למצב שבו כמו עניין הגרפיקה על המחשבים (כל יצרן בחר לעצמו איך לממש מה) -> אנרכיה -> (אני לא צריך להסביר מה בהמשך) כי במקום לשקוד על פיתוח ומחקר אנשים יהיו אחראים לכצתיבה של קוד ודרייברים חדשים חדשות לבקרים לכל מעבד שקיים (לא צריך להרחיב גם לגבי המצב עם לוחות האם). סתם לא שווה את המאמץ. (להשקיע את סוף חיי בכתיבה של דרייברים) מוטי.
 
למעלה