LINUX.ORG.RU

Ошибка компиляции С++

 , ,


0

3

Когда запускаю компиляцию (пробовал и через консоль и через Geany) выдает такую ошибку :«client.cpp:3:22: fatal error: winsock2.h: No such file or directory. compilation terminated.» Что это может быть? В пути к папке русских букв нет, если что. P.S. Разобрался в чем дело, надо подключить библиотеку dll.

★★★★★

Последнее исправление: w1nner (всего исправлений: 1)
Ответ на: комментарий от anonymous

Мы уже оба поняли, что ты ссышься сказать время шага сетки

Обожемой. Давай поучимся вместе считать.

(~10 конвейеров, одна точка за такт, 100-150MHz, ~150 стадий)

150000000 (точек в секунду, или МГц) * 10 (конвейров) = 1.5e9 точек/c

Сетка порядка 10k x 10k

1.5e9 / 10e8 = 15

полученная комбинацией двух одномерных схем по осям

15 / 7.5

Учитывая задержку у памяти и всякие накладники получаем около 7.

Это было очень сложно посчитать, но я справился

Итак, жду подобной производительности от твоего решения, упрощенный алгоритм таков:

0) Дана двумерная сетка (одномерный массив, двумерный массив, как хочешь), (10k * 10k). В каждой точке есть три переменных: p, q, v и две константы: D и h (это шаг сетки). Плюс глобальная константа \tau.

1) Нужно применить следующую схему сначала по одной, затем по другой координате (можно сразу по обеим, но ты как знаток вычислительных систем и x86 в частности, должен понимать почему это плохо).

Можешь делать хоть что, меня интересует только то, сколько процессорного времени будет занимать одна итерация, а потом мы дальше поговорим, если до тебя не дойдет.

судя по твоим рассуждениям - у тебя банальный брутфорс

Обожемой, так ты ещё похоже про разностные схемы не слышал. А дифуры у тебя уже были?

Про х86 я знаю побольше тебя

Сколько глубина конвейера у Intel P6, а сколько у NetBurst и почему Pentium 4 сливал Pentium 3 при равной частоте? A сколько глубина конвейера у современных?

Сколько микрокоманд декодируется за такт у P6 и сколько стадий занимает декодирование? А у AMD сколько?

Сколько слоев L1-кэша у интела?

Займись делом, почитай про P6.

AIv я уже сдаюсь :<, он безнадежен.

Kosyak ★★★★
()
Ответ на: комментарий от Kosyak

Обожемой. Давай поучимся вместе считать.

Давай сливать лалку.

150000000 (точек в секунду, или МГц) * 10 (конвейров) = 1.5e9 точек/c

Врёшь, ты гвоорил про 100МГц - ты это придумал уже после. Банальный брутфорс, который сливает х86. Реально твоя байда выдаёт одну гигаточку - это 8гигов флоап/16гигов дабл. х86 выдаёт 40гигов - слив.

15 / 7.5

Учитывая задержку у памяти и всякие накладники получаем около 7.

Это было очень сложно посчитать, но я справился

Ты получил скорость банального х86.

0) Дана двумерная сетка (одномерный массив, двумерный массив, как хочешь), (10k * 10k). В каждой точке есть три переменных: p, q, v и две константы: D и h (это шаг сетки). Плюс глобальная константа \tau.

1.5e9*4*3*2 - это уже 30+гигов в секунду - ты уже где-то пробалаболил. Расскажи мне как ты читаешь и записываешь по 18гигов/с.

1) Нужно применить следующую схему сначала по одной, затем по другой координате (можно сразу по обеим, но ты как знаток вычислительных систем и x86 в частности, должен понимать почему это плохо).

Меня не интересует твоя схема.

Обожемой, так ты ещё похоже про разностные схемы не слышал. А дифуры у тебя уже были?

Я клал на твоём говно - ты мне скажи сколько у тебя флопс на точку. Считать бесполезные говнозадачки - твоя лаба, а не моя.

Сколько глубина конвейера у Intel P6, а сколько у NetBurst и почему Pentium 4 сливал Pentium 3 при равной частоте? A сколько глубина конвейера у современных?

В книжке только про доисторическое говно было, которую ты осиливал в своём недовузе?

Сколько микрокоманд декодируется за такт у P6 и сколько стадий занимает декодирование? А у AMD сколько?

Только для говна - это гуглится за 5минут для доисторического говна.

Заучив 3-4факта, которые гуглятся за 5минут - ты нихренан е осилил.

AIv я уже сдаюсь :<, он безнадежен.

Зови своего брата по разуму - он тебя поддержит.

anonymous
()
Ответ на: комментарий от anonymous

Врёшь, ты гвоорил про 100МГц - ты это придумал уже после. Банальный брутфорс, который сливает х86. Реально твоя байда выдаёт одну гигаточку - это 8гигов флоап/16гигов дабл. х86 выдаёт 40гигов - слив.

0) Дана двумерная сетка (одномерный массив, двумерный массив, как хочешь), (10k * 10k). В каждой точке есть три переменных: p, q, v и две константы: D и h (это шаг сетки). Плюс глобальная константа \tau.

1.5e9*4*3*2 - это уже 30+гигов в секунду - ты уже где-то пробалаболил. Расскажи мне как ты читаешь и записываешь по 18гигов/с.

Да, тут я налажал (+ там ещё фишечка с PCIe есть по поводу D и h).

Итак, есть дуплексный канал на 12.8 GB/s (далеко не один контроллер DDR3 у меня, да. Это тебе не ноутбук с атомом), 5 входов, 3 выхода. Дальше можно всячески развлекатся, но в пределе у нас 26.6/8=~порядка 800 Мегаточек/с. И это все равно дохрена, но ты так и не смог посчитать производительность на x86(_64), поэтому не можешь понять.

Итак, 800 МТ/c это, например 8 конвейеров по 100 МГц или 5 по 160 MHz (зависит от скорости FPGA, контрольный вопрос: что лучше и почему?). И дальше ты опять смачно обосрался.

Врёшь, ты гвоорил про 100МГц - ты это придумал уже после. Банальный брутфорс, который сливает х86. Реально твоя байда выдаёт одну гигаточку - это 8гигов флоап/16гигов дабл. х86 выдаёт 40гигов - слив.

«8гигов флоап/16гигов дабл х86 выдаёт 40гигов» <- что это за хрень? Считать учись. Я тебе уже намекал про флопсы но ты опять не понимаешь. Последний шанс:

У меня в одном конвейере ~60 блоков арифметики (для знатоков x86 - это такой FPU для двух чисел с фиксированной операцией). Они работают, все параллельно и считают результат за такт (конвейерно, естественно). Итого в операциях над числами с плавающей запятой в секунду, весь вычислитель - 100000000 (100 MHz, ага) * 60 (кол-во блоков) * 8 (кол-во конвейров) = 48 Гигафлопс. Неплохо, вроде x86 обогнали. А вот во втором случае 160000000 * 60 * 5 = 48 Гигафлопс. Тоже норм. А теперь я пооптимизировал и упростил конвейер - убрал пару лишних операций, при этом считается тоже самое. 160000000 * 55 * 5 = 44 Гигафлопс. Так итоговая скорость обработки точек вроде такая же (800 МТ/c), расскажи мне, знаток вычислительных систем, в чем фишка?

Только для говна - это гуглится за 5минут для доисторического говна.

Знаток x86 и x86_64 во всей красе, нагуглил что такое P4 и NetBurst.

Так почему Pentium 4 сливал Pentium 3 и сливает современным?

Ты получил скорость банального х86.

Расчеты производительности предоставь для моей задачи на x86. Сколько Мегаточек/c?

Kosyak ★★★★
()
Последнее исправление: Kosyak (всего исправлений: 3)
Ответ на: комментарий от anonymous

Вот только маааленький такой вопросик, сможет ли процессор такой поток флоатов просчитать? Я уж промолчу, что там ещё обычно ОСь сбоку стоит и мешает.

Kosyak ★★★★
()
Ответ на: комментарий от Kosyak

Метапрограммирование - проблемы и пути их решения. (комментарий) - tailgunner это понял сразу. Я с ним согласился изрядно помучившись, то ли в том треде, то ли в треде где потом задачу по у-ю диффузии обсуждали.

Кто следующий попытается посеять для этого разумное-доброе-вечное (прикрыть грудью амбразуру дота)?;-)))

AIv ★★★★★
()
Последнее исправление: AIv (всего исправлений: 1)
Ответ на: комментарий от Kosyak

царей такие мелочи не заботят

anonymous
()

Суперхаккиллера нужно разбанить, чтобы те, кому надоел его флуд, могли его заигнорить.

tailgunner ★★★★★
()
Ответ на: комментарий от Kosyak

Производительность должна быть чуть хуже реализации на CUDA (Tesla C2050) (я вот тут теперь не уверен что с i7 сравнивал...), и все упирается в память (12.8 GiB/s маловато...). У GPU в этом плане есть читерская GDDR5 поэтому пока что GPU в качестве числодробилок все же лучше.

О кстати... а что проще программировать? Насколько я понимаю, Virtex - это только VHDL?

И не сравнивали вы CUDA и OpenCL?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

GPGPU я особо не занимался. А у FPGA главные проблемы это стоимость, необходимость создавать обвязку (как аппартную так и писать контроллеры переферии, в последнее время с этим попроще), и сложность отладки.

Virtex - это только VHDL

VHDL/Verilog (одно и тоже в принципе) + High Level Synthesis -это когда алгоритм пишется на C-подобном языке (как GPGPU), и из него генерируется схема, очень модная штука, но я этим тоже ещё не занимался.

Kosyak ★★★★
()
Ответ на: комментарий от Kosyak

Для этого я тебя я тебя и спрашиваю, гниль - сколько у тебя флопс на точку. Для справки - ведро хасвелла выдаёт 50гф реально.

Я тебе сказал - хассвел может выдавать 5гигаточек, если точка == 1флоат. Если 3 - посчитай. Т.е. рельно с твоей точкой он может ещё операций 5 делать 100%.

Я уж промолчу, что там ещё обычно ОСь сбоку стоит и мешает.

Чем мешает? Не осилил - твои проблемы.

anonymous
()
Ответ на: комментарий от Kosyak

Да, тут я налажал (+ там ещё фишечка с PCIe есть по поводу D и h).

Ты налажал везде своим балабольством и попытками всплыть.

Итак, есть дуплексный канал на 12.8 GB/s (далеко не один контроллер DDR3 у меня, да. Это тебе не ноутбук с атомом), 5 входов, 3 выхода. Дальше можно всячески развлекатся, но в пределе у нас 26.6/8=~порядка 800 Мегаточек/с. И это все равно дохрена, но ты так и не смог посчитать производительность на x86(_64), поэтому не можешь понять.

800мегаточек - это фуфло. Это отсилы наравне( если это будет такая анскилата как ты) с х86, но тыж кукарекал, что в 100раз быстрее?

Я тебе посчитал - выше написал уже 100раз.

Итак, 800 МТ/c это, например 8 конвейеров по 100 МГц или 5 по 160 MHz (зависит от скорости FPGA, контрольный вопрос: что лучше и почему?). И дальше ты опять смачно обосрался.

Да мне как-то покласть - ты уже сел в лужу, после моего описания - юли дальше.

«8гигов флоап/16гигов дабл х86 выдаёт 40гигов» <- что это за хрень? Считать учись. Я тебе уже намекал про флопсы но ты опять не понимаешь. Последний шанс:

Сколько надо канала на твою гниль, если точка == 1флоат. Память в х86 выдаёт 40гигов, что не ясно?

У меня в одном конвейере ~60 блоков арифметики (для знатоков x86 - это такой FPU для двух чисел с фиксированной операцией).

Блок не имеет смысла - ты глупая питуша называешь их так, ибо это готовая байда, которую ты натыкал.

Они работают, все параллельно и считают результат за такт (конвейерно, естественно).

Если они считают за такт - нахрен тебе конвейр? Ты уже где-то лажаешь. Конвейер не имеет смысла, если у тебя всё итак работает за такт и если тебе не нужно меньше такта.

Дак ты мне объяснишь - зачем ты кукарекаешь про конвейер и что он тебе даёт? Или ты балаболишь про 1такт?

Итого в операциях над числами с плавающей запятой в секунду, весь вычислитель - 100000000 (100 MHz, ага) * 60 (кол-во блоков) * 8 (кол-во конвейров) = 48 Гигафлопс.

Это производительность ядра дектопного хасвелла. 8умножений за такт, частота 4.5. Но тебе 100% нужно не одно умножение, поэтому из 36 - это превращается в 50, если у тебя сложение попалам с умножением, либо в 70 в лучшем случае. А в хассвелле 4ведра.

Неплохо, вроде x86 обогнали. А вот во втором случае 160000000 * 60 * 5 = 48 Гигафлопс. Тоже норм. А теперь я пооптимизировал и упростил конвейер - убрал пару лишних операций, при этом считается тоже самое. 160000000 * 55 * 5 = 44 Гигафлопс. Так итоговая скорость обработки точек вроде такая же (800 МТ/c), расскажи мне, знаток вычислительных систем, в чем фишка?

Ты понимаешь, гниль, ты меня не поймаешь. Ты можешь сколько угодно кукарекать, но если бы ты был не гнилью - ты бы сказал флопсы на точку и всё твоё кукареканье про конвейеры слилось в миг. Твои рассуждения не имеют смысла до того, как ты не скажешь флопсы на точку.

Знаток x86 и x86_64 во всей красе, нагуглил что такое P4 и NetBurst.

Зачем? Ты недалеко от кукурузника ушел.

Так почему Pentium 4 сливал Pentium 3 и сливает современным?

man кукурузник. Это знает каждый школьник, и да - мне это не интересно.

Расчеты производительности предоставь для моей задачи на x86. Сколько Мегаточек/c?

Уже считал - скажешь сколько флопс на точку - я тебе посчитаю точно.

anonymous
()
Ответ на: комментарий от AIv

Если бы мог хоть что-то объективно видеть - ты бы понял как твой «брат» по «разуму» юлит, как он уже прокукарекался, как он сел в лужу и съехал так же, как и ты.

Как он кукарекает про х86, думая, что х86 до сих пор от кукурузника не отличается и думает, что x86 не может 50гигафлопс. Прям так же как и ты.

anonymous
()

Какой смишной анон, который суперхак мэд скиллз. Вопрос к модераторам: а нельзя его разбанить, вернуть аккаунт, но забанить в тех. разделах и пустить в толксы?

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от DELIRIUM

Этот спхк Царь техразделов, а эти питушки - бесполезные студенты. И да, ты конечно же мне скажешь - в чем я не прав?

anonymous
()
Ответ на: комментарий от DELIRIUM

Ты обычная анскильная питушара-сливалка, которая даже по сравниню с этими студентами - тотальное ничтожество.

Ты мало того, что анскильное говно, которое нихрен в том, о чем говорилось выше не понимаешь - дак тыж ещё просто сел в лужу первым же ответом. Студенты хоть пытаются оправдываться - у них есть что-то, где они хоть что-то знаю - это программа недоговновуза. У тебя даже такого нет.

Зачем ты сюда влез? Твой удел кукарекать в курятники с такими же детсадовцами.

anonymous
()
Ответ на: комментарий от anonymous

Как он кукарекает про х86, думая, что х86 до сих пор от кукурузника не отличается и думает, что x86 не может 50гигафлопс.

Дружище, ты абсолютно и во всем прав, проц может намного больше!

Смотри, нам допустим надо поэлементно перемножить два больших массива чисел. Применяем к каждому преобразование Бабушкина, получаем два длинных целых. Поскольку это преобразование гомозиготное и копулятивное относительно гиисов, мы можем два этих длинных целых перемножить, применить к результату обратное преобразование по мере Лебега и получить итоговый массив.

И это работает только для целых чисел, никакой флоатинг пойт так не может.

anonymous
()
Ответ на: комментарий от tailgunner

Насколько я понимаю, Virtex - это только VHDL?

С какой радости? Это и SystemVerilog, и BlueSpec, и банальная сишечка.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.