LINUX.ORG.RU

[CUDA] warning : Double is not supported. Demoting to float

 


0

0

Вот такое сообщение выскакивает у меня при компиляции этого кода.

Видеокарта 9600GT.

В файле нет ни одного double. Я в растерянности.

Код работает, но не нравится мне это предупреждение. В интернете нашел только про ключи -std=sm_13 или -std=sm_20, но они нужны для работы с double (которых у меня нет), кроме того, эти архитектуры поддерживают лишь более новые видеокарты. При компиляции на моей ошибок нет, но и не считается ничего.

Это предупреждение чем-то грозит, или ничего страшного? Как от него избавиться?

☆☆☆☆☆

Лень смотреть в стандарт, но вроде в Си литералы вида 1.0 имеют тип double. Может, в этой вашей куде тоже?

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

Точно! Подобавлял ко всем константам с плавающей точкой f в конце, больше не «матюгается».

Хотя, странно, почему CUDA, которая изначально только на float была рассчитана, так себя ведет...

Спасибо!

Eddy_Em ☆☆☆☆☆
() автор топика

В догонку негодование по поводу модуля nvidia: в нем нет защиты от нарушения памяти. И если в обычном приложении

char *c = malloc(100);
c[200] = 'a';
даст сегфолт какой-нибудь, то CUDA это спокойно проглатывает и продолжает жужжать дальше.

Зато невооруженным глазом становится заметно ошибку по появляющимся на экране разноцветным пикселям...

Хотя, конечно, я в программировании - дурак дураком, но нужно же какую-то защиту от меня и мне подобных делать? Не перезапускать же иксы (а то и компьютер перезагружать) каждый раз, когда какой-нибудь ляп в коде сделаешь?

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

> И если в обычном приложении

char *c = malloc(100);

c[200] = 'a';

даст сегфолт какой-нибудь

И в обычном приложении это даст сегфолт только при большом везении.

Хотя, конечно, я в программировании - дурак дураком, но нужно же какую-то защиту от меня и мне подобных делать?

Для таких придумали Яву.

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

Для таких придумали Яву.

Да ну ее нафиг. Не думаю, что с вашей явой мне будет проще всякие преобразования Хафа / вейвлеты / Фурье / распознавание / работу с железом / и т.п. делать...

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

>> Для таких придумали Яву.

Да ну ее нафиг

Ну так учись программировать. «Защита от нарушений памяти» в Си, ахренеть же.

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

так это не в модуле нвидиа - это насколько я понял уже при работе на видяхе нет защиты памяти

нууж - видяха эт не i386 в защищенном режиме - память просто напраста доступна - и нема memory manager-а

в сигфолт то выпала по одной просто причине - туда куда ты записал - небыло падставлена ниодна страница памяти - открытая для записи

в real mode процессора - ничего бы и неругнулась - как и на видяхе :)

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

Ага.

// правда, чуть парсер не поломал, дешифровывая такое количество ошибок :)

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