У меня есть очень простой класс, использующий распределитель устройств тяги.
У меня также есть класс на стороне хоста, использующий std::allocator. Он работает нормально. Но этот дает ошибку сегментации.
Я не уверен, что здесь не так. Как я могу использовать Thump lib, чтобы иметь простой класс с указателем устройства и конструктором заполнения.
Простой код ниже просто дает мне:
Ошибка сегментации
Ошибка выполнения с ненулевым кодом выхода: 139
#include
#include
#include // Provides thrust::device_allocator
#include
#include
// The default allocator now uses the correct, fully qualified name:
// thrust::device_allocator
template
class flat1d {
public:
using value_type = T;
using size_type = std::size_t;
using allocator_type = Allocator;
// Use std::allocator_traits to get the correct Thrust pointer type
using pointer = typename std::allocator_traits::pointer;
private:
pointer data_ = nullptr;
size_type size_ = 0;
allocator_type alloc_;
public:
// Destructor: Cleans up the device memory using the allocator
~flat1d() {
if (data_ != nullptr) {
alloc_.deallocate(data_, size_);
}
}
flat1d() = default;
// The Fill Constructor
flat1d(size_type count, const value_type& value, const Allocator& alloc = Allocator())
: size_(count), alloc_(alloc)
{
if (count == 0) return;
// 1. Allocate device memory
data_ = alloc_.allocate(count);
// 2. Use Thrust fill algorithm
thrust::fill(data_, data_ + size_, value);
}
};
// --- Example Usage (Main function) ---
int main() {
const std::size_t N = 10;
const float FILL_VALUE = 3.14159f;
std::cout
Подробнее здесь: https://stackoverflow.com/questions/798 ... -allocator
Распределитель упорных устройств против стандартного распределителя ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1765391539
Anonymous
У меня есть очень простой класс, использующий распределитель устройств тяги.
У меня также есть класс на стороне хоста, использующий std::allocator. Он работает нормально. Но этот дает ошибку сегментации.
Я не уверен, что здесь не так. Как я могу использовать Thump lib, чтобы иметь простой класс с указателем устройства и конструктором заполнения.
Простой код ниже просто дает мне:
Ошибка сегментации
Ошибка выполнения с ненулевым кодом выхода: 139
#include
#include
#include // Provides thrust::device_allocator
#include
#include
// The default allocator now uses the correct, fully qualified name:
// thrust::device_allocator
template
class flat1d {
public:
using value_type = T;
using size_type = std::size_t;
using allocator_type = Allocator;
// Use std::allocator_traits to get the correct Thrust pointer type
using pointer = typename std::allocator_traits::pointer;
private:
pointer data_ = nullptr;
size_type size_ = 0;
allocator_type alloc_;
public:
// Destructor: Cleans up the device memory using the allocator
~flat1d() {
if (data_ != nullptr) {
alloc_.deallocate(data_, size_);
}
}
flat1d() = default;
// The Fill Constructor
flat1d(size_type count, const value_type& value, const Allocator& alloc = Allocator())
: size_(count), alloc_(alloc)
{
if (count == 0) return;
// 1. Allocate device memory
data_ = alloc_.allocate(count);
// 2. Use Thrust fill algorithm
thrust::fill(data_, data_ + size_, value);
}
};
// --- Example Usage (Main function) ---
int main() {
const std::size_t N = 10;
const float FILL_VALUE = 3.14159f;
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79843331/thrust-device-allocator-vs-std-allocator[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия