তাই আমি একটি OpenCL বাস্তবায়ন বিরুদ্ধে বেঞ্চমার্ক করতে পারেন আমি একটি ডিভাইড এবং জয় করো বহুপদী অ্যালগরিদম বাস্তবায়ন, কিন্তু আমি না পেতে পারেন mallocকাজ। আমি যখন প্রোগ্রামটি চালাচ্ছি, এটি কিছু গুছা বরাদ্দ দেয়, কিছু জিনিস পরীক্ষা করে, তারপরে size/2অ্যালগরিদমে প্রেরণ করে । তারপরে যখন আমি mallocআবার লাইনটি আঘাত করি তখন এটি থুতু ফেলে:
malloc.c:3096: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed.
Aborted
প্রশ্নে লাইনটি হ'ল:
int *mult(int size, int *a, int *b) {
int *out,i, j, *tmp1, *tmp2, *tmp3, *tmpa1, *tmpa2, *tmpb1, *tmpb2,d, *res1, *res2;
fprintf(stdout, "size: %d\n", size);
out = (int *)malloc(sizeof(int) * size * 2);
}
আমি একটি দিয়ে আকার পরীক্ষা করেছি fprintfএবং এটি একটি ধনাত্মক পূর্ণসংখ্যার (সাধারণত সেই সময়ে 50)। আমি mallocপাশাপাশি একটি সরল নম্বর দিয়ে কল করার চেষ্টা করেছি এবং তবুও ত্রুটিটি পেয়েছি। আমি যা চলছে তাতে আমি কেবল স্ট্যাম্পড আছি, এবং গুগলের কাছ থেকে আমি এখনও খুঁজে পাইনি যে কোনও কিছুই সহায়ক নয়।
কোন ধারণা কি চলছে? আমি যদি একটি নতুন সংস্থার সংকলক ত্রুটি হয় তার ক্ষেত্রে কীভাবে এটি একটি নতুন জিসিসি সংকলন করব তা নির্ধারণ করার চেষ্টা করছি, তবে আমি সত্যিই সন্দেহ করি।