IP Library Granted Patent US 11,863,635
Granted Patent B2
US 11,863,635 · App. 17/830,591 · Granted Jan 2, 2024

Enhanced processing of user profiles using data structures specialized for graphical processing units (GPUs)

Inventors: David Lawrence Rager (Austin, TX); Andrew Edward Brownsword (Bowen Island, CA); Guy Lewis Steele, Jr. (Lexington, MA)
Assignee: Oracle International Corporation
H04L67/306G06F9/3009G06F9/4881G06F9/52G06F16/2237G06F16/2246G06F16/258G06F16/9027G06Q30/0201G06Q30/0269G06T1/20G06Q50/01
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,863,635
App. No.
17/830,591
Filed
Jun 2, 2022
Granted
Jan 2, 2024
Kind
B2
Art Unit
2454
USPC
709/217
Abstract

Disclosed are techniques for processing user profiles using data structures that are specialized for processing by a GPU. More particularly, the disclosed techniques relate to systems and methods for evaluating characteristics of user profiles to determine whether to offload certain user profiles to the GPU for processing or to process the user profiles locally by one or more central processing units (CPUs). Processing user profiles may include comparing the interest tags included in the user profiles with logic trees, for example, logic trees representing marketing campaigns, to identify user profiles that match the campaigns.

Claims (53)

1. A computer-implemented method, comprising:

accessing a set of user profiles stored in a user profile database, each user profile of the set of user profiles including a one or more interest tags, each interest tag of the one or more interest tags characterizing an interest of a user detected based on an interaction between a user device and a web server or an application server;

determining that one or more characteristics of each user profile of the set of user profiles satisfies an offloading condition, wherein the offloading condition is a condition for transferring processing the set of the user profiles from a cloud service to a graphical processing unit (GPU);

pre-processing, in response to determining that the offloading condition is satisfied and with the graphical processing unit (GPU), the set of user profiles by:

segmenting the set of user profiles into a plurality of subsets of user profiles, wherein a number of user profiles in each subset of user profiles of the subsets of user profiles equals a number of threads in a warp of the GPU; and

for each subset of user profiles of the plurality of subsets of user profiles, creating at least one array, the at least one array storing interest tags for the respective subset of user profiles; and

for each subset of user profiles of the plurality of subsets of user profiles, storing the at least one array in a specialized data structure;

determining, using warps of the GPU, one or more user profiles of the set of user profiles that satisfy logic of one or more campaign logic trees of a marketing campaign, wherein the one or more user profiles are determined based on the one or more interest tags of the specialized data structures and one or more operand values of the one or more campaign logic trees; and

returning, in response to a query for user profiles, the one or more user profiles to the marketing campaign.

2. The method of claim 1 , wherein the at least one array stores interest tags for the respective subset of user profiles in a sorted order, wherein interest tags for a user profile are arranged sequentially in the at least one array according to interest identifiers.

3. The method of claim 1 , wherein the at least one array stores interest tags for the respective subset of user profiles in an interleaved manner, wherein interest tags for a user profile are interleaved with interest tags for another user profile in the at least one array according to interest identifiers.

4. The method of claim 1 , wherein the GPU is configured with a set of threads, each thread of the set of threads executing of instructions running on a core of the GPU, wherein a warp of the warps of the GPU corresponds to a subset of threads of the set of threads.

5. The method of claim 1 , wherein determining, using warps of the GPU, one or more user profiles of the set of user profiles that satisfy logic of one or more campaign logic trees of a marketing campaign comprises reading a specialized data structure of the specialized data structures with a warp of the GPU.

6. The method of claim 1 , wherein determining, using warps of the GPU, one or more user profiles of the set of user profiles that satisfy logic of one or more campaign logic trees of a marketing campaign comprises:

retrieving interest tags from an array of a specialized data structure of the specialized data structures;

identifying one or more operand values of a campaign logic tree of the one or more campaign logic trees that references the retrieved interest tags; and

setting the campaign logic tree of the one or more campaign logic trees as true.

7. A system, comprising:

one or more processors; and

a non-transitory computer-readable storage medium containing instructions which, when executed on the one or more processors, cause the one or more processors to perform operations including:

accessing a set of user profiles stored in a user profile database, each user profile of the set of user profiles including one or more interest tags, each interest tag of the one or more interest tags characterizing an interest of a user detected based on an interaction between a user device and a web server or an application server;

determining that one or more characteristics of each user profile of the set of user profiles satisfies an offloading condition, wherein the offloading condition is a condition for transferring processing the set of the user profiles from a cloud service to a GPU;

pre-processing, in response to determining that the offloading condition is satisfied and with the GPU, the set of user profiles by:

segmenting the set of user profiles into a plurality of subsets of user profiles, wherein a number of user profiles in each subset of user profiles of the subsets of user profiles equals a number of threads in a warp of the GPU; and

for each subset of user profiles of the plurality of subsets of user profiles, creating at least one array, the at least one array storing interest tags for the respective subset of user profiles; and

for each subset of user profiles of the plurality of subsets of user profiles, storing the at least one array in a specialized data structure;

determining, using warps of the GPU, one or more user profiles of the set of user profiles that satisfy logic of one or more campaign logic trees of a marketing campaign, wherein the one or more user profiles are determined based on the one or more interest tags of the specialized data structures and one or more operand values of the one or more campaign logic trees; and

returning, in response to a query for user profiles, the one or more user profiles to the marketing campaign.

8. The system of claim 7 , wherein the at least one array stores interest tags for the respective subset of user profiles in a sorted order, wherein interest tags for a user profile are arranged sequentially in the at least one array according to interest identifiers.

9. The system of claim 7 , wherein the at least one array stores interest tags for the respective subset of user profiles in an interleaved manner, wherein interest tags for a user profile are interleaved with interest tags for another user profile in the at least one array according to interest identifiers.

10. The system of claim 7 , wherein the GPU is configured with a set of threads, each thread of the set of threads executing of instructions running on a core of the GPU, wherein a warp of the warps of the GPU corresponds to a subset of threads of the set of threads.

11. The system of claim 7 , wherein determining, using warps of the GPU, one or more user profiles of the set of user profiles that satisfy logic of one or more campaign logic trees of a marketing campaign comprises reading a specialized data structure of the specialized data structures with a warp of the GPU.

12. The system of claim 7 , wherein determining, using warps of the GPU, one or more user profiles of the set of user profiles that satisfy logic of one or more campaign logic trees of a marketing campaign comprises:

retrieving interest tags from an array of a specialized data structure of the specialized data structures;

identifying one or more operand values of a campaign logic tree of the one or more campaign logic trees that references the retrieved interest tags; and

setting the campaign logic tree of the one or more campaign logic trees as true.

13. A non-transitory computer-readable medium storing computer-readable instructions that, when executed by one or more processors, cause the one or more processors to perform operations including:

accessing a set of user profiles stored in a user profile database, each user profile of the set of user profiles including one or more interest tags, each interest tag of the one or more interest tags characterizing an interest of a user detected based on an interaction between a user device and a web server or an application server;

determining that one or more characteristics of each user profile of the set of user profiles satisfies an offloading condition, wherein the offloading condition is a condition for transferring processing of the set of the user profiles from a cloud service to a GPU;

pre-processing, in response to determining that the offloading condition is satisfied and with the GPU, the set of user profiles by:

segmenting the set of user profiles into a plurality of subsets of user profiles, wherein a number of user profiles in each subset of user profiles of the subsets of user profiles equals a number of threads in a warp of the GPU; and

for each subset of user profiles of the plurality of subsets of user profiles, creating at least one array, the at least one array storing interest tags for the respective subset of user profiles; and

for each subset of user profiles of the plurality of subsets of user profiles, storing the at least one array in a specialized data structure;

determining, using warps of the GPU, one or more user profiles of the set of user profiles that satisfy logic of one or more campaign logic trees of a marketing campaign, wherein the one or more user profiles are determined based on the one or more interest tags of the specialized data structures and one or more operand values of the one or more campaign logic trees; and

returning, in response to a query for user profiles, the one or more user profiles to the marketing campaign.

14. The computer-readable medium of claim 13 , wherein the at least one array stores interest tags for the respective subset of user profiles in a sorted order, wherein interest tags for a user profile are arranged sequentially in the first array according to interest identifiers.

15. The computer-readable medium of claim 13 , wherein the at least one array stores interest tags for the respective subset of user profiles in an interleaved manner, wherein interest tags for a user profile are interleaved with interest tags for another user profile in the first second according to interest identifiers.

16. The computer-readable medium of claim 13 , wherein the GPU is configured with a set of threads, each thread of the set of threads executing of instructions running on a core of the GPU, wherein a warp of the warps of the GPU corresponds to a subset of threads of the set of threads.

17. The computer-readable medium of claim 13 , wherein determining, using warps of the GPU, one or more user profiles of the set of user profiles that satisfy logic of one or more campaign logic trees of a marketing campaign comprises reading a specialized data structure of the specialized data structures with a warp of the GPU.

18. The computer-readable medium of claim 13 , wherein determining, using warps of the GPU, one or more user profiles of the set of user profiles that satisfy logic of one or more campaign logic trees of a marketing campaign comprises:

retrieving interest tags from an array of a specialized data structure of the specialized data structures;

identifying one or more operand values of a campaign logic tree of the one or more campaign logic trees that references the retrieved interest tags; and

setting the campaign logic tree of the one or more campaign logic trees as true.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2022
From: RAGER, DAVID LAWRENCE; BROWNSWORD, ANDREW EDWARD; STEELE, GUY LEWIS, JR.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 060107/0537 →
Continuity (3)
Continuation 17085819 · Oct 30, 2020
Provisional Application 62929662 · Nov 1, 2019
Related Publication 20220303351A1 · Sep 22, 2022