LINUX.ORG.RU

Сообщения yekka

 

OpenACC и C++: работают ли вместе?

Для С++ вполне логично было бы использовать для хранения данных не голые массивы, а классы типа std::vector или какие-нибудь самопальные велосипеды. А вычисления над этими данными реализовывать в каком-нибудь другом классе, который будет данные доставать через методы типа operator[]. Вопрос: реально ли подобную иерархию классов/объектов протащить на GPU с помощью OpenACC? Я что-то попытался и потерпел фиаско, но я в OpenACC нуб, так что не показатель. Если кто умеет готовить OpenACC и C++, гляньте, пожалуйста, что не так с моим кодом?

#define DATASIZE 16

class Data {
  float *arr;

public:
  Data() {
    arr = new float[DATASIZE];
#pragma acc enter data copyin(this)
#pragma acc enter data create(arr[:DATASIZE])
  }

  ~Data() {
#pragma acc exit data delete(arr)
#pragma acc exit data delete(this)
    delete [] arr;
  }

  float &get(int i) { return arr[i]; }
};

class DataKeeper {
  Data a, b;

public:
  DataKeeper() {
#pragma acc enter data copyin(this)
  }

  ~DataKeeper() {
#pragma acc exit data delete(this)
  }

  void init() {
#pragma acc parallel loop
    for (int i = 0; i < DATASIZE; ++i) {
      a.get(i) = i*i;
    }
  }
};

int main() {
  DataKeeper DK;
  DK.init();
}
_T29790288_118 lives at 0x7fffb818be00 size 16 partially present
Present table dump for device[1]: NVIDIA Tesla GPU 0, compute capability 3.5, threadid=1
host:0x7fffb818be00 device:0xc05da0000 size:8 presentcount:0+1 line:11 name:_T29788448_113
host:0x7fffb818be08 device:0xc05da0200 size:8 presentcount:0+1 line:11 name:_T29788448_113
allocated block device:0xc05da0000 size:512 thread:1
allocated block device:0xc05da0200 size:512 thread:1
FATAL ERROR: variable in data clause is partially present on the device: name=_T29790288_118
 file:/home/bozhenovn/tst/test.cc _ZN10DataKeeperC1Ev line:28



Код компилится, но крешится на исполнении. И я понятия не имею не только, что произошло, но и как получить больше информации, чтобы понять, что случилось.

Буду признателен за любую помощь по делу.

 ,

yekka
()

Как они смогли так написать launcher, что он крешится при вводе команды?!!

крик души

 ,

yekka
()

df, du и переполненный диск

Чем может быть обусловлено различие выдачи df и dh в два раза?

# du -shx /
20G

# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 46G 44G 21M 100% /


Видно, что при общем объеме информации в корневой файловой системе 20G, диск на 46G заполнен на 100%. Файловая система ext4.

Есть идеи, чем это может быть обусловлено и как это исправить?

yekka
()

воспроизведение DVD-видео

Частенько при воспроизведении DVD-видео в mplayer/smplayer картинка оказывается весьма низкого качества (в горизонтальную полосочку)

скриншот

Интересуют два вопроса:

  1. Почему?
  2. Что делать?

 

yekka
()

Скроллинг в терминале

Нахожу жутко неудобным стандартный способ скроллинга в консоли - Shift + PgUp/PgDown - жутко неудобным. Ведь, работая в консоли, руки держишь на основной части клавиатуры, и убирать оттуда руку ради кнопок PgUp/PgDown очень некстати.

Конечно, можно воспользоваться программой less для более удобного просмотра вывода команды, но что делать, если нужно посмотреть вывод предыдущей команды? или предпредыдущей?

Посему есть у меня настойчивое желание назначить скроллинг на какие-нибудь иные, более подручные клавиши. Но вот беда - совершенно не представляю, как это сделать. В настройках хоткеев эмуляторов терминала ничего про скроллинг не сказано (проверено на Gnome Terminal, Konsole, Xfce Terminal). В отвечающем за большинство хоткеев readline тоже никаких связанных со скроллингом функций мною не обнаружено, что, наверное, логично, все же это строковый редактор.

В связи с чем вопрос знатокам: каким образом можно назначить перемотку экрана, к примеру, сочетаниям Ctrl-v и Alt-v?

yekka
()

RSS подписка на новые темы