x[G]IceKiller Posted October 25, 2004 Report Posted October 25, 2004 (edited) ouch, someone got hurt. Pero bueno, lol, eso le da vida a los foros. ok ok, tonces para que no se sienta mal extendamos como funcionan los caches. Ya todos sabemos sus principios, los cuales, no estando mal, fueron explicados anteriormente, en otro post. Pero, la afirmacion que una textura va a tomar todo el cache y que por eso, un procesador es mejor que el otro, y que implica otra leida a memoria esta fuera de lugar. Y a pesar de que suena como algo logico, el principio de verdad esta malo y es peligroso guiar a la gente a conclusiones logicas, cuando las premisas de la logica aplicada estan mal. Comencemos con conocimientos basicos, es mas, vamos a los dos principios basicos de toda jerarquia de memoria que basicamente, estableceran principios correctos en esa logica: Localidad Espacial, y localidad temporal, para aquellos estudiantes de Arquitectura de Microcomputadores, eso les sonara familiar. Quake en general, para la carga de niveles, texturas, etc, utiliza Localidad Espacial, la mas sencilla de entender y la mas simple de manejar, no se ocupa ningun tipo de prediccion por parte del CPU y no existiran lo que se llaman "miss hits" entre los distintos niveles de Cache, los cuales, aun cuando ocurra un "miss hit" sera inmediatamente atendido sin duda alguna por un nivel exterior de cache (Prefetching o una politica de remplazo inteligente), debido a que por el prinicipo anteriormente mencionado, estara en la cache. Evitando en la mayoria de oportunidades leer de disco (worst case scenario). Ahora bien, esto depende tambien en gran medida de la aplicacion y que tambien ha sido programada. Muchas veces por utilizar lenguajes visuales, la gente pierde perspectiva en tener cuidado al respecto de la fragmentacion de la memoria utilizada. La gente que realiza aplicaciones que son intensas en memoria, toma el cuidado de respetar el principio de localidad espacial. Recuerden que texturas son en general datos regulares, o sea, un patron que (obvio, por eso es patron) se repetira varias veces, por lo que nunca una textura que en disco ocupe x cantidad de bytes, ocupara lo mismo en memoria (a menos que sea una bestia quien lo programe). Este principio es tan sabido que es con base en el que existen los famosos zipeadores, y archivos de imagen compresos (jpg). Los engines graficos, tratan por lo tanto de manejar esos patrones en los caches del computador y los que no representan un patron claro, en la memoria de la tarjeta de video. Aplicaciones de negocios, como Excel, Word, etc, utilizan la localidad Espacial. Pongamos el ejemplo de un procesador de palabras, si se piensa, poca gente abre 7 documentos de word y se pone a escribir 3 palabras en cada uno de ellos. La mayoria de nosotros abrimos un archivillo no muy grande y trabajamos en el por un buen rato, sin estar saltando por todo lado en el mismo archivo. Que significa eso? Que pedazos de datos tienden a estar juntos en memoria, y como usualmente tienden a estar relacionados tambien tienden a ser procesados juntos en lotes por el cpu. Es por eso que juegos, simulaciones y aplicaciones de procesamiento de medios (winamp) tienden a tener una localidad espacial decenta para el CODIGO, debido a que tales aplicaciones tienden a tener pequeños bloques de codigo operando repetitivamente (no se comen todo EL CHUNK de textura) en sets de datos muy grandes. Pero, para aplicaciones de negocios, el ambiente es mas mixto debido a las diferentes acciones que se hacen al jugar con el formato del texto, parrafos, etc. (podria extender aqui, pero naaa, se esta poniendo largo) Que significa que para diseñadores de cache las aplicaciones de negocios requiren caches mas largos para poder recolectar los pedazos de codigo utilizados mas frecuentemente, que correspondan con las acciones mas frecuentemente ejecutadas y empacarlas juntas en la cache. Para la gente en el lado de juegos, la historia es distinta y usualmente cargas posteriores fuera del nivel basico de cache (L1) son atendidos utilizando ("Prefetching", o politicas de remplazo) que si Neme quiere preguntar que es, pues ya seria mucho. Cual es la ventaja de los AMD, el controlador de memoria Die In. O sea, integrado en el proc. Eso hace que inclusive llamadas a memoria principal sean enrutadas en forma directa y univoca a la direccion deseada en memoria, debido a que no ocupan recorrer, ni dirigirse al bus principal de datos, a como lo hacen los Intels. Los famosos pasos entre el North Bridge y South Bridge, para los que quieran ir a buscar tambien. Tonces, si tenemos, mas cache interno y controlador de memoria integrado al proc. Pues tenemos un pichu procesador. Ok, consideremos un filtro de Coreldraw/Photoshop que basicamente invierte una imagen para producir un negativo. Tenemos una pequeño pedazo de codigo que se ejecuta la misma inversion para cada pixel comenzando en una esquina y sigue en secuencia toooodo hasta el final de la imagen. Este codigo es un simple y pequeñ loop que se ve ejecutado repetitivamente por cada pixel, un simple ejemplo de un codigo utilizado una y otra vez. Media apps, juegos y simulaciones, debido a que utilizan montones de pequeños ciclos que iteran por sets grandes de datos (las famosas texturas por ejemplo), tienen localidad excelente y por lo tanto, no ocupan de grandes sets de cache. No entiendan mal, mas cache, mejor el asunto, pero NO supongan que un archivo a si como lo ven, se come la cache y listo. Y que solo poniendo mas cache se cura todo. Cache es caro y aumenta el tamano de los waffles de produccion de los procesadores, aumentando el costo y el numero de procesadores que se pueden hacer en las fabricas. Podemos seguir hablando de asociatividad, mapeo directo de la memoria a los siguentes niveles de cache, modos de escritura de la cache? ademas de politicas de remplazo y tamano de bloquez en los temas de localidad... . Pero bueno, es solo para ilustrar con los bancos de conocimiento, perdon, DDRAM de conocimiento que neme esta solicitando. Entiendase, lo que dijo el otro tipo anteriormente no esta mal, del todo no. Excepto por la postura del comportamiento de caches y en si, el comportamiento de la cache en un sistema tan bien planificado como la arquitectura de los procesadores Athlon 64 y Opteron. Muchas gracias. Edited October 25, 2004 by x[G]IceKiller
Holy_COW Posted October 25, 2004 Report Posted October 25, 2004 Gracias por le detalle en lo del cache... FYI, Ejemplos de sitios (que no son tomshardware) que hablan de synthetic benchmarks : http://www.pcstats.com/articleview.cfm?articleid=497&page=3 http://www.sei.cmu.edu/publications/docume.../89.tr.023.html http://www.digital-daily.com/video/ati-rad...0xt/index06.htm http://www.extremetech.com/article2/0,1558,1224202,00.asp
x[G]IceKiller Posted October 25, 2004 Report Posted October 25, 2004 You are welcome. No hard feelings.
Balrog[MeC] Posted October 25, 2004 Author Report Posted October 25, 2004 No problem!!!lo q yo decia es que la diferencia no es tanta como para el precio (ojo lo q vale un P4 Extreme edition es ridiculo pagar tanta plata por la diferencia de redimiento) lo q no me hace gracia es que lo quieran ridiculizar a uno por un termino que alguien o no entendio o nunca habia oido (mas respeto, se pregunta primero antes de criticar o insultar) <{POST_SNAPBACK}> LOL me parece que el que está atacando aquí es Ud, además debiera leer un poco mas la página y ver como es la comunidad antes de putearse sin sentido y empezar a madrear, aqui la gente se pelea pero en buena onda, y antes se documenta bien (que lo diga SGT , eso mae!!!!!!) y además calmese viejo aquí nadie está apostando por topics ni nada de eso.... (tranqui )
xG.SGT Posted October 25, 2004 Report Posted October 25, 2004 todavia no entiendo bien como es eso de la vara sintetica... o del mundo real pero mi conclusion es esta... un mae q quiera hacer un benchmark o una pagina de esas q pasan haciendo benchmarks, por algo usan PCMARK,AQUAMARK,3dMARK,Sandra etc... etc... y mas etc... si realmente fueran tan sinteticos la gente no los usaria y luego la gente q hace esos programas no ganarian nada de plata... asi que aunque sean "sinteticos" eso sirve para tener una referencia bastante real de lo que hace el procesador, es bueno ver que PCMark tiene varios test para hacer benchmark a algunas partes en especial... tales como cpu, video card, memoria, disco duro etc etc... Cuales son los benchmarks no sinteticos??? el procesamiento de aplicaciones o juegos me imagino... bueno... aki tambien llegamos a lo mismo, como un amiguito me explico ellos no van a abrir a mano 1000 veces seguidas el word, o el photoshop, ellos haran un script q haga eso mismo y luego devuelve un tiempo etc... q es exactamente lo que hacen los benchmarks como PCMark, o todas esas varas de futuremark.... Ellos estresan de una forma el CPU o la parte de la pc q estas haciendo el test y tienen un resultado final q es el rendimiento de esa parte testeada... osea q al final SI SIRVE y es un benchmark que SI SE TIENE Q TOMAR en cuenta... En conclusion ya sea sintetico o no sintetico, un benchmark te va a dar una seria de resultados q no se van a contradecir... osea si el benchmark de PCMark te dice q tu AMD 64 es mejor que el Athlon XP, en los siguientes X aspectos es pq de verdad lo es.... una aplicacion "Real" no va a decirte lo contrario.... o almenos eso creo yo... si no la gente haria benchmarks "reales" y no benchmarks dentro de la matrix....
cnNemesis Posted October 26, 2004 Report Posted October 26, 2004 bueno mae la hablada del cacher esta muy buena en resumen el cache es un ensamblador de partes de algo q son distrubuidos por los policias de no se q y el cahe es solo utilisado por programas q requieran armar esas partes de ese algo mas cache sirve cuando esos programas utiliza demaciadas partes de ese algo entonces para almacenarlas ocupan mas cache y asi se ajilisa ese proceso de pegas las partes de algo las texturas en si no utilizan el cache lo q uitiliza el cache es el comando q dirije la extencion la ubicacion y calidad de la textura (ojo esto no estoy seguro ) y bueno el mapeo de ram y no se q tendra q ver con el cache pero ahi se dijo y bueno tomando en cuenta lo q acaba de escribir si todo esta correcto o por lo menos algo paracido el cache realmente es importante entonces entre mas cache mejor ahora si en q me equivoque????
Holy_COW Posted October 26, 2004 Report Posted October 26, 2004 MAe lo q yo entiendo por sintetico o real pongamoslo como un carro: Si llevas el carro a un dynamometro, te mide tus HP y torque, pero eso no es 100% real a si vas a ser mas rapido en 1/4 de milla pues hay muchos factores adicionales. Por ejemplo un sitetico te dira "tu ram tiene xxxMB/S de ancho de banda" lo cual da una idea de solo el ram, pero un timedemo de Doom3 te dira cual es la mayor velocidad de tu sistema a la hora de jugar (pues a la vez lee hdd, procesa graficos, fisicas del juego, etc etc). Yo diria que el sintetico te ayuda a encontrar que es lo que te da problemas un tu pc al poder aislar cada componente. Doom3 te dira que solo haces 34fps pero porque? ahi el sintetico te podra decir si es tu tarjeta de video o tu ram o que lo que esta fallando/lenteando. en si yo por eso digo que para decir q pc es mejor usar por ejemplo doom3 y que diga que todo tu sistema te tira 54fps. pues de nada sirve tener un geforce 6800 en una pc con 128 de ram, el 3dmark talvez te de xxxx puntos pero para jugar doom3/otro no sirve favor avisarme si toy mal, pero eso es lo que entiendo...
xG.SGT Posted October 26, 2004 Report Posted October 26, 2004 pero es q lo q pasa con esos programas es q como tienen test de algo en especifico tambien tienen un average o un overall de todo, q al final de cuentas, si tienes o estas bajo en el aspecto de memoria tu puntaje final va a ser mas bajo q el de un sistema identico con mejor ram... y asi etc etc.... En los reviews vemos q solo tiran un test especifico, pq es lo q a ellos les importa, el review es sobre algo especifico no sobre toda una pc... entonces no hacen o no ensennan el overall de toda la pc, si no solo el puntaje de FPS o la vara del CPU etc... pero igual, ese sintetico te dira un general q al final de cuentas es como si estuvieras corriendo toda una aplicacion...
Holy_COW Posted October 26, 2004 Report Posted October 26, 2004 Pues si, pero corres cada test en un momento diferente es decir 1- test memoria 2- al terminar test ram hace test hdd etc en cambio los no sinteticos te corren todo al mismo tiempo y son mas cercanos a la realidad de como tu pc se va mover en un juego (q creo q es lo q mas nos interesa aqui) Es decir, para comparar mi pc con al tuya yo diria corramos timedemo de doom3 y no se algun otro juego a ver que. Afin de cuentas por eso la mayoria de los sitios cuando hacen un test de una pc te incluyen tanto sinteticos como "reales". pues ambos sirven para medir el performnce.... es cuestion de gustos, pero como dije yo prefiero un timedemo a otra cosa.
Recommended Posts